性能監控平台搭建 — Telegraf安裝與簡易使用指南

  • 2019 年 10 月 4 日
  • 筆記

前面我們依次介紹了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等工具一起就可以輕鬆實現性能監控平台搭建。