作為linux系統運維人員,需要實時掌握linux系統的運行負載,網絡狀態,磁盤,內存使用情況。所以作為開源監控警報系統prometheus, 官方自然給大家提供了這樣一套工具,可以監控多個服務器的實時運行狀況,以及實時警告。
Prometheus提供了node_exporter給廣大運維人員使用,這是一個相當強大,且統計全面的工具。https://github.com/prometheus/node_exporter, 這個是node_exporter的github地址。
啟動node_exporter非常簡單,官方提供了docker鏡像給我們使用,我們只需要簡單的命令就可以把node_exporter啟動起來。
$ docker run -d --net="host" --pid="host" -v "/:/host:ro,rslave" quay.io/prometheus/node-exporter --path.rootfs /host
net指定host,表示我們啟動的container共享主機的網絡信息,可以直接訪問主機上的網絡信息。
pid指定host,container裡面可以獲取主機上的所有進程運行信息。
同時,為了瞭解文件系統的信息,需要把物理機的根目錄/掛載到docker的/host目錄,並告訴node_exporter容器,在container裡面哪個是物理機的根目錄,在這裡就是/host。
啟動之後,node_exporter默認監聽的端口是9100,這個時候我們就可以直接測試metrics是否可以拿到。
$ curl http://127.0.0.1:9100/metrics
這時候我們就會拿到node_exporter所有的metrics。
接下來,需要配置prometheus去哪裡採集node_exporter的metrics信息,添加target到prometheus裡面。
![如何全方位監控Linux系統狀況](http://p2.ttnews.xyz/loading.gif)
添加node exporter目標
這裡我們添加了一個新的targets用於採集node_exporter的metrics。
然後,我們需要添加官方提供node_exporter的grafana dashboard。
https://grafana.com/dashboards/1860
![如何全方位監控Linux系統狀況](http://p2.ttnews.xyz/loading.gif)
node_exporter dashboard
點擊右邊的Copy ID to clipboard.或者是download json文件。
導入新的dashboard
拷貝ID到表單裡
grafana自動從官網的倉庫中,下載json文件,選擇數據源。
服務運行狀況圖表
監控的層面
然後我們可以看到在grafana新建的dashboard中,會出現從各個層面拿到的實時的運行狀態的數據。後面我們就可以通過grafana的alert或是prometheus的alertmanager組件來根據設定好的閾值來發警告給運維人員。