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