搭建炫酷的服務器監控平台

  • 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全家桶!

Exit mobile version