簡介

InfluxDB是一個用Go語言編寫的時間序列資料庫,旨在處理高寫入和查詢負載。它是TICK堆疊的組成部分 。InfluxDB旨在用作涉及大量帶時間戳資料的任何用例的後備儲存,包括DevOps監控,應用程式指標,物聯網感測器資料和實時分析。同時influxdb也是一個開源分散式時序、事件和指標資料庫,無需外部依賴。類似的資料庫有kdb、Graphite、es等

Telegraf 是一個用 Go 編寫的代理程式,可收集系統和服務的統計資料,並寫入到 InfluxDB 資料庫。記憶體佔用小,通過外掛系統可輕鬆新增支援其他服務的擴充套件。

Grafana是一個跨平臺的開源的度量分析和視覺化工具,可以通過將採集的資料查詢然後視覺化的展示,並及時通知。

收集的架構圖如下

設定 influxdb的yum

vi /etc/yum.repos.d/influxdb.repo

[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key

安裝 influxdb

yum -y install influxdb

啟動 influxdb

systemctl start influxdb

查詢使用者及設定admin密碼

[root@grafana ~]# influx
Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9
> CREATE USER admin WITH PASSWORD 'adminpass' WITH ALL PRIVILEGES
> SHOW USERS
user admin
---- -----
admin true
> SET PASSWORD FOR admin = 'adminpass'
> exit

influx指令查詢資料庫

[root@grafana ~]# influx -username 'admin' -password 'adminpass'
Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9
> show databases
name: databases
name
----
_internal
>

CURL去查詢資料庫

[root@grafana influxdb]# curl -G http://192.168.1.38:8086/query -u admin:adminpass --data-urlencode "q=SHOW DATABASES"
{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"]]}]}]}

建立telegraf資料庫及帳號權限

[root@grafana ~]# influx -username 'admin' -password 'adminpass'
Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9
> show databases
name: databases
name
----
_internal
> create database telegraf
> create user telegraf with password 'metrics'
> grant all on telegraf to telegraf
> exit

測試elegraf帳號是否有權限

[root@grafana ~]# influx -username 'telegraf' -password 'metrics'
Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9
> show databases
name: databases
name
----
telegraf
> use telegraf
Using database telegraf
> SHOW MEASUREMENTS
>

或者使用curl指令查詢

[root@grafana influxdb]# curl -G http://192.168.1.38:8086/query -u telegraf:metrics --data-urlencode "q=SHOW DATABASES"
{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["telegraf"]]}]}]}

安裝 telegraf

yum -y install telegraf

設定 telegraf

vi /etc/telegraf/telegraf.conf

[[outputs.influxdb]]
  urls = ["http://127.0.0.1:8086"]
  database = "telegraf"
  username = "telegraf"
  password = "metrics"
[[inputs.net]]
[[inputs.netstat]]

啟動 telegraf

systemctl start telegraf

測試指令

telegraf -test -config /etc/telegraf/telegraf.conf --input-filter cpu
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter disk
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter diskio
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter mem
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter processes
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter swap
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter system
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter net
telegraf -test -config /etc/telegraf/telegraf.conf --input-filter netstat

telegraf 提供產生 conf 內容的指令(這邊用不到)

telegraf config -input-filter cpu:mem:disk:swap:system -output-filter influxdb > telegraf.conf

設定 grafana的yum

vi /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

安裝 grafana

yum -y install grafana

啟動grafana服務

systemctl start grafana-server

後台登入 帳密預設是admin/admin 登入後請改掉密碼

http://192.168.1.38:3000/login

登入後先設定 Data Sources 使用 influxdb 當資料庫

Name : InfluxDB
URL : http://localhost:8086
Database : telegraf
User : telegraf
Password : metrics

測試連接

grafana 有專門給 telegraf 的 dashboard 到 https://grafana.com/dashboards/5955 複製它的 id,就是 5955,回到 Grafana 去 + 選擇 import,把 5955 貼到 Grafana.com Dashboard 下方的框框,然後按鈕 Load,選擇 InfluxDB (要先設定) 才可以讓你按 Import

name會自動帶入 influxdb要選擇一下

最後會顯示出不錯的面版出來

telegraf 也有 Windows 版本

https://github.com/influxdata/telegraf/blob/master/docs/WINDOWS_SERVICE.md

解開後裡面就兩個檔案

telegraf.conf
telegraf.exe

同樣的設定 telegraf.conf

[[outputs.influxdb]]
  urls = ["http://192.168.1.38:8086"]
  database = "telegraf"
  username = "telegraf"
  password = "metricsmetricsmetricsmetrics"
  skip_database_creation = true

指定設定檔啟動

telegraf.exe --config telegraf.conf

使用 Windows Service 執行

telegraf --service install --config "C:\Program Files\Telegraf\telegraf.conf" --service-name=telegraf

Windows Service 啟動

net start telegraf

要讓 Windows 在 grafana 顯示,以上已設定的不行,要用這個 (有兩種看你要用那種)

https://grafana.com/dashboards/1902
https://grafana.com/dashboards/1635

 

參考網頁

https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/510903/

https://oranwind.org/post-post-15/

https://dotblogs.com.tw/dizzydizzy/2018/06/30/influxbasicoper

http://sj82516-blog.logdown.com/posts/2229420/using-the-influxdb-system-performance-monitoring

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料