此平台是基于apache2.2.1+php5.3.0+nagios3.1.2+fetion2009等软件的组合搭建而出,这些软件的版本是现阶段最新的。本人经过一段时间的搭建与测试,各个功能都能够成功实现,现源于开源软件,本人却不敢独享,现把搭建与配置过程介绍如下:
一、服务器端的设置
1、下载需求软件:
nagios主程序:
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.1.2.tar.gz
nagios插件程序:
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
apache程序:
http://apache.freelamp.com/httpd/httpd-2.2.11.tar.gz
php程序:
http://cn.php.net/distributions/php-5.3.0.tar.gz
libACE程序:
http://www.it-adv.net/fetion/downng/library_linux.tar.gz
fetion机器人程序:
http://www.it-adv.net/fetion/downng/fetion20090406003-linux.tar.gz
2、软件的安装
(1) apache的安装
[root@localhost httpd-2.2.11]# ./configure --prefix=/usr/local/apache --enable-so
[root@localhost httpd-2.2.11]# make && make install容
(2) php的安装
[root@localhost php-5.2.10]# ./configure --prefix=/usr/local/php \
> --with-apxs2=/usr/local/apache/bin/apxs
[root@localhost php-5.2.10]# make && make install
[root@localhost php-5.2.10]# cp php.ini-dist /usr/local/lib/php.ini
[root@localhost php-5.2.10]# vi /usr/local/apache/conf/httpd.conf请
为了配置文件的工整,在配置文件的相关地方加入如下配置:
LoadModule php5_module modules/libphp5.so (如果有,不用加)
AddType application/x-httpd-php .php .html
找到DirectoryIndex index.html
改为: DirectoryIndex index.php index.html
在最后加入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
</Directory>
Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory> 请输入内容
为了支持Nagios安装完后status map,trend等完全显示,需要gd库的支持,首先看一下gd与gd-devel有没有安装
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost php-5.2.10]# rpm -qa|grep gd
![](http://blog.51cto.com/images/editer/InBlock.gif)
gdb-6.5-37.el5
![](http://blog.51cto.com/images/editer/InBlock.gif)
libgdiplus-1.2.5-1.el5.centos
![](http://blog.51cto.com/images/editer/InBlock.gif)
gd-2.0.33-9.4.el5_1.1
![](http://blog.51cto.com/images/editer/InBlock.gif)
gdbm-1.8.0-26.2.1
![](http://blog.51cto.com/images/editer/InBlock.gif)
sysklogd-1.4.1-44.el5
![](http://blog.51cto.com/images/editer/InBlock.gif)
libgdiplus-devel-1.2.5-1.el5.centos
![](http://blog.51cto.com/images/editer/InBlock.gif)
gd-devel-2.0.33-9.4.el5_1.1
如果没有,请拿出光盘安装上,或者用yum -y install gd*安装也可
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-3.1.2]# useradd nagios
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-3.1.2]# ./configure --prefix=/usr/local/nagios \
![](http://blog.51cto.com/images/editer/InBlock.gif)
> --with -gd-lib=/usr/lib --with-gd-inc=/usr/include --with-nagios-user=nagios \
![](http://blog.51cto.com/images/editer/InBlock.gif)
> --with-nagios-group=nagios
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-3.1.2]# make all
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-3.1.2]# make install
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-3.1.2]# make install-init
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-3.1.2]# make install-commandmode
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-3.1.2]# make install-config
(4) nagios-plugin的安装
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-plugins-1.4.13]# ./configure --prefix=/usr/local/nagios
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost nagios-plugins-1.4.13]# make && make install
(5) 飞信机器人的安装
在安装飞信之前需要在/usr/lib目录下加上libACE库文件,以便使飞信能够正常使用
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# tar zxvf library_linux.tar.gz
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# mv libACE* libcrypto.so.0.9.8 libssl.so.0.9.8 /usr/lib
好了,现在来正式安装飞信
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# tar zxvf fetion20090406003-linux.tar.gz
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# mv install /usr/local/fetion
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# chmod -R 755 /usr/local/fetion
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# chown -R nagios:nagios /usr/local/fetion
测试飞信能否成功发送短信(发送对象需是自己飞信好友):
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# /usr/local/fetion/fetion --mobile=137*** --pwd=*** \
![](http://blog.51cto.com/images/editer/InBlock.gif)
> --to=136*** --msg-utf8="test"
如果136***能成功收到137***的短信就是正常的哟,如果不能成功看日志。
3、nagios的配置
首先讲一下,我建有host(主机),hostgroup(主机组),contact(联系人),contactgroup(联系人组),分别讲一下它们的相关情况:
host包含:TH-02,VH-178,VH-132,MH-110,MH-13
hostgroup包含:TG(别名:testgroup) , VG(别名:virtualgroup),MG(别名:maintaingroup);TG包括主机:TH-02,VG包括主机:VH-132,VH-178,MG包括主机:MH-110,MH-13
contact包含:WSP,HW,ZY
contactgroup包含:testers,virtualers,maintainers;testers包含用户:WSP,virtualers包含用户:WSP和HW,maintainers包含用户:ZY
为了直观起见,请看下图,
好了,有了大致模块以后,现在我们正式开始配置nagios吧
(1) host的编辑与添加
为了灵活使用,我们直接进入/usr/local/nagios/etc/objects目录下面,
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# cd /usr/local/nagios/etc/objects/
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost objects]# vi hosts.cfg
##########################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
### Define whole host for all the machines
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define testgroup host for the testers machine
![](http://blog.51cto.com/images/editer/InBlock.gif)
define host{
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_name TH-02
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias testhost02
![](http://blog.51cto.com/images/editer/InBlock.gif)
max_check_attempts 5
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_groups testers
![](http://blog.51cto.com/images/editer/InBlock.gif)
address 60.191.*.*
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define virtualgroup host for the virtualers machine
![](http://blog.51cto.com/images/editer/InBlock.gif)
define host{
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_name VH-178
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias Virutalhost178
![](http://blog.51cto.com/images/editer/InBlock.gif)
max_check_attempts 5
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_groups virtualers
![](http://blog.51cto.com/images/editer/InBlock.gif)
address *.*.*.178
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
define host{
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_name VH-132
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias Virtualhost132
![](http://blog.51cto.com/images/editer/InBlock.gif)
max_check_attempts 5
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_groups virtualers
![](http://blog.51cto.com/images/editer/InBlock.gif)
address *.*.*.132
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define maintaingroup host for the maintainers machine
![](http://blog.51cto.com/images/editer/InBlock.gif)
define host{
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_name MH-110
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias maintainhost110
![](http://blog.51cto.com/images/editer/InBlock.gif)
max_check_attempts 5
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_groups maintainers
![](http://blog.51cto.com/images/editer/InBlock.gif)
address *.*.*.110
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
define host{
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_name MH-13
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias maintainhost13
![](http://blog.51cto.com/images/editer/InBlock.gif)
max_check_attempts 5
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_groups maintainers
![](http://blog.51cto.com/images/editer/InBlock.gif)
address *.*.*.13
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
##############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
### Define all hostgroup for the whole machine
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define testgroup
![](http://blog.51cto.com/images/editer/InBlock.gif)
define hostgroup{
![](http://blog.51cto.com/images/editer/InBlock.gif)
hostgroup_name TG
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias testgroup
![](http://blog.51cto.com/images/editer/InBlock.gif)
members TH-02
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define virtualgroup
![](http://blog.51cto.com/images/editer/InBlock.gif)
define hostgroup{
![](http://blog.51cto.com/images/editer/InBlock.gif)
hostgroup_name VG
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias virtualgroup
![](http://blog.51cto.com/images/editer/InBlock.gif)
members VH-178,VH-132
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define maintaingroup
![](http://blog.51cto.com/images/editer/InBlock.gif)
define hostgroup{
![](http://blog.51cto.com/images/editer/InBlock.gif)
hostgroup_name MG
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias maintaingroup
![](http://blog.51cto.com/images/editer/InBlock.gif)
members MH-110,MH-13
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
#############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
### SERVICE DEFINITIONS
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define a service to "ping" the whole machine
![](http://blog.51cto.com/images/editer/InBlock.gif)
define service{
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_name TH-02,VH-178,VH-132,MH-110
![](http://blog.51cto.com/images/editer/InBlock.gif)
service_description PING
![](http://blog.51cto.com/images/editer/InBlock.gif)
is_volatile 0
![](http://blog.51cto.com/images/editer/InBlock.gif)
check_period 24x7
![](http://blog.51cto.com/images/editer/InBlock.gif)
max_check_attempts 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
normal_check_interval 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
retry_check_interval 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
notification_options w,u,c,r
![](http://blog.51cto.com/images/editer/InBlock.gif)
notification_interval 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
notification_period 24x7
![](http://blog.51cto.com/images/editer/InBlock.gif)
check_command check_ping!100.0,20%!500.0,60%
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define a service to "HTTP" the whole machine
![](http://blog.51cto.com/images/editer/InBlock.gif)
define service{
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_name H-02,VH-178,VH-132,MH-13,MH-110
service_description HTTP
![](http://blog.51cto.com/images/editer/InBlock.gif)
is_volatile 0
![](http://blog.51cto.com/images/editer/InBlock.gif)
check_period 24x7
![](http://blog.51cto.com/images/editer/InBlock.gif)
max_check_attempts 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
normal_check_interval 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
retry_check_interval 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
notification_options w,u,c,r
![](http://blog.51cto.com/images/editer/InBlock.gif)
notification_interval 1
![](http://blog.51cto.com/images/editer/InBlock.gif)
notification_period 24x7
![](http://blog.51cto.com/images/editer/InBlock.gif)
check_command check_http
![](http://blog.51cto.com/images/editer/InBlock.gif)
notifications_enabled 0
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
service 可以根据自己的需要加的,我这里只对HTTP与PING来作阐述的。
(2) contacts.cfg的编辑
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
# CONTACTS.CFG - SAMPLE CONTACT/CONTACTGROUP DEFINITIONS
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Last Modified: 05-31-2007
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
# NOTES: This config file provides you with some example contact and contact
![](http://blog.51cto.com/images/editer/InBlock.gif)
# group definitions that you can reference in host and service
![](http://blog.51cto.com/images/editer/InBlock.gif)
# definitions.
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
# You don't need to keep these definitions in a separate file from your
![](http://blog.51cto.com/images/editer/InBlock.gif)
# other object definitions. This has been done just to make things
![](http://blog.51cto.com/images/editer/InBlock.gif)
# easier to understand.
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
# CONTACTS
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
### Define contact information for all the contacter
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define contact information for WSP
![](http://blog.51cto.com/images/editer/InBlock.gif)
define contact{
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_name WSP
![](http://blog.51cto.com/images/editer/InBlock.gif)
use generic-contact
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias WY-wsp
![](http://blog.51cto.com/images/editer/InBlock.gif)
service_notification_commands notify-service-by-email,service-notify-by-fei
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_notification_commands notify-host-by-email,host-notify-by-fei
![](http://blog.51cto.com/images/editer/InBlock.gif)
email
[email protected]
![](http://blog.51cto.com/images/editer/InBlock.gif)
pager 150***
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define contact information for HW
![](http://blog.51cto.com/images/editer/InBlock.gif)
define contact{
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_name HW
![](http://blog.51cto.com/images/editer/InBlock.gif)
use generic-contact
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias WY-hw
![](http://blog.51cto.com/images/editer/InBlock.gif)
service_notification_commands notify-service-by-email,service-notify-by-fei
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_notification_commands notify-host-by-email,host-notify-by-fei
![](http://blog.51cto.com/images/editer/InBlock.gif)
email
[email protected]
![](http://blog.51cto.com/images/editer/InBlock.gif)
pager 135***
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define contact information for ZY
![](http://blog.51cto.com/images/editer/InBlock.gif)
define contact{
![](http://blog.51cto.com/images/editer/InBlock.gif)
contact_name ZY
![](http://blog.51cto.com/images/editer/InBlock.gif)
use generic-contact
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias WY-zy
![](http://blog.51cto.com/images/editer/InBlock.gif)
service_notification_commands notify-service-by-email,service-notify-by-fei
![](http://blog.51cto.com/images/editer/InBlock.gif)
host_notification_commands notify-host-by-email,host-notify-by-fei
![](http://blog.51cto.com/images/editer/InBlock.gif)
email
[email protected]
![](http://blog.51cto.com/images/editer/InBlock.gif)
pager 150***
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
# CONTACT GROUPS
![](http://blog.51cto.com/images/editer/InBlock.gif)
#
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
###############################################################################
![](http://blog.51cto.com/images/editer/InBlock.gif)
### Define contact group for all ther whole contacter
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define testers contact group
![](http://blog.51cto.com/images/editer/InBlock.gif)
define contactgroup{
![](http://blog.51cto.com/images/editer/InBlock.gif)
contactgroup_name testers
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias testhost contacters
![](http://blog.51cto.com/images/editer/InBlock.gif)
members WSP
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define virtualers contact group
![](http://blog.51cto.com/images/editer/InBlock.gif)
define contactgroup{
![](http://blog.51cto.com/images/editer/InBlock.gif)
contactgroup_name virtualers
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias virtualhost contacters
![](http://blog.51cto.com/images/editer/InBlock.gif)
members WSP,HW
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# Define maintainers contact group
![](http://blog.51cto.com/images/editer/InBlock.gif)
define contactgroup{
![](http://blog.51cto.com/images/editer/InBlock.gif)
contactgroup_name maintainers
![](http://blog.51cto.com/images/editer/InBlock.gif)
alias maintainhost contacters
![](http://blog.51cto.com/images/editer/InBlock.gif)
members ZY
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
(3) commands.cfg的编辑
为了支持飞信发短信的功能需要在此文件中添加飞信命令,以促使信息的发送,代码如下:
![](http://blog.51cto.com/images/editer/InBlock.gif)
# 'notify-host-by-fei' command definition
![](http://blog.51cto.com/images/editer/InBlock.gif)
define command {
![](http://blog.51cto.com/images/editer/InBlock.gif)
command_name host-notify-by-fei ;
![](http://blog.51cto.com/images/editer/InBlock.gif)
command_line /usr/local/fetion/fetion --mobile=137*** --pwd=*** --to=$CONTACTPAGER$ --msg-utf8="Host $HOSTSTATE$ alert for $HOSTNAME$! on '$LONGDATETIME$'" $CONTACTPAGER$
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
![](http://blog.51cto.com/images/editer/InBlock.gif)
# 'notify-service-by-fei' command definition
![](http://blog.51cto.com/images/editer/InBlock.gif)
define command {
![](http://blog.51cto.com/images/editer/InBlock.gif)
command_name service-notify-by-fei
![](http://blog.51cto.com/images/editer/InBlock.gif)
command_line /usr/local/fetion/fetion --mobile=137*** --pwd=*** --to=$CONTACTPAGER$ --msg-utf8="$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ on $LONGDATETIME$" $CONTACTPAGER$
![](http://blog.51cto.com/images/editer/InBlock.gif)
}
(4) 编辑nagios.cfg
![](http://blog.51cto.com/images/editer/InBlock.gif)
为了不监控本机,现把localhost注释掉,找到此行,并且加以注释:
![](http://blog.51cto.com/images/editer/InBlock.gif)
# cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
![](http://blog.51cto.com/images/editer/InBlock.gif)
为了使刚才编辑的文件生效,需加入一行:
![](http://blog.51cto.com/images/editer/InBlock.gif)
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
(5) 编辑cgi.cfg
为了保证权限能正常访问nagios的web页面,需把这些行的值改掉:
![](http://blog.51cto.com/images/editer/InBlock.gif)
authorized_for_system_information=*
![](http://blog.51cto.com/images/editer/InBlock.gif)
authorized_for_configuration_information=*
![](http://blog.51cto.com/images/editer/InBlock.gif)
authorized_for_system_commands=nagios
![](http://blog.51cto.com/images/editer/InBlock.gif)
authorized_for_all_services=*
![](http://blog.51cto.com/images/editer/InBlock.gif)
authorized_for_all_hosts=*
![](http://blog.51cto.com/images/editer/InBlock.gif)
authorized_for_all_service_commands=*
![](http://blog.51cto.com/images/editer/InBlock.gif)
authorized_for_all_host_commands=*
![](http://blog.51cto.com/images/editer/InBlock.gif)
*号在此表示所有用户,也可以改成相关用户,不过必须逐一添加。
服务器端的配置基本上大致如此了。
4、启动nagios与apache服务
(1) nagios自启动
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost objects]# service nagios restart
![](http://blog.51cto.com/images/editer/InBlock.gif)
Running configuration check...done.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Stopping nagios: done.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Starting nagios: done.
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost objects]# chkconfig nagios on
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost objects]# chkconfig --list|grep nagios
![](http://blog.51cto.com/images/editer/InBlock.gif)
nagios 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
(2) apache的启动
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost ~]# export PATH=$PATH:/usr/local/apache/bin
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost ~]# apachectl -k start
![](http://blog.51cto.com/images/editer/InBlock.gif)
httpd (pid 3108) already running
注:为了让apache可以自启动,可以加入到/etc/rc.local之中。
5、测试与浏览
在启动nagios服务之前,我们可以先测试一下是否配置有没有错误,或者你启动的时候出现错误也可以用下述命令进行测试
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
![](http://blog.51cto.com/images/editer/InBlock.gif)
Nagios 3.1.2
![](http://blog.51cto.com/images/editer/InBlock.gif)
Copyright (c) 2009 Nagios Core Development Team and Community Contributors
![](http://blog.51cto.com/images/editer/InBlock.gif)
Copyright (c) 1999-2009 Ethan Galstad
![](http://blog.51cto.com/images/editer/InBlock.gif)
Last Modified: 06-23-2009
![](http://blog.51cto.com/images/editer/InBlock.gif)
License: GPL
![](http://blog.51cto.com/images/editer/InBlock.gif)
Website: http://www.nagios.org
![](http://blog.51cto.com/images/editer/InBlock.gif)
Reading configuration data...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Read main config file okay...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Processing object config file '/usr/local/nagios/etc/objects/commands.cfg'...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Processing object config file '/usr/local/nagios/etc/objects/contacts.cfg'...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Processing object config file '/usr/local/nagios/etc/objects/timeperiods.cfg'...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Processing object config file '/usr/local/nagios/etc/objects/templates.cfg'...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Processing object config file '/usr/local/nagios/etc/objects/hosts.cfg'...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Read object config files okay...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Running pre-flight check on configuration data...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking services...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 9 services.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking hosts...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 5 hosts.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking host groups...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 3 host groups.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking service groups...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 0 service groups.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking contacts...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 3 contacts.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking contact groups...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 3 contact groups.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking service escalations...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 0 service escalations.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking service dependencies...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 0 service dependencies.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking host escalations...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 0 host escalations.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking host dependencies...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 0 host dependencies.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking commands...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 26 commands.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking time periods...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checked 5 time periods.
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking for circular paths between hosts...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking for circular host and service dependencies...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking global event handlers...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking obsessive compulsive processor commands...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Checking misc settings...
![](http://blog.51cto.com/images/editer/InBlock.gif)
Total Warnings: 0
![](http://blog.51cto.com/images/editer/InBlock.gif)
Total Errors: 0
呵呵,没有错误,可能您在配置之前或多或少会出现问题的,根据相关错误提示,逐一排查,相信您定会成功的。
现在我们打开nagios的web页面,输入: http://***.com/nagios样例
先看map页面,大致页面如下
再看hosts相关链接页面:
最后,我们再看一下hostgroups页面:
二、客户端的配置:
1、需求软件的下载:
nagios插件程序:
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
nrpe软件:
http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
2、软件的安装
(1) nagios插件的安装:
首先在安装前建立nagios用户,命令如下:
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner src]# useradd nagios -s /sbin/nologin -M
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner src]# tar zxvf nagios-plugins-1.4.13.tar.gz
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner src]# cd nagios-plugins-1.4.13
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nagios-plugins-1.4.13]# ./configure --prefix=/usr/local/nagios
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nagios-plugins-1.4.13]# make && make install
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nagios-plugins-1.4.13]# chown -R nagios.nagios /usr/local/nagios/
(2) nrpe的程序的安装:
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner src]# tar zxvf nrpe-2.12.tar.gz
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# cd nrpe-2.12
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# ./configure
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# make all
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# make install-plugin
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# make install-daemon
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# make install-daemon-config
(3) 修改nrpe.cfg配置文件:
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# vi /usr/local/nagios/etc/nrpe.cfg
![](http://blog.51cto.com/images/editer/InBlock.gif)
将server_address的值修改为本机的IP地址:
![](http://blog.51cto.com/images/editer/InBlock.gif)
server_address=*.*.*.110
![](http://blog.51cto.com/images/editer/InBlock.gif)
将allowed_hosts的值修改为远程监控服务器的IP地址:
![](http://blog.51cto.com/images/editer/InBlock.gif)
allowed_hosts=*.*.*.27
(4) 运行nrpe服务:
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
(5) 查看nrpe运行情况:
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]# netstat -nap | grep nrpe
tcp 0 0 *.*.*.110:5666 0.0.0.0:* LISTEN 3538/nrpe
![](http://blog.51cto.com/images/editer/InBlock.gif)
从上述情况来看,nrpe成功运行,并且占用了5666端口
(6) 设置nrpe自启动:
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@yibaner nrpe-2.12]#vi /etc/rc.local
![](http://blog.51cto.com/images/editer/InBlock.gif)
在其中加中此行:
![](http://blog.51cto.com/images/editer/InBlock.gif)
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
(7) 在监控服务器端测试被监控服务器是否正常运行
![](http://blog.51cto.com/images/editer/InBlock.gif)
[root@localhost src]# telnet *.*.*.110 5666
测试如果一切正常,整个配置过程全部告一段落,只需到监控服务器中设置对被监控服务器的所需服务的监控即可。
这样一来,整个nagios的配置全部告一段落了,把被监控服务器的某个服务暂时停用一下,马上就会收到飞信的短消息了,一切表明,配置成功了。