故障場景:
一臺裝有Nagios服務的CentOS重啓後,Nagios服務啓動失敗,報錯信息是沒有這個目錄cfg_dir=/etc/nagios/conf.d
排障過程:
1、我一看“嘿,誰改這一句,配置文件目錄應該是objects吧”想當然地將這個參數改成了cfg_dir=/etc/nagios/objects
再次啓動,還是報錯!看提示是說notify-host-by-email這個值重複了。
2、運行grep過濾一下,沒有重複啊,怎麼有.rpmnew的文件啊。不管了先mv到/tmp去。
grep -r 'notify-host-by-email' /etc/nagios/
再次確認一下。
再次啓動服務,依舊報同樣的錯。。
3、好吧,把報錯的參數註釋掉試試。註釋第一條就報第二條,反覆如此。鬱悶了,這是整個文件都不對??版本是什麼?
4、這時間!!看來是有更新過。更新==new。等等,那個rpmnew是個什麼鬼。
RPM使用.rpmnew來處理升級軟件包時,不同版本間的配置文件改到情況。
如果原版本有改動,則將新版本文件加上.rpmnew後綴。因此添加的host都還在。
如果原版本無改動,則將舊版本文件加上.rpmnew後綴。沒有改動過nagios.cfg,所以被重命名了。
----以上純屬個人的理解
5、看了一下nagios.cfg.rpmnew裏面的cfg_dir都是註釋的。應該是cfg_file定義的不能包含在cfg_dir內。
6、將#cfg_dir=/etc/nagios/conf.d註釋後,重新檢查配置,成功啓動。
/usr/sbin/nagios -v /etc/nagios/nagios.cfg
總結:
此次故障應該是有人運行過yum update更新了所有軟件引起的。有時候其實問題就在眼前,而日誌的報錯又不能直接指出問題,這就需要留意下日誌以外的東西。還有和其他同事的溝通也很重要。