搭建炫酷的服務器監控平台
- 2019 年 10 月 6 日
- 筆記
本文所使用的工具為如下:
Telegraf「數據採集」
InfluxDB「數據存儲」
Grafana「數據可視化」
一般的我們如果需要搭建服務器監控平台,需要去讀取服務器實時的內存信息,CPU狀態等等,就正如我們上一篇使用python從零搭建服務器監控系統一樣。如果大家沒看過之前的那篇文章,推薦大家去看看。裏面有搭建監控系統的整個思路。總的來說就是數據採集,數據存儲,數據可視化這三個方面。
這次我們使用的是Influxdata公司提供的全家桶。Telegraf、InfluxDB、Grafana。
Telegraf是專門用來採集數據的,在這裡我們也有自己採集數據的辦法(大家還記得psutils嗎?),這裡我們不再過多贅述。
InfluxDB是一款時間序列數據庫,用來存儲log日誌等這些有時間信息的數據。
Grafana這就是好看的原因了,畢竟界面都在這寫的好好的~https://grafana.com/grafana
這裡我們使用Docker去快速搭建環境,如果你Docker還沒裝的話,可以參照Docker入門這篇文章。
Telegraf「數據採集」
首先我們使用Docker去安裝InfluxDB:
docker run -d -p 8086:8086 –name=influxdb influxdb
dcoker會自動從倉庫下載最新版本的influxdb鏡像,後台運行一個名為influxdb的容器並映射主機8086端口到容器8086端口。
若想將數據存儲到宿主機而非容器內,可使用以下命令啟動掛載本地目錄到容器內。
# $pwd為當前工作目錄,可替換為其它宿主機目錄
docker run -d -p 8086:8086 -v $PWD:/var/lib/influxdb –name=influxdb influxdb
然後我們訪問這個接口:
curl -G http://localhost:8086/query –data-urlencode "q=show databases"
能收到以下這樣的結果就證明我們運行成功了。
關於我們如何啟動容器我們之前在docker那個章節有講過,啟動暫停重啟:docker start XXX、docker stop XXX、docker restart XXX。
我們現在啟動influxdb
InfluxDB「數據存儲」
下面我們來安裝Telegraf:
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.6.3-1.x86_64.rpm
安裝
sudo yum localinstall telegraf-1.6.3-1.x86_64.rpm
我們可以修改Telegraf的配置文件(/etc/telegraf/telegraf.conf)來配置它數據輸出至influxdb。
vim /etc/telegraf/telegraf.conf
打開上面四行注釋
對於telegraf,我們可以使用systemctl指令啟動和關閉telegraf:
# 啟動
systemctl start telegraf
# 停止
systemctl stop telegraf
Grafana「數據可視化」
最後一步使用docker安裝grafana:
docker run -d -p 3000:3000 –name=grafana grafana/grafana
初次啟動,grafana會創建數據庫,時間稍長,稍後即可訪問:
http://localhost:3000
打開grafana登錄頁面。
輸入默認用戶名密碼登錄(admin)
你需要自己創建自己的用戶名和密碼。
添加數據源:
配置:
url需配置成正確的宿主機ip和端口(防火牆需放行8086),若不想暴露數據庫端口,可換成influxdb容器的ip地址(需自行進入容器查看,容器重啟後可能會發生變化)避免數據庫暴露至公網。
InfluxDB Details需填寫
數據庫名:telegraf
用戶名:root
密碼:root
下面要回到主頁創建面板:
(因為這個機器沒怎麼使用,所以CPU的佔用率會比較低)
當然,我們也可以設置預警信息,當cpu使用超過百分之多少的時候報警:
我們看一下設置好使用後的效果:
怎麼樣/看起來是不是很炫酷?所有的數據都一目了然。你也來試試吧!記住,他們是Influxdata全家桶!