配置
配置是nagios最複雜的部分,它涉及到多個文件的配置,爲了方便描述,這裏逐個的進行配置。
一、apache 配置
我們分兩個步驟來完成這個配置。第一步是修改 apache的配置文件httpd.conf,這裏的文件路徑是/usr/local/apache/conf/httpd.conf 。把apache的運行用戶[1]和運行組改成nagios,往下把下面的行追加到文件httpd.conf的末尾:
#setting for nagios ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin //Cgi文件所在目錄 AuthType Basic Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd //驗證文件路徑 Require valid-user Alias /nagios /usr/local/nagios/share //nagios頁面文件目錄 AuthType Basic Options None AllowOverride None Order allow,deny Allow from all AuthName "nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd //驗證文件路徑 Require valid-user |
上述文本塊的作用是對nagios的目錄進行用戶驗證,只有合法的授權用戶纔可以訪問nagios的頁面文件。第二步是生成用戶驗證文件:只要執行命令 /usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd sery ,就會生成web的合法訪問用戶sery;命令交互執行,需要輸入2次密碼,然後就在文件/usr/local/nagios/etc/htpasswd 寫入一行-第一個字段是剛生成的用戶名,第二個是加密後的密碼,如果還要添加更多的用戶,執行命令 htpasswd 就不需要選項 “-c”,否則就會覆蓋所有已經生成的行。
配置完成後,執行/usr/local/apache/bin/apachctl –t 檢查apache配置文件是否有語法錯誤,無誤後用/usr/local/apache/bin/apachctl start & 把apache啓動,然後從另外的機器的瀏覽器輸入nagios 的訪問地址(如:http://ip/nagios),如果正常,將出現下圖的登錄驗證窗口等待用戶輸入:
輸入用htpasswd創建的用戶名和密碼測試一下,沒有問題的話,進行下一步配置操作。
二、nagios配置
剛安裝完成的nagios,其配置文件的目錄是/usr/local/nagios/etc,下圖是其etc目錄的文件:
先把這些文件改名,如 cgi.cfg-sample改成cgi.cfg ,用命令cp cgi.cfg-sample cgi.cfg …依樣把餘下的幾個*.cfg-sample都複製成*.cfg文件。從nagios2.6版開始,不用修改配置文件localhost.cfg就可以直接運行../bin/nagios –v nagios.cfg驗證程序是否能正常運行(nagios2.5及以前版本的最小運行的配置文件是minimal.cfg,但需要修改這個文件多處才能驗證成功)。
當然,我們不能指望這個最小的配置文件能夠滿足實際的需求,因此,需要對現有的配置文件進行修改,其次增加自定義的一些配置文件。這裏,我們分兩步進行:先修改配置文件再增添自定義文件。
1、修改配置文件
Nagios的主配置文件是nagios.cfg,我們就從這個文件開始修改。用vi編輯nagios.cfg,註釋行 #cfg_file=/usr/local/nagios/etc/localhost.cfg[2],然後把下面幾行的註釋去掉:
cfg_file=/usr/local/nagios/etc/contactgroups.cfg //聯繫組配置文件路徑 cfg_file=/usr/local/nagios/etc/contacts.cfg //聯繫人配置文件路徑 cfg_file=/usr/local/nagios/etc/hostgroups.cfg //主機組配置文件路徑 cfg_file=/usr/local/nagios/etc/hosts.cfg //主機配置文件路徑 cfg_file=/usr/local/nagios/etc/services.cfg //服務配置文件路徑 cfg_file=/usr/local/nagios/etc/timeperiods.cfg //監視時段配置文件路徑 |
改check_external_commands=0爲check_external_commands=1 這行的作用是允許執行在web界面下重啓nagios、停止主機/服務檢查等操作。把command_check_interval的值從默認的1改成 command_check_interval=10s(根據自己的情況定這個命令檢查時間間隔,不要太長也不要太短)。主配置文件要改的基本上就是這些,通過上面的修改,發現/usr/local/nagios/etc並沒有文件hosts.cfg等一干文件,怎麼辦?稍後手動創建它們。
第二個要修改的配置文件是cgi.cfg,它的作用是控制相關cgi腳本。
先確保use_authentication=1。曾看過不少的文章,都是建議把use_authentication的值設置成”0”來取消驗證,這是一個十分糟糕的想法。接下來修改default_user_name=sery ,再後面的修改在下表列出:
authorized_for_system_information=nagiosadmin,sery authorized_for_configuration_information=nagiosadmin,sery authorized_for_system_commands=sery //多個用戶之間用逗號隔開 authorized_for_all_services=nagiosadmin,sery authorized_for_all_hosts=nagiosadmin,sery authorized_for_all_service_commands=nagiosadmin,sery authorized_for_all_host_commands=nagiosadmin,sery |
那麼上述用戶名打那裏來的呢?是執行命令 /usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd sery 所生成的,這個要注意,不能隨便加沒有存在的驗證用戶,爲了安全起見,不要添加過多的驗證用戶。
第3個修改的配置文件是misccommands.cfg,這個文件的主要功能是用來發送報警短信和報警郵件,對其的修改如下所示:
#host-notify-by-sms //發送短信報警 define command { command_name host-notify-by-sms command_line /usr/local/bin/sms_send "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$DATETIME$' " $CONTACTPAGER$ } #service notify by sms //發送短信報警 define command { command_name service-notify-by-sms command_line /usr/local/bin/sms_send "'$HOSTADDRESS$' $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$ } |
主機和服務的郵件報警通知已經在文件中,不須更改。也可以把短信和郵件報警通知這些配置塊寫到文件commands.cfg中,效果是一樣的。