
【軟件簡(jiǎn)介】
Nagios是一款開(kāi)源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等。在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件或短信報(bào)警第一時(shí)間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。
【功能介紹】
1、自動(dòng)的日志滾動(dòng)功能;2、可以支持并實(shí)現(xiàn)對(duì)主機(jī)的冗余監(jiān)控;
3、可選的WEB界面用于查看當(dāng)前的網(wǎng)絡(luò)狀態(tài)、通知和故障歷史、日志文件等;
4、可以通過(guò)手機(jī)查看系統(tǒng)監(jiān)控信息;
5、可指定自定義的事件處理控制器;
6、監(jiān)控網(wǎng)絡(luò)服務(wù)(SMTP、POP3、HTTP、NNTP、PING等);
7、監(jiān)控主機(jī)資源(處理器負(fù)荷、磁盤利用率等);
8、簡(jiǎn)單地插件設(shè)計(jì)使得用戶可以方便地?cái)U(kuò)展自己服務(wù)的檢測(cè)方法;
9、并行服務(wù)檢查機(jī)制;
10、具備定義網(wǎng)絡(luò)分層結(jié)構(gòu)的能力,用"parent"主機(jī)定義來(lái)表達(dá)網(wǎng)絡(luò)主機(jī)間的關(guān)系,這種關(guān)系可被用來(lái)發(fā)現(xiàn)和明晰主機(jī)宕機(jī)或不可達(dá)狀態(tài);
11、當(dāng)服務(wù)或主機(jī)問(wèn)題產(chǎn)生與解決時(shí)將告警發(fā)送給聯(lián)系人(通過(guò)EMail、短信、用戶定義方式);
12、可以定義一些處理程序,使之能夠在服務(wù)或者主機(jī)發(fā)生故障時(shí)起到預(yù)防作用;

【系統(tǒng)安裝】
1.安裝基礎(chǔ)支持套件和添加用戶nagios需要一些基礎(chǔ)支持套件才能運(yùn)行,如apache,gcc,glibc,gd庫(kù)等。
添加一個(gè)名為nagios的用戶用以專門跑nagios
設(shè)置密碼
添加nagcmd用戶組,用以通過(guò)web頁(yè)面提交外部控制命令
將nagios用戶加入nagcmd組
將apache用戶加入nagcmd組
2.安裝nagios
這時(shí)nagios基本已經(jīng)安裝完成,默認(rèn)安裝后的配置文件用于啟動(dòng)nagios是沒(méi)有問(wèn)題的。
修改nagiosadmin這行其中的郵件地址為你的email地址,以將報(bào)警郵件發(fā)到你的郵箱
安裝nagios的web接口
設(shè)置登陸web界面時(shí)HTTP驗(yàn)證的賬號(hào)密碼
3. 安裝nagios-plugins
nagios-plugins是nagios官方提供的一套插件程序,nagios監(jiān)控主機(jī)的功能其實(shí)都是通過(guò)執(zhí)行插件程序來(lái)實(shí)現(xiàn)的。
4.安裝nagios-snmp-plugins
nagios-snmp-plugins是一套用Perl編寫的通過(guò)SNMP方式監(jiān)控主機(jī)的插件程序。
配置這些插件的使用時(shí)需要配置cpan,CPAN是Comprehensive Perl Archive Network的縮寫.。它是一個(gè)巨大的Perl軟件收藏庫(kù),收集了大量有用的Perl模塊(modules)及其相關(guān)的文件。這里主要是使用Perl-Net-SNMP模塊。有兩種方式安裝:
A)通過(guò)CPAN來(lái)安裝
B) 手工安裝
首先去官方網(wǎng)站下載以下幾個(gè)模塊
Crypt::DES
Digest::MD5
Digest::SHA1
Digest::HMAC
Net::SNMP
下載后對(duì)于每個(gè)模塊依次按照下面的方式安裝
表示模塊名,具體請(qǐng)按上面提到的模塊替換
注意:Net::SNMP模塊必須在最后安裝。至此Net::SNMP手動(dòng)安裝完畢
執(zhí)行nagios-snmp-plugins安裝腳本,執(zhí)行之后會(huì)將插件命令安裝到/usr/local/nagios/libexec下
5.其他設(shè)置
至此nagios基本已經(jīng)安裝完畢,但這時(shí)還不能馬上啟動(dòng)nagios,需要以下設(shè)置。
將nagios添加到服務(wù)中
設(shè)置服務(wù)為自啟動(dòng)
檢測(cè)nagios的配置是否正確,在后面配置nagios過(guò)程中我們?yōu)榱藱z測(cè)配置的是否正確需要不斷執(zhí)行該命令來(lái)檢查配置文件。
#service nagios start 啟動(dòng)nagios
需要注意的是,Centos默認(rèn)打開(kāi)了selinux并且運(yùn)行于強(qiáng)制安全模式,這將導(dǎo)致在打開(kāi)nagios的web界面時(shí)會(huì)出現(xiàn)Internet Server Error的錯(cuò)誤。
查看是否運(yùn)行于強(qiáng)制模式,結(jié)果為1表示是
更改selinux運(yùn)行于寬容模式
但是這個(gè)設(shè)置重啟后就會(huì)失效,如需要重啟后保持該設(shè)置需要修改/etc/sysconfig/selinux,將其中的SELINUX= enforcing更改為SELINUX= permissive并重啟系統(tǒng)。當(dāng)然你也可以改成disable禁用selinux。
也可以不更改selinux的運(yùn)行模式,解決辦法為:
6.實(shí)現(xiàn)MSN報(bào)警
要實(shí)現(xiàn)MSN報(bào)警需要使用phpmsnclass,這是一個(gè)用php實(shí)現(xiàn)的msn機(jī)器人程序。
下載phpmsnclass,此文件為7zip壓縮格式,需要安裝7z
phpmsnclass需要php支持,安裝php,這里為了方便就直接完成LAMP環(huán)境的安裝
安裝mysql數(shù)據(jù)庫(kù),后面安裝cacti需要
由于安全原因請(qǐng)將mysql設(shè)置為只監(jiān)聽(tīng)在127.0.0.1上,并刪除mysql庫(kù)中默認(rèn)的除了外的所有用戶,相關(guān)設(shè)置請(qǐng)見(jiàn)以前的關(guān)于postfix安裝中的設(shè)置。
安裝php相關(guān)模塊
msn報(bào)警有2種方式,一種是直接使用php進(jìn)行登陸驗(yàn)證發(fā)送消息,另外一個(gè)是以msn機(jī)器人的形式發(fā)送,將消息存儲(chǔ)在目錄內(nèi)。這里采用第二種。
下面把msnbot.php, config.php和msn.class.php拷貝到/var/spool/msnbot/
這個(gè)機(jī)器人的工作原理是如果要發(fā)送消息,就調(diào)用php生成消息文件到
/var/spool/msnbot/spool目錄中,發(fā)送程序檢查到該目錄有新文件就會(huì)模擬msn登陸和發(fā)信將信息發(fā)送出去。
在配置文件中設(shè)置MSN的賬號(hào)和密碼(以后報(bào)警通過(guò)這個(gè)MSN發(fā)出)
加上執(zhí)行權(quán)限
在啟動(dòng)函數(shù)里執(zhí)行的php文件前要加上php (php后有空格)
啟動(dòng)MSN機(jī)器人
下面發(fā)個(gè)消息測(cè)試一下
如果成功接收到信息說(shuō)明配置正確,此步驟到此結(jié)束,后面的能讓Nagios使用MSN進(jìn)行報(bào)警的功能需要到Nagios里設(shè)置了。
如果需要支持離線消息即當(dāng)你在離線狀態(tài)下也能接收到機(jī)器人的信息,需要使用MSNP15協(xié)議,修改相關(guān)發(fā)信的php文件將聲明新類的地方new MSN的第一個(gè)參數(shù)改為MSNP15

【使用教程】
安裝我們遠(yuǎn)程上Centos服務(wù)器,先添加好yum源


然后安裝nagios需要依賴的軟件包,里邊包含我需要的軟件如mtr 、nc命令都是我要用到的,所以一起安裝了;因?yàn)榘惭b的軟件包有些多所以要等待一些時(shí)間。
yum install -y gcc gcc-c++ httpd php php-gd glibc glibc-common gd gd-devel perl perl-devel traceroute bind-utils ntpdate mtr wget nc mailx


下載nagios源碼包

解壓并安裝nagios
tar zxf nagios-4.0.8.tar.gz
cd nagios-4.0.8
/usr/sbin/useradd -m nagios
passwd nagios
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
service httpd restart
setenforce 0
chkconfig --add nagios
service nagios start



設(shè)置httpd和nagios開(kāi)機(jī)啟動(dòng),先禁用selinux和防火墻
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
service iptables stop
chkconfig iptables off
chkconfig ip6tables off

最后在瀏覽器檢查下安裝后的情況,能正常打開(kāi)nagios的頁(yè)面即可

【常見(jiàn)問(wèn)題】
問(wèn)題1It appears as though you do not have permission to view information for any of the hosts you requested
臨時(shí)解決:
sed -i 's/use_authentication=1/use_authentication=0/g' /usr/local/nagios/etc/cgi.cfg
(取消了認(rèn)證 可以瀏覽主機(jī)狀態(tài) 但是無(wú)法在 nagios web端 執(zhí)行外部命令 )
解決:
登陸 nagios web接口的用戶,需要和 /usr/local/nagios/etc/cgi.cfg 里面配置的用戶匹配,沒(méi)有可以手動(dòng)添加,用逗號(hào)隔開(kāi)。
問(wèn)題2:
Sorry Dave, I can't let you do that...
It seems that you have chosen to not use the authentication functionality of the CGIs.
I don't want to be personally responsible for what may happen as a result of allowing unauthorized users to issue commands to Nagios,so you'll have to disable this safeguard if you are really stubborn and want to invite trouble.
Read the section on CGI authentication in the HTML documentation to learn how you can enable authentication and why you should want to.
原因 : 未開(kāi)啟認(rèn)證
解決:開(kāi)啟認(rèn)證可解決問(wèn)題,編輯文件 /usr/local/nagios/etc/cgi.cfg,將 use_authentication 值設(shè)成1 (0/1 關(guān)閉/開(kāi)啟)use_authentication=1,并重啟 nagios service nagios restart
問(wèn)題3:
It appears as though you do not have permission to view information for any of the hosts you requested...
If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.
原因 : 認(rèn)證用戶不正確
開(kāi)啟認(rèn)證:認(rèn)證的用戶必須是 cgi.cfg 配置文件里有的 默認(rèn)是 nagiosadmin,如果你新建的其他用戶,需要添加進(jìn)去,多用戶用逗號(hào)分開(kāi)
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
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
如果不是 nagiosadmin 需要到后面添加,例子 authorized_for_system_information=nagiosadmin,admin
問(wèn)題4:
調(diào)用外部命令錯(cuò)誤,可能權(quán)限不夠
解決:
臨時(shí)解決:
chown -R nagios.nagcmd /usr/local/nagios/var/rw
chmod -R 777 /usr/local/nagios/var/rw
為什么說(shuō)臨時(shí)解決 ? 因?yàn)橹貑agios后,權(quán)限會(huì)還原,還是沒(méi)權(quán)限執(zhí)行。
解決:
在安裝 nagios 時(shí),就要把用戶選對(duì),然后再安裝。
./configure --with-group=nagios --with-user=nagios --with-command-group=nagcmd --with-gd-lib=/usr/lib --with-gd-inc=/usr/include
make all
make install
make install-init
make install-config
make install-commandmode
===
rw agios.cmd 權(quán)限是 nagios.nagios,還需要把 web用戶 加入到 nagios組里 這樣才有權(quán)限執(zhí)行 nagios.cmd
問(wèn)題5:
3D瀏覽錯(cuò)誤,提示下載 statuswrl.cgi
解決: 需安裝3D瀏覽插件
原因是未安裝支持vrml 3D瀏覽的插件,vrml 面向?qū)ο蟮娜S造型語(yǔ)言,需要安裝 vrml 支持插件才能瀏覽,Cortona VRML Client 是一個(gè)優(yōu)秀的VRML瀏覽插件
問(wèn)題6:
查看幫助文檔時(shí),無(wú)法看到圖片
原因是url錯(cuò)誤
圖片源地址 http://nagios_ip/pub/images/reachability1.png
實(shí)際地址 /usr/local/nagios/share/docs/images/reachability1.png
解決:配置apache加入別名
Alias /pub "/usr/local/nagios/share/docs"
apachectl restart
重啟apache 問(wèn)題解決
nagios的這些常見(jiàn)問(wèn)題以及解決辦法你學(xué)會(huì)了嗎?相信這是一份很有用的資源,希望這些辦法能夠幫你解決困擾。


































