內容目錄
簡介
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