簡介
無監(jiān)控,不運維。
沒有了監(jiān)控,運維靠什么排查問題?靠什么調(diào)優(yōu)?靠什么規(guī)劃資源?因此,監(jiān)控系統(tǒng)對于做好運維是必不可少的。
目前,比較流行的開源監(jiān)控有Zabbix、NagIOS、Pormetheus、Open-Falcon等。

Nagios
Nagios是一款開源的服務(wù)器和網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控windows、linux和Unix的主機狀態(tài),交換機路由器等網(wǎng)絡(luò)設(shè)置,打印機等。

監(jiān)控過程
nagios 通過服務(wù)端周期性的運行命令,檢查監(jiān)控設(shè)備的狀態(tài),通過命令的返回值來判斷狀態(tài)是否正常。如果周期內(nèi),有多少次不正常就發(fā)送告警。注重的是狀態(tài)監(jiān)控。
自定義命令
命令可以自定義,可以自己寫腳本完成,只要輸出返回值,nagios就可以進行狀態(tài)判斷。這就是nagios的靈活的地方。
遠程命令
但是,nagios定義的命令那個 能在本地執(zhí)行,怎么監(jiān)控遠程的服務(wù)器?或者說是怎么在遠程服務(wù)器上執(zhí)行命令命令,并返回監(jiān)控項目的狀態(tài)呢?
這時候就要用到nrpe,被監(jiān)控客戶端需要安裝nrpe,并啟用nrpe服務(wù),默認會啟用5666端口;服務(wù)端也是需要安裝nrpe,但是需要用到的命令那個是check_nrpe,這個命令可以調(diào)用遠程已經(jīng)定義好的命令。
因此,只要服務(wù)端周期性,調(diào)用check_nrpe命令執(zhí)行遠程的命令并返回狀態(tài),就可以判斷遠程機器的狀態(tài)。
性能數(shù)據(jù)
同時nagios也可以同步命令那個返回對應(yīng)的性能數(shù)據(jù),可以指定格式存儲到對應(yīng)的文本中??梢酝ㄟ^分析文本里面的信息獲取歷史數(shù)據(jù)。
命令輸出狀態(tài)用于判斷服務(wù)狀態(tài),同時命令的輸出會被當成信息展示出來,通過 "|"分割展示信息和性能數(shù)據(jù)。
例如:
OK - CPU Load is OK | load1=2;16;32 load5=0.1;14;32 load15=0.2;12;32
配置
nagios配置都是文件,需要在終端下進行配置,比較不方便。也有可以存到數(shù)據(jù)庫的解決方案可以選擇。
nagios配置比較不方便,修改命令的時候,需要下發(fā)命令腳本,修改配置文件。
解決方案:通過命令參數(shù)來下發(fā)命令和參數(shù),通過參數(shù)自動下載腳本。當然,這樣子存在一定的風險,就是參數(shù)如果是惡意的命令,就可能出現(xiàn)安全問題。需要對權(quán)限進行控制。
性能數(shù)據(jù)展示
nagios自帶的web自展示狀態(tài)和配置信息,沒有針對性能數(shù)進行展示,需要搭建另外的服務(wù)進行圖表展示。例如:PNP。
官方文檔里面也有一套 nagios + nagflux + influxdb + grafana的方案??梢哉故颈容^好看的圖表

總結(jié)
nagios是比較靈活,但是靈活以為著可以有很多選擇,很多事情都要自己來定義。
你覺得Nagios怎么樣呢?