1、安裝前準備
(1)創建nagios用戶和用戶組
[root@localhost ~]#useradd -s /sbin/nologin nagios
[root@localhost ~]#mkdir /usr/local/nagios
[root@localhost ~]#chown –R nagios.nagios /usr/local/nagios
(2)開啓系統sendmail服務
在nagios監控服務器上開啓sendmail服務的主要作用是讓nagios在檢測到故障時可以發送報警郵件,目前幾乎所有的linux發行版本都默認自帶了sendmail服務,所以,在安裝系統時只需開啓sendmail服務即可,並且不需要在sendmail上做任何配置。
2、 編譯安裝Nagios
首先安裝如下安裝包
[root@localhost ~]# yum –y install httpd gcc glibc glibc‐common gd gd‐devel
下載安裝包:wget http://down1.chinaunix.net/distfiles/nagios-3.2.0.tar.gz
[root@localhost ~]# tar -zxvf nagios-3.2.0.tar.gz
[root@localhost ~]# cd nagios-3.2.0
[root@localhost nagios-3.2.0]#./configure --prefix=/usr/local/nagios
#指定nagios的安裝目錄,這裏指定nagios安裝到/usr/local/nagios目錄
[root@localhost nagios-3.2.0]#make all
[root@localhost nagios-3.2.0]#make install
# make install用來安裝nagios的主程序,CGI和HTML文件
[root@localhost nagios-3.2.0]# make install-init
#通過make install-init命令可以在/etc/rc.d/init.d目錄下創建nagios啓動腳本
[root@localhost nagios-3.2.0]# make install-commandmode
#通過make install-commandmode命令來配置目錄權限
[root@localhost nagios-3.2.0]# make install-config
#make install-cofig命令用來安裝nagios示例配置文件,這裏安裝的路徑是/usr/local/nagios/etc
3、安裝Nagios插件
這裏下載的版本是nagios-plugins-1.4.16。
注意:插件版本與nagios版本的關聯並不大
http://nchc.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz
[root@localhost nagios]#tar –zxvf nagios-plugins-1.4.16.tar.gz
[root@localhost nagios]#cd nagios-plugins-1.4.16
[root@localhost nagios-plugins-1.4.16]#./configure --prefix=/usr/local/nagios
[root@localhost nagios-plugins-1.4.16]# make
----------------------------------------------------------------------------------
Make nagios插件報錯
check_http.c: In function ‘process_arguments’:
check_http.c:312: 錯誤:‘ssl_version’ 未聲明 (在此函數內第一次使用)
check_http.c:312: 錯誤:(即使在一個函數內多次出現,每個未聲明的標識符在其
check_http.c:312: 錯誤:所在的函數內只報告一次。)
make[2]: *** [check_http.o] 錯誤 1
make[2]: Leaving directory `/root/rpm/nagios-plugins-1.4.16/plugins'
make[1]: *** [all-recursive] 錯誤 1
make[1]: Leaving directory `/root/rpm/nagios-plugins-1.4.16'
make: *** [all] 錯誤 2
解決:yum -y install openssl* openssl-devel
----------------------------------------------------------------------------------
[root@localhost nagios-plugins-1.4.16]# make install
安裝完成,在/usr/local/nagios下的libexec目錄下,生成很多可執行文件,這些正是nagios所需要的插件。
4、安裝Nagios中文化插件
中文插件下載地址:
http://sourceforge.net/projects/nagios-cn/files/
下載對應nagios版本的中文插件,然後開始安裝:
[root@localhost ~]#tar xvjf nagios-cn-3.2.0.tar.bz2
[root@localhost nagios-cn-3.2.0]#cd nagios-cn-3.2.0
[root@localhost nagios-cn-3.2.0]#./configure
[root@localhost nagios-cn-3.2.0]#make all
[root@localhost nagios-cn-3.2.0]#make install
5、安裝與配置apache和php
apache和php不是安裝nagios所必須的,但是nagios提供了web監控界面,通過web監控界面可以清晰的看到被監控主機、資源的運行狀態,因此,安裝一個web服務是很必要的。
需要注意的是,nagios在nagios3.1.x版本以後,配置web監控界面時需要php的支持。這裏我們下載的nagios版本爲nagios-3.2.0,因此在編譯安裝完成apache後,還需要編譯php模塊,這裏選取的php版本爲php5.3.2。
(1)安裝apache與php
首先安裝apache,步驟如下:
[root@nagiosserver ~]# tar zxvf httpd-2.0.63.tar.gz
[root@nagiosserver ~]#cd httpd-2.0.63
[root@nagiosserver ~]#./configure --prefix=/usr/local/apache2
[root@nagiosserver ~]#make
[root@nagiosserver ~]#make install
接着安裝php,步驟如下:
[root@nagiosserver ~]# tar zxvf php-5.3.2.tar.gz
[root@nagiosserver ~]#cd php-5.3.2
[root@nagiosserver ~]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
---------------------------------------------------------------------------------
安裝php時的報錯
checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.
檢查是否安裝了libxm包
[root@XKWB3403 php-5.3.8]# rpm -qa |grep libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12
重新安裝libxml2和libxml2-devel包
yum install libxml2
yum install libxml2-devel -y
安裝完之後查找xml2-config文件是否存在
[root@XKWB3403 php-5.3.8]# find / -name "xml2-config"
/usr/bin/xml2-config
如果存在的話重新安裝php
---------------------------------------------------------------------------------
[root@nagiosserver ~]#make
[root@nagiosserver ~]#make install
從安裝步驟可知,apache安裝路徑爲/usr/local/apache2,而php安裝路徑爲/usr/local/php。
(2)配置apache
找到apache配置文件/usr/local/apache2/conf/httpd.conf
找到:
User nobody
Group #-1
修改爲
User nagios
Group nagios
然後找到
DirectoryIndex index.html index.html.var
修改爲
DirectoryIndex index.html index.php
接着增加如下內容:
AddType application/x-httpd-php .php
爲了安全其間,一般情況下要讓nagios的web監控界面必須經過授權才能訪問,這需要增加驗證配置,即在httpd.conf文件最後添加如下信息:
#setting for nagios
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd
Require valid-user
</Directory>
(3)創建apache目錄驗證文件
在上面的配置中,指定了目錄驗證文件htpasswd,下面要創建這個文件:
[root@localhost nagios]#/usr/local/apache2/bin/htpasswd \
>-c /usr/local/nagios/etc/htpasswd ixdba
New password: (輸入密碼)
Re-type new password: (再輸入一次密碼)
Adding password for user ixdba
這樣就在/usr/local/nagios/etc目錄下創建了一個htpasswd驗證文件,當通過http://ip/nagios/訪問時就需要輸入用戶名和密碼了。
最後,啓動服務:
[root@ nagiosserver ~]#/usr/local/apache2/bin/apachectl start
爲了開機時自動啓動服務,可以做如下操作:
touch /etc/rc.d/init.d/apache
vi /etc/rc.d/init.d/apache
chown -R root /etc/rc.d/init.d/apache
chmod 700 /etc/rc.d/init.d/apache
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache #S 是start的簡寫、代表啓動、K是kill的簡寫、代表關閉。60數字 代表啓動的順序。
apache的內容:
#!/bin/bash
#Start httpd service
/usr/local/apache/bin/apachectl start
至此 apache服務就可以在運行級別3下 隨機自動啓動了。(可以結合chkconfig 對啓動服務進行相應的調整)
6.驗證Nagios配置文件的正確性
nagios在驗證配置文件方面做的非常到位,只需通過一個命令即可完成:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios提供的這個驗證功能非常有用,在錯誤信息中通常會打印出錯誤的配置文件以及文件中的哪一行,這使得nagios的配置變得非常容易,報警信息通常是可以忽略的,因爲一般那些只是建議性的。
2、 啓動與停止nagios
(1)啓動nagios
通過初始化腳本啓動nagios
/etc/init.d/nagios start
或者
Service nagios start
手工方式啓動nagios
通過nagios命令的“-d”參數來啓動nagios守護進程:
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
(2)關閉nagios
通過初始化腳本關閉nagios服務
/etc/init.d/nagios stop
或者
Service nagios stop
通過kill方式關閉nagios
kill <nagios_pid>
(3)重啓nagios
通過初始化腳本來重啓nagios
/etc/rc.d/init.d/nagios reload
/etc/rc.d/init.d/nagios restart
通過web監控頁重啓nagios
手工方式平滑重啓
kill -HUP <nagios_pid>
####################常見錯誤###########################
1、監控界面亂碼
修改/usr/local/apache2/conf/httpd.conf
最後添加AddDefaultCharset utf-8
2、拓撲圖亂碼
如果使用中文做爲主機名,則在拓撲圖顯示時須加入中文字體設置。
在cgi.cfg文件最後幾行:
ttf_file=/usr/X11R6/lib/X11/fonts/truetype/FZSongTi.ttf
這個是Suse企業版的字體設置,請自行查找系統字體文件所在位置並指向它,如果
你的拓撲圖裏顯示不出字,就是這個設置不對。
編輯/usr/local/nagios/etc/cgi.cfg配置文件,加入
# add fonts setting for topo p_w_picpath
ttf_file=/usr/share/fonts/chinese/TrueType/ukai.ttf
# service httpd restart
# service nagios restart
分別重啓httpd和nagios服務,拓撲圖中的中文亂碼解決
3、重啓nagios總有提示
service nagios restart
Running configuration check…done.
Stopping nagios: done.
Starting nagios:This account is currently not available.
done.
這個報錯看起來有點礙眼,但實際上nagios是啓動正常的。如果要去掉這個信息提示需要把/etc/passwd裏的/sbin/nologin修改成/bin/bash
4、無法配置主機組
CGI的認證功能沒有開啓編輯文件 /usr/local/nagios/etc/cgi.cfg
將 use_authentication 值設成1 (0/1 關閉/開啓)
use_authentication=1
並重啓 nagios
service nagios restart