天天看點

Nagios搭建及問題詳解(一)

     因工作所需,是以就自己搭建了下nagios,替代公司現用的zabbix,以下是搭建過程以及搭建過程中遇到的問題及解決辦法,都寫在了一起,感覺看着亂的話就隻看搭建過程就可以了。

 一、    環境:系統:Fedora 14

 nagios源碼包:nagios-3.2.3.tar.gz  

                      :nagios-plugins-1.4.14.tar.gz 

                      :nrpe-2.13.tar.gz

下載下傳位址:http://www.nagios.org/download/core/thanks/      (nagios)

                http://www.nagios.org/download/plugins       (nagios-plugins)

                http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz/download                                         (nrpe)

      其他軟體包:httpd 、php、 mysql、 mysql-server、 php-mysql、 httpd-manual 、php-adodb、openphp-gd、 openssl 、gcc*

确定你的yum源是可用的情況下,用yum 安裝上述其他軟體包即可。

執行:yum -y install httpd php mysql mysql-server php-mysql httpd-manual php-adodb openphp-gd openssl gcc*  

二、建立帳号

建立nagios運作帳号,使用者名為:nagios 密碼為redhat

/usr/sbin/useradd nagios && passwd redhat

建立一個使用者組名為 nagcmd,将 nagios 使用者和 apache使用者都加到這個組中。

/usr/sbin/groupadd nagcmd

/usr/sbin/usermod -G nagcmd nagios

/usr/sbin/usermod -G nagcmd apache

三、nagios源碼安裝

tar -zxvf nagios-3.2.3.tar.gz

cd nagios-3.2.3

./configure --with-command-group=nagcmd

make all                                                //輸出如下資訊

make install                                          //安裝主程式,CGI 和 HTML 檔案

make install-init                                    //在/etc/rc.d/init.d 安裝啟動腳本

make install-config                               //配置目錄權限

make install-commandmode                 //來安裝示例配置檔案

make install-webconf                            //生成 web 接口

這裡說一個技巧:相信很多人會遇到這種情況,指令執行完之後不知道是對是錯,以後當你在執行的時候,等指令完成之後你直接輸入  echo $?,如果傳回值是0,則證明你上一步的指令是正确的,傳回值是其他數字的話,上一步就錯咯。

驗證程式是否被正确安裝。切換目錄到安裝路徑(這裡是/usr/local/nagios),看是

否存在 etc、bin、 sbin、 share、 var 這五個目錄,如果存在則可以表明程式被正确的安裝到系統了。

關于五個目錄功能的說明:

bin                 Nagios 執行程式所在目錄,nagios 檔案即為主程式

etc                 Nagios 配置檔案位置,初始安裝完後,隻有幾個*.cfg-sample 檔案

sbin               Nagios Cgi 檔案所在目錄,也就是執行外部指令所需檔案所在的目錄

share             Nagios 網頁檔案所在的目錄

var                Nagios 日志檔案、spid 等檔案所在的目錄

nagios安裝就完成了,如果第一步裡面的軟體包都裝上了的話,執行上述指令是沒問題的,如有問題,先檢查所有軟體包是否安裝完成。

四、添加apache驗證使用者

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

New password: (輸入 redhat)

Re-type new password: (再輸入一次密碼 redhat)

nagiosadmin 系統預設管理使用者,擁有對 nagios 有完全控制權限。

也可自定義使用者,或增加使用者,但必須從以下檔案中設定,多個使用者用,隔開。

vim /usr/local/nagios/etc/cgi.cfg

authorized_for_system_information=nagiosadmin

authorized_for_configuration_information=nagiosadmin

authorized_for_system_commands=nagiosadmin

authorized_for_all_services=nagiosadmin

authorized_for_all_hosts=nagiosadmin,jiongge

authorized_for_all_service_commands=nagiosadmin,jiongge

authorized_for_all_host_commands=nagiosadmin

五、啟動nagios和http

注:啟動之前確定機子的SElinux 和IPtables 是關閉的。

啟動nagios之前先執行以下指令,驗證配置檔案是否錯誤,沒錯的話在啟動。

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

<a target="_blank" href="http://blog.51cto.com/attachment/201205/133309525.jpg"></a>

如上圖,Warnings 和Erros都是0 說明沒有錯誤,此時在啟動nagios。

<a target="_blank" href="http://blog.51cto.com/attachment/201205/133555505.jpg"></a>

nagios啟動成功,加入到開機自動啟動中,執行以下指令:

chkconfig   nagios   on 

檢查是否加入,執行:

chkconfig  --list  |   grep   nagios

運作級别2 3 4 5 如果為on,則證明成功,這裡就不上圖了。

啟動http,上面都很順利,但是我到啟動http的時候出現了問題。

<a target="_blank" href="http://blog.51cto.com/attachment/201205/134339565.jpg"></a>

錯誤提示說/etc/httpd/conf.d/auth_cas.conf 檔案有錯,于是進去看看,果然有這個配置檔案。

<a target="_blank" href="http://blog.51cto.com/attachment/201205/134725741.jpg"></a>

vim進去看了之後裡面是一行http加載的子產品,我想注釋之後能不能啟動,于是就注釋了,結果真的可以啟動了。

<a target="_blank" href="http://blog.51cto.com/attachment/201205/134912695.jpg"></a>

OK,nagios和http都啟動成功,下面就是通過Web 通路nagios,并登入了。

浏覽器輸入http://IP/nagios

<a target="_blank" href="http://blog.51cto.com/attachment/201205/135035678.jpg"></a>

通路成功,提示輸入使用者名密碼,使用者名nagiosadmin,密碼:redhat。

問題又出現了,當我确認使用者名密碼沒有錯誤回車之後,這個登入提示視窗又閃出來了,郁悶!!!

回想以前搭建ftp時,一般遇到這種問題都是運作程式的使用者對驗證檔案沒有通路權限導緻,是以這次第一個就去看驗證檔案的權限。

<a target="_blank" href="http://blog.51cto.com/attachment/201205/135425257.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201205/135438821.jpg"></a>

從上面兩張圖,看出配置檔案的權限都是nagios,apache并沒有權限,于是将配置檔案權限改成了所屬主是:nagios,所屬組是nagcmd,(apache屬于nagcmd這個組的),改完之後還是不行。

于是就去看http的log。如下:

<a href="http://blog.51cto.com/attachment/201205/135900726.jpg" target="_blank"></a>

錯誤提示說沒有找到nagiosadmin這個使用者,不可能啊,明明就是有這個使用者的阿。既然說沒有,就把認證檔案删了重建立。

在檢查以下配置檔案是否有錯,沒錯的話重新開機。重新開機之後在登入,竟然成功了!!

疑問:1、/etc/httpd/conf.d/auth_cas.conf 這個配置檔案中的加載的子產品為什麼注釋掉之後,http就可以啟動了呢?

          2、為什麼把認證檔案删除重新建立就可以登入了呢?

這兩個問題一直想不明白,知道的大牛麻煩解釋下哈。

由于博文字數有限制,是以本篇就先寫nagios的搭建,後面的文章裡寫如果監控本機和其他機器。

待續。。。。。。

本文轉自 linuxsong 51CTO部落格,原文連結:http://blog.51cto.com/song49/862884,如需轉載請自行聯系原作者

繼續閱讀