Centos 5.5 安裝Nagios 3.2.3記錄

網上有N多安裝文件,但是寫的好的不多,大多是抄來抄去,本文是個人實踐安裝的記錄,安裝的時候參考過網上很多高手的傑作,在此非常感謝!

環境:

Centos 5.5 64 位,Nagios 3.2.3 Nrpe 2.12,nagios-plugin 1.4.15

需求: 安裝LAMP,如果要安裝pnp4nagios,php版本必須5.2以上。軟件包:httpd,php,gcc,glibc,glibc-common,gd,gd-devel

安裝軟件包:

# yum install -y httpd
# yum install -y php
# yum install -y glibc glibc-common
# yum install -y gd gd-devel

#增加用戶和組

# useradd nagios
# passwd nagios
# nagios123

#創建nagcmd組,用於從web接口執行外部命令,將nagios,apache加到這個組中

# groupadd nagcmd
# usermod -G nagcmd nagios
# usermod -G nagcmd apache

#下載源文件和插件
# cd /opt
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

#安裝和配置nagios

# cd /opt
# tar zxvf nagios-3.2.3.tar.gz
# cd nagios-3.2.3
# ./configure --prefix=/usr/local/nagios --with-command-group=nagcmd
# make all
# make install
# make install-init
# 如果是freebsd系統,在執行make install-init前必須修改Makefile文件,將INIT_OPTS=-o root -g root修改爲:INIT_OPTS=-o root -g wheel,否則會提示
install: root: Invalid argument
*** Error code 67
# make install-config
# make install-commandmode

#配置web接口,安裝nagios的web配置文件到apache的conf目錄下

# make install-webconf
#如果是freebsd,執行這步前必須修改Makefile,修改httpd的conf文件路徑,否則會出錯。

#配置一個nagiosadmin用戶用於nagios的web接口登錄。

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

#安裝nagios插件

# cd /opt
# tar zxvf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install

#重啓apache服務

# service httpd restart

# 驗證nagios.cfg文件,建議在每次修改配置文件後都驗證,確認無誤後,然後啓動nagios服務

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

# 啓動nagios服務
# service nagios start

#修改SElinux設置,也可以修改/etc/selinux/config使之永久有效

# setenforce 0


#到目前爲止,基礎的安裝已經完成了!打開IE訪問Nagios

http://ip/nagios

 

#設置聯繫人郵件通知,在系統有故障時通過郵件告知管理員,假定設置2個聯繫人。

# vi /usr/local/nagios/etc/objects/contacts.cfg

#找到define contact,修改mail地址爲第一聯繫人地址,再添加一個聯繫人信息,如果要添加多個地址,可以在郵件地址後面用逗號隔開。

define  contact{
        contact_name                    user2
        use                             generic-contact
        alias                           contact user2     
       service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           [email protected]
}


# 修改聯繫人組,找到define contactgroup,在members裏增加聯繫人名字,用逗號分隔。

 


# 添加Windows 服務器到監控平臺


# Windows 客戶端設置

#下載windows 監控客戶端NSclient++0.3.8-win32.msi到被監控的服務上

#下載地址http://files.nsclient.org/x-0.3.x/NSClient%2B%2B-0.3.8-Win32.msi

# 安裝NSClient++
# 修改服務,勾選允許桌面交互
services.msc--NSClient++ (Win32)--登錄--允許桌面交互
#修改nsc.ini,該文件在NSClient++安裝目錄下
#去掉[modules]段的模塊程序註釋,除了CheckWMI.dll,RemoteConfiguration.dll
#檢查[Settings]裏德allowed_hosts註釋,添加Nagios服務器IP地址,或者設置爲空,允許全部主機
#確認[NSClient]port12489全的註釋是否去掉
#並且在防火牆上開啓該端口
#啓動nsclient++服務


#Nagios 服務器端設置
#配置Nagios,添加被監控的windows server

#編輯nagios.cfg
# vi /usr/local/nagios/etc/nagios.cfg
#去掉以下注釋,保存後退出
# cfg_file=/usr/local/nagios/etc/objects/windows.cfg

#修改主機對象 host_name,alias,address,將這3個對象修改成被監控的windows server信息。
#如果有一臺以上主機,可以通過host_group或者增加define host,define service,將新的主機添加進去
# 也可以單獨建立被監控的服務器cfg文件,放在/usr/local/nagios/etc/objects下面,然後在nagios.cfg裏把文件添加進去即可:
cfg_file=/usr/local/nagios/etc/objects/server-name.cfg


#驗證配置文件
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

#驗證無誤後,重啓nagios 服務
# service nagios restart

#至此,添加Windows Server 服務器完成!

 


# 添加Linux 服務器到監控平臺

#監控linux 客戶機必須在客戶機和服務器上安裝插件

# linux 客戶機安裝

# cd /opt
# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz/download

# useradd nagios
# passwd nagios #aerohive
# groupadd nagios
# usermod -G nagios nagios
# tar zxvf nagios-plugins-1.4.15.tar.gz
# tar zxvf nrpe-2.12.tar.gz
# cd nagios-plugins-1.4.15/
# ./configure
# make
# make install
# 默認會在/usr/local/nagios/下生成兩個目錄libexec和share
# chown -R nagios.nagios nagios
# cd /opt/nrpe-2.12/
# ./configure
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config

#修改nrpg.cfg,添加nagios server ip

# vi /usr/local/nagios/etc/nrpe.cfg
#修改allowed_hosts=127.0.0.1爲allowed_hosts=10.155.50.166

#啓動nrpe

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
#驗證本地nrpe是否開啓,如果沒有開啓,需要再防火牆上開放該端口
# netstat -an|grep 5666

# nagios 服務器端設置

# cd /opt
#tar zxvf nagios-nrpe_2.12.tar.gz
# cd nagios-nrpe_2.12
# ./configure
# make all
# make install-plugin
# 測試與Linux客戶機的連通性

# /usr/local/nagios/libexec/check_nrpe -H 被監控端ip

# 如果返回nrpe版本號,則表示服務器與客戶機連接正常!

安裝時的問題:

1、在linux 客戶機上編譯nrpe的時候提示:

checking for SSL headers... configure: error: Cannot find ssl headers

解決:

1). 先查看是否安裝openssl,如果安裝,查看ssl安裝路徑,編譯的時候指定ssl,ssl lib路徑,例如
#  ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/opt/open-ssl/lib

2). 如果指定路徑也不行,可能缺少該文件,將/usr/lib/libssl.so.0.9.8或者/lib/libssl.so.0.9.8做一個軟鏈接,鏈接成libssl.so,重新編譯即可。
# cd /usr/lib
# ln -s /usr/lib/libssl.so.0.9.8 libssl.so

3). 如果以上兩個辦法都不行,檢查是否安裝openssl-devel ,如果沒有,則安裝yum install openssl-devel

4). 也可以在編譯的時候禁用ssl,但是安裝成功後客戶機與主機不能通信,不能使用check_nrpe方式

# ./configure --enable-commands-args --disable-ssl


2、服務器端顯示檢查內存失敗:NRPE: Unable to read output

解決:在LINUX客戶機查看nrpe.cfg關於內存檢查的設置:

command[check_memory]=/usr/local/nagios/libexec/check_memory -w 80% -c 90%
在命令行執行該命令提示出錯,修改爲check_memory -w 20 -c 10後正常。說明是腳本問題。
將客戶端以及服務器端nrpe.cfg關於內存的語句修改正確後重啓nrpe和nagios進程後正常。

對於nrpe.cfg文件,在linux 客戶端的設置必須和nagios服務器端配置一樣,否則就會出錯。

 

# 配置郵件通知功能

# 配置郵件監控,利用sendmail進行郵件通知

#增加郵件和短信通知信息,notify-service-by-email是郵件通知,service-by-sms爲短信


# vi /usr/local/nagios/etc/object/contacts.cfg

#在默認的define contact 裏增加:
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email [email protected]


# 定義聯繫人(略)

# sendmail設置
#檢查系統是否安裝sendmail,rpm -qa sendmail,如果沒有,直接運行yum -y install sendmail

# 設置sendmail郵件接收和轉發功能(非必須,可使用默認的)
# cd /etc/mail/access
# vi /etc/mail/access

#增加轉發地址,保存後執行:
# makemap hash access < access
# chmod 777 /var/spool/mqueue

#測試sendmail
# /usr/lib/sendmail -bp
/var/spool/mqueue is empty
#發封郵件測試一下sendmail是否正常
# echo testmail | /usr/sbin/sendmail -v mail [email protected]

#重新啓動nagios,等下就可以收到郵件了!

問題:

1、郵件通知可以發給163.com等其他信箱,但是公司信箱收不到。
解決:編輯/etc/mail/sendmail.cf
# "Smart" relay host (may be null)
DS
修改爲DSma1.abc.com
#abc.com爲公司信箱域名
#設置smart relay host是可以讓其他郵件服務器代爲轉發郵件。
#service sendmail restart

#重啓後測試正常!


# 安裝pnp4nagios 輸出圖形和圖表


#安裝pnp4nagios前必須將php升級到5.2,另外需要安裝rrdtool

# yum install rrdtool
# yum install php
# yum install php-gd


#下載安裝 pnp4nagios-0.6.7.tar.gz

# cd /opt
# wget wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.7.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpnp4nagios%2F&ts=1292162865&use_mirror=ncu
# tar zxvf pnp4nagios-0.6.7.tar.gz
# cd pnp4nagios0.6.7
# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
# make all
# make install
# make install-webconf
# make install-config
# make install-init

# 修改配置

# cd /usr/local/pnp4nagios/etc
# cp misccommands.cfg-sample  misccommands.cfg
# cp nagios.cfg-sample  nagios.cfg
# cp npcd.cfg-sample npcd.cfg
# cp process_perfdata.cfg-sample  process_perfdata.cfg
# cp rra.cfg-sample rra.cfg

# cd pages
# cp web_traffic.cfg-sample web_traffic.cfg
# cd ../check_commands
# cp check_all_local_disks.cfg-sample  check_all_local_disks.cfg
# cp check_nrpe.cfg-sample  check_nrpe.cfg
# cp check_nwstat.cfg-sample  check_nwstat.cfg

# 啓動npcd服務
# service npcd start


#修改nagios.cfg
# cd /usr/local/nagios/etc
# vi  nagios.cfg
#修改配置爲:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata

#修改 commands.cfg

# cd /usr/local/nagios/etc/objects
# vi commands.cfg
#添加
# 'process-host-perfdata' command definition
define command{
        command_name    process-host-perfdata
        command_line    command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA #後面的-d HOSTPERFDATA很重要!沒有的話就不能產生圖形文件了!
        }
# 'process-service-perfdata' command definition
define command{
        command_name    process-service-perfdata
        command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
        }
 
#修改模板,添加小太陽鑲嵌在nagios頁面上。

# templates.cfg
# 在最後添加
define host {
name       host-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_
register   0
}
define service {
name       srv-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register   0
}


# 修改主機配置文件,例如windows.cfg

# cd /usr/local/nagios/etc/objects
# vi windows.cfg
#增加host-pnp,srv-pnp
define host{
        use                     linux-server,host-pnp 
        host_name  Windows Server
        alias                   Windows 2003 server
        address                 1.2.3.4
        }


define service{
        use                      generic-service,srv-pnp     
        host_name                Windows Server
        service_description        PING
        check_command            check_ping!100.0,20%!500.0,60%

其他相關的define host, define service都要修改。

#驗證配置文件,無誤後重啓nagios和httpd 服務
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

#重啓服務

# service nagios restart
# service httpd restart

# 最後刪除instal.php,安裝完成,登錄nagios控制檯,選擇host--主機名旁邊的小太陽,即可看到圖形界面!
# cd /usr/local/pnp4nagios/share
# rm install.php


問題1:安裝rrdtool的時候提示:

No package rrd-tool* available.
Nothing to do

解決:

重新下載x86_64位的rpmforge-release
#RHEL5 / CentOS-5
i386: http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
x86_64: http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
# yum install rrdtool

問題2:安裝php5.2的時候提示Nothing to do
解決:

編輯CentOS-Base.repo

# vi /etc/yum.repos.d/CentOS-Base.repo
# 添加以下內容:
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
#保存後執行
# yum --disablerepo=\* --enablerepo=c5-testing install php
# yum  install php


問題3:安裝完成後,點擊小太陽,提示:
PNP Error
Please check the Kohana documentation for information about the following error.

application/models/data.php [143]:

perfdata directory "/usr/local/pnp4nagios/var/perfdata/BK-AD" for host "BK-AD" does not exist. Read FAQ online

在perfdata.log裏顯示:

2010-12-13 15:43:08 [7608] [1] process_perfdata.pl-0.6.7 starting
in SYNC Mode
2010-12-13 15:43:08 [7608] [2] Datatype set to 'SERVICEPERFDATA'
2010-12-13 15:43:08 [7608] [1] No Performance Data for AD-Srv / 
2010-12-13 15:43:08 [7608] [1] PNP exiting ...

在/usr/local/pnp4nagios/var/perfdata下面沒有主機名目錄,手動創建後各目錄下也不能產生文件

 

解決:

1.權限問題
在/usr/local/pnp4nagios/var/perfdata下的各個主機名如果是手動創建,必須確認目錄權限是否正確

2.開啓日誌,查看原因

沒有目錄產生的原因,可以先DEBUG日誌,將perfdata日誌開啓,日誌文件在/usr/local/pnp4nagios/var/perfdata.log,編輯/usr/local/pnp4nagios/etc/process_perfdata.cfg
設置LOG_LEVEL = 2

3. 確認nagios下正確修改以下語句:
nagios.cfg 中修改:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata

commands.cfg中修改:
define command {
command_name    process-host-perfdata
command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
}

define command {
command_name    process-service-perfdata
command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
}

這步比較重要,網上很多人說沒有圖,但是看過他們的配置文件,好像都沒有加上-d HOSTPERFDATA,應該就是這個原因!

4.關於pnp的類型
可以執行
# ./verify_pnp_config -m <mode>

類型在commands.cfg裏設置,例如:
define command{
        command_name    process-host-perfdata-file
        command_line    $USER1$/process_perfdata.pl --bulk=/usr/local/nagios/var/host-perfdata
 }

5. 目前關於pnp圖形顯示還有個問題,點擊主機名左邊Service的小太陽圖片出不來,總是提示:
PNP Error
Please check the Kohana documentation for information about the following error.

application/models/data.php [286]:

XML file "/usr/local/pnp4nagios/var/perfdata/AD-Srv/C___Drive_Space.xml" not found.

好像沒有這些xml文件生成,不知道什麼原因?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章