Telegraf安裝與簡易使用指南

無意中發現了一個巨牛的人工智能教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看小說一樣!覺得太牛了,所以分享給大家。點這裏可以跳轉到教程。


原文鏈接

在這裏插入圖片描述

前面我們依次介紹了Influxdb、Grafana的安裝和基本使用,這次我們來看看Telegraf的安裝與基本使用。Telegraf是InfluxData旗下的數據採集工具,主要用來採集各類服務的信息數據,比如:系統cpu、內存,redis、nginx等服務;跟Influxdb是兄弟產品。

Telegraf、Influxdb、Grafana三者一起共同組成性能監控的三駕馬車;數據採集、數據存儲、數據展示。除此之外,我們還可以把性能壓測數據也一併用這套系統管理起來,完整的性能監控平臺的架構是這樣的。
在這裏插入圖片描述
今天我們還是主要介紹Telegraf的相關基本信息,它除了可以採集windows和linux的系統資源以及常用服務之外,還可以通過插件擴展來定製自己想要的採集行爲,可以說是即強大又靈活。

安裝

YUM安裝

對於Centos用戶,可以用yum安裝

yum install telegraf
systemctl start telegraf
systemctl restart telegraf
systemctl status telegraf

或者先下載再安裝:

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.11.5-1.x86_64.rpm
sudo yum localinstall telegraf-1.11.5-1.x86_64.rpm
systemctl enable telegraf.service  ## systemd服務開機自啓動
telegraf -config /etc/telegraf/telegraf.conf  # 手動啓動

使用

配置

在正式啓動之前,需要先進行相關配置,告訴telegraf對哪些數據進行採集,配置文件地址/etc/telegraf/telegraf.conf.修改如下內容:

[[outputs.influxdb]]
   urls = ["http://localhost:8086"] # required 
   database = "telegraf" # required
   retention_policy = ""
   precision = "s"
   timeout = "5s"
   username = ""
   password = ""

主要是配置一個influxdb的地址和數據庫,讓telegraf知道把數據存放到哪裏。當telegraf服務啓動之後,我們就可以去influxdb查看相應數據是否提交成功,成功後再通過Grafana來配置數據展示。

默認telegraf會採集cpu、內存、磁盤的數據信息,下面是採集的數據樣例在通過Grafana配置之後的展示效果:
在這裏插入圖片描述
中間的斷掉的部分是因爲關機了,Telegraf默認採集的數據項非常的多,這裏只配置了幾個指標值而已。

插件使用

telegraf的常用的插件有2類:一類是input,一類是output;所謂input就是採集插件,比如:系統cpu、網絡。所謂output就是數據存儲插件,比如:influxdb、kafka等。

telegraf默認情況下開啓的output插件是influxdb,並且默認配置到本機地址,可以根據需要修改。而input插件正如上面所示默認僅開啓了cpu、內存等插件,需要使用其它擴展插件就需要手動開啓並配置。

配置插件的方式也有兩種:一種是直接在默認配置文件中修改,因爲它包含了幾乎所有支持的插件配置項,只是非默認的插件都被註釋掉了;另一種是新生成一個配置文件,並存放在/etc/telegraf/telegraf.d目錄下,這樣就可以支持多插件配置文件了。

生成一個telegraf配置文件的命令:

# 當前目錄下生成一個telegraf的默認配置文件
telegraf config > telegraf.conf   
# 當前目錄下生成一個包含cpu、內存、磁盤、磁盤io、網絡作爲輸入插件,以及influxdb作爲輸出插件的配置文件
telegraf --input-filter cpu:mem:disk:diskio:net --output-filter influxdb config > telegraf.conf

除了採集默認的系統數據,telegraf還可以採集mysql、redis、nginx、apache、prometheus等服務,這裏以採集nginx服務數據爲例,介紹如何配置插件。

首先,確保先有一個nginx的服務,且該ngixn安裝時支持http_stub_status_module模塊,通過nginx -v可以查看到是否安裝了此模塊。如果沒有安裝的話則需要重新編譯,因爲就是通過該模塊來監控nginx的。

如果nginx服務已經帶有http_stub_status_module模塊,則需要在nginx配置添加對應的請求入口,來返回nginx的狀態信息。樣例如下:

location /nginx-status {
       allow 127.0.0.1; # 允許的IP
       deny all;
       stub_status on;
       access_log off;
}

執行nginx -s reload命令使修改配置生效,再通過curl http://127.0.0.1/nginx-status命令來查看是否能正常獲取信息。
在這裏插入圖片描述

  • active connections – 活躍的連接數量
  • server accepts handled requests — 總共處理了11989個連接 , 成功創建11989次握手, 總共處理了11991個請求
  • reading — 讀取客戶端的連接數.
  • writing — 響應數據到客戶端的數量
  • waiting — 開啓 keep-alive 的情況下,這個值等於 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連接.

接着,新生成一個採集nginx的telegraf配置文件,並存儲到/etc/telegraf/telegraf.d目錄下:

cd /etc/telegraf/telegraf.d
telegraf --input-filter nginx --output-filter influxdb config > nginx.conf

修改/etc/telegraf/telegraf.d/nginx.conf的內容如下:

[[inputs.nginx]]
  # An array of Nginx stub_status URI to gather stats.
  urls = ["http://localhost/nginx-status"]

  ## Optional TLS Config
#  tls_ca = "/etc/telegraf/ca.pem"
#  tls_cert = "/etc/telegraf/cert.cer"
#  tls_key = "/etc/telegraf/key.key"
  ## Use TLS but skip chain & host verification
#  insecure_skip_verify = false

  # HTTP response timeout (default: 5s)
  response_timeout = "5s"

測試下nginx插件配置文件格式是否正確。

telegraf  -config /etc/telegraf/telegraf.d/nginx.conf -input-filter nginx -test

輸出內容如下則表示正常:

2019-09-01T14:04:38Z I! Starting Telegraf 1.11.5
> nginx,host=861a6da23d20,port=80,server=localhost accepts=5i,active=1i,handled=5i,reading=0i,requests=5i,waiting=0i,writing=1i 1567346678000000000

最後,我們還需要重啓下telegraf服務,讓新增的插件配置生效。最後查看nginx監控數據的效果如下:
在這裏插入圖片描述

總結

telegraf是一個非常強大且跨平臺,可以說開箱即用的工具,只需簡單的部署和配置就能採集到豐富的數據,而且還支持非常方便的擴展。配合influxdb、grafana等工具一起就可以輕鬆實現性能監控平臺搭建。

獲取更多關於Python和測試開發相關的文章,請掃描如下二維碼!
關注二維碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章