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

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

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

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