簡介
無監控,不運維。
沒有了監控,運維靠什么排查問題?靠什么調優?靠什么規劃資源?因此,監控系統對于做好運維是必不可少的。
目前,比較流行的開源監控有Zabbix、NagIOS、Pormetheus、Open-Falcon等。
Nagios
Nagios是一款開源的服務器和網絡監視工具,能有效監控windows、linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。
監控過程
nagios 通過服務端周期性的運行命令,檢查監控設備的狀態,通過命令的返回值來判斷狀態是否正常。如果周期內,有多少次不正常就發送告警。注重的是狀態監控。
自定義命令
命令可以自定義,可以自己寫腳本完成,只要輸出返回值,nagios就可以進行狀態判斷。這就是nagios的靈活的地方。
遠程命令
但是,nagios定義的命令那個 能在本地執行,怎么監控遠程的服務器?或者說是怎么在遠程服務器上執行命令命令,并返回監控項目的狀態呢?
這時候就要用到nrpe,被監控客戶端需要安裝nrpe,并啟用nrpe服務,默認會啟用5666端口;服務端也是需要安裝nrpe,但是需要用到的命令那個是check_nrpe,這個命令可以調用遠程已經定義好的命令。
因此,只要服務端周期性,調用check_nrpe命令執行遠程的命令并返回狀態,就可以判斷遠程機器的狀態。
性能數據
同時nagios也可以同步命令那個返回對應的性能數據,可以指定格式存儲到對應的文本中。可以通過分析文本里面的信息獲取歷史數據。
命令輸出狀態用于判斷服務狀態,同時命令的輸出會被當成信息展示出來,通過 "|"分割展示信息和性能數據。
例如:
OK - CPU Load is OK | load1=2;16;32 load5=0.1;14;32 load15=0.2;12;32
配置
nagios配置都是文件,需要在終端下進行配置,比較不方便。也有可以存到數據庫的解決方案可以選擇。
nagios配置比較不方便,修改命令的時候,需要下發命令腳本,修改配置文件。
解決方案:通過命令參數來下發命令和參數,通過參數自動下載腳本。當然,這樣子存在一定的風險,就是參數如果是惡意的命令,就可能出現安全問題。需要對權限進行控制。
性能數據展示
nagios自帶的web自展示狀態和配置信息,沒有針對性能數進行展示,需要搭建另外的服務進行圖表展示。例如:PNP。
官方文檔里面也有一套 nagios + nagflux + influxdb + grafana的方案。可以展示比較好看的圖表
總結
nagios是比較靈活,但是靈活以為著可以有很多選擇,很多事情都要自己來定義。
你覺得Nagios怎么樣呢?