nagios監控_落英繽紛
作爲系統運維工程師,最擔心的不是系統出現什麼故障,而是不能在第一時間獲知系統出現故障或宕機了,尤其是遇到節假日,系統管理員就很緊張。要改變這種被動的局面,這裏我以網絡監控軟件Nagios爲例來介紹一下軟件的的配置及使用,並將郵件報警融合進來以實現服務器故障時即時通知管理員。 雖然Nagios十分受用,但配置起來確是麻煩,基於這樣的原因,我將儘可能詳細地向大家講述我用Nagios的過程以及心得,希望對初學者有所幫助。下面以Centos 5.4 爲例來部署 安裝所需軟件 一、解決安裝Nagios的依賴關係: Nagios基本組件的運行依賴於httpd、gcc和gd。可以通過以下命令來檢查nagios所依賴的rpm包是否已經完全安裝: # yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-server 此外,要想完整的安裝關運行本文中所描述的環境,您得準備一個功能完備的LAMP運行環境。 說明:以上軟件包您也可以通過編譯源代碼的方式安裝,只是後面許多要用到的相關文件的路徑等需要按照您的源代碼安裝時的配置逐一修改。此外,您還得按需啓動必要的服務,如httpd,mysqld等。 二、創建一個名爲nagios的帳號並給定登錄口令 # /usr/sbin/useradd nagios # passwd nagios 創建一個用戶組名爲nagcmd用於從Web接口執行外部命令。將nagios用戶和apache用戶都加到這個組中。 # /usr/sbin/groupadd nagcmd # /usr/sbin/usermod -G nagcmd nagios # /usr/sbin/usermod -G nagcmd apache 把apache加入到nagcmd組,以便於在通過web Interface操作nagios時能夠具有足夠的權限. 三、編譯安裝nagios: # tar zxf nagios-3.3.1.tar.gz # cd nagios # ./configure --with-command-group=nagcmd --enable-event-broker # make all # make install # make install-init # make install-config # make install-commandmode 說明: 第一步執行make install安裝主要的程序、CGI及HTML文件, 第二步執行make install-init的步驟,它的作用是把nagios做成一個運行腳本,使nagios隨系統開機啓動,這是一個很方便的措施。 第三步執行 make install-config 把配置文件的例子複製到nagios的安裝目錄。 第四步執行 make install-commandmode 給外部命令訪問nagios配置文件的權限。 nagios檢查 #ls /usr/local/nagios/ =================== bin etc sbin share var #看到這5個目錄就ok了 安裝完後 查看一下在/usr/local/nagios下是否存在etc、bin、 sbin、 share、 var這五個目錄,如果存在則可以表明程序被正確的安裝到系統了。這5個目錄的作用是:
爲email指定您想用來接收nagios警告信息的郵件地址,默認是本機的nagios用戶: # vi /usr/local/nagios/etc/objects/contacts.cfg email nagios@localhost #這個是默認設置 我的: email [email protected] 在httpd的配置文件目錄(conf.d)中創建Nagios的Web程序配置文件: # make install-webconf 創建一個登錄nagios web程序的用戶,這個用戶帳號在以後通過web登錄nagios認證時所用: # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 以上過程配置結束以後需要重新啓動httpd: # service httpd restart 將nagios的信息加到apache中,打開vi /usr/httpd/conf/httpd.conf(這個是我的apache安裝配置文件的路徑)文件,在文件最後添加如下代碼: ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin <Directory "/usr/local/nagios/sbin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user </Directory> Alias /nagios /usr/local/nagios/share <Directory "/usr/local/nagios/share"> Options None AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user </Directory> 四、編譯、安裝nagios-plugins nagios的所有監控工作都是通過插件完成的,因此,在啓動nagios之前還需要爲其安裝官方提供的插件。 # tar zxf nagios-plugins-1.4.13.tar.gz # cd nagios-plugins-1.4.13 # ./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install 五、配置並啓動Nagios 啓動nagios服務 Nagios的基礎平臺和插件都安裝完成之後,下一步就是啓動nagios的服務了。不要着急,在啓動之前,我們還要做點準備工作。 準備各種配置文件。還記得在基礎系統安裝的時候,敲過這樣一個命令吧:make install-config 。這個命令的作用是生成配置文件的樣式文件。你可以在 nagios/etc/ 目錄下找到這些文件,其名字類似commands.cfg-sample 。我們首先要做的就是將這些文件變成我們初始的配置文件。 #cp nagios.cfg-sample nagios.cfg #cp commands.cfg-sample commands.cfg #cp cgi.cfg-sample cgi.cfg #cp localhost.cfg-sample localhost.cfg 總之,就是把那些sample去掉,讓它們真正的上崗。最後,我們修改cgi.cfg文件: use_authentication=1 (默認) default_user_name=nagios authorized_for_system_information=nagiosadmin,nagios authorized_for_configuration_information=nagiosadmin,nagios authorized_for_system_commands=nagiosadmin,nagios authorized_for_all_services=nagiosadmin,nagios authorized_for_all_hosts=nagiosadmin,nagios authorized_for_all_service_commands=nagiosadmin,nagios authorized_for_all_host_commands=nagiosadmin,nagios 我是用nagios這個名字做爲默認用戶的,所以在上述幾個配置項中,我都在最後添加了這個用戶。 (1)把nagios添加爲系統服務並將之加入到自動啓動服務隊列: # chkconfig --add nagios # chkconfig nagios on (2)檢查其主配置文件的語法是否正確: # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 如果沒有問題的話,會有如下顯示: Total Warnings: 0 Total Errors: 0 (3)如果上面的語法檢查沒有問題,接下來就可以正式啓動nagios服務了: # /etc/rc.d/init.d/nagios start (4)配置selinux 如果您的系統開啓了selinux服務,則默認爲拒絕nagios web cgi程序的運行。您可以通過下面的命令來檢查您的系統是否開啓了selinux: #getenforce 如果上面命令的結果顯示開啓了selinux服務,您可以通過下面的命令暫時性的將其關閉: #setenforce 0 如果您想在以後完全關閉selinux,可以通過編輯/etc/sysconfig/selinux文件,將其中的selinux後面的值“force”修改爲“disable”即可。 不關閉SELinux或是永久性變更它的方法是讓CGI模塊在SELinux下指定強制目標模式: # chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ # chcon -R -t httpd_sys_content_t /usr/local/nagios/share/ (5)通過web界面查看nagios: |