一文告訴你如何全方位監(jiān)控Linux系統(tǒng)狀況
作為Linux系統(tǒng)運維人員,需要實時掌握Linux系統(tǒng)的運行負載,網絡狀態(tài),磁盤,內存使用情況。所以作為開源監(jiān)控警報系統(tǒng)prometheus, 官方自然給大家提供了這樣一套工具,可以監(jiān)控多個服務器的實時運行狀況,以及實時警告。
Prometheus提供了node_exporter給廣大運維人員使用,這是一個相當強大,且統(tǒng)計全面的工具。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里面可以獲取主機上的所有進程運行信息。
同時,為了了解文件系統(tǒng)的信息,需要把物理機的根目錄/掛載到docker的/host目錄,并告訴node_exporter容器,在container里面哪個是物理機的根目錄,在這里就是/host。
啟動之后,node_exporter默認監(jiān)聽的端口是9100,這個時候我們就可以直接測試metrics是否可以拿到。
- $ curl http://127.0.0.1:9100/metrics
這時候我們就會拿到node_exporter所有的metrics。
接下來,需要配置prometheus去哪里采集node_exporter的metrics信息,添加target到prometheus里面。
這里我們添加了一個新的targets用于采集node_exporter的metrics。
然后,我們需要添加官方提供node_exporter的grafana dashboard。
https://grafana.com/dashboards/1860
點擊右邊的Copy ID to clipboard.或者是download json文件。
然后我們可以看到在grafana新建的dashboard中,會出現(xiàn)從各個層面拿到的實時的運行狀態(tài)的數(shù)據(jù)。后面我們就可以通過grafana的alert或是prometheus的alertmanager組件來根據(jù)設定好的閾值來發(fā)警告給運維人員。