CentOS下Nagios的安装与配置


Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。


Nagios可以识别4种状态返回信息,即0(OK)表示状态正常/绿色、1(WARNING)表示出现警告/***、2(CRITICAL)表示出现非常严重的错误/红色、3(UNKNOWN)表示未知错误/深***。


一、环境


HostNameOSIPSoftware

Nagios-ServerCentOSrelease6.3(Final)192.168.1.108Apache、Php、Nagios、nagios-plugins

Nagios-LinuxCentOSrelease5.8(Final)192.168.1.111nagios-plugins、nrpe

Nagios-WindowsWindowsXP192.168.1.113NSClient++


防火墙已关闭/iptables:Firewallisnotrunning.


SELINUX=disabled



二、Nagios服务端安装


基础支持套件:gccglibcglibc-commongdgd-develxinetdopenssl-devel


2.1创建nagios用户和用户组


useradd-s/sbin/nologinnagios

mkdir/usr/local/nagios

chown-Rnagios.nagios/usr/local/nagios


2.2编译安装Nagios


wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz

tarzxvfnagios-3.4.3.tar.gz

cdnagios

./configure--prefix=/usr/local/nagios

makeall

makeinstall

makeinstall-init

makeinstall-commandmode

makeinstall-config

cd


chkconfig--addnagios

chkconfig--level35nagioson

chkconfig--listnagios


2.3安装Nagios插件


wgethttps://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz

or

wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

tarxzvfnagios-plugins-1.5.tar.gz

cdnagios-plugins-1.5

./configure--prefix=/usr/local/nagios

make&&makeinstall


2.4安装配置Apache、PHP


yum-yinstallhttpdphp//如果已经安装此步骤略过;


2.4.1配置apache主配置文件


vim/etc/httpd/conf/httpd.conf


找到

Userapache

Groupapache

更改为

Usernagios

Groupnagios


找到

DirectoryIndexindex.html

更改为

DirectoryIndexindex.htmlindex.php


在下一行新增如下内容:

AddTypeapplication/x-httpd-php.php


为了安全起见,一般情况下要让nagios的web监控页面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf文件最后添加如下信息:

#settingfornagios
ScriptAlias/nagios/cgi-bin"/usr/local/nagios/sbin"
<Directory"/usr/local/nagios/sbin">
AuthTypeBasic
OptionsExecCGI
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"NagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd//用于此目录访问身份验证的文件
Requirevalid-user
</Directory>
Alias/nagios"/usr/local/nagios/share"
<Directory"/usr/local/nagios/share">
AuthTypeBasic
OptionsNone
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"nagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd
Requirevalid-user
</Directory>

保存退出;


2.4.2创建apache目录验证文件及启动apache服务


htpasswd-c/usr/local/nagios/etc/htpasswddavid


cat/usr/local/nagios/etc/htpasswd


servicehttpdrestart


到这里Nagios安装及基本配置已经完成了;测试访问一下:


http://ip地址/nagios


用户名

密码



2.5配置Nagios


2.5.1配置联系人信息


cp/usr/local/nagios/etc/objects/contacts.cfg/usr/local/nagios/etc/objects/contacts.cfg.bak


vim/usr/local/nagios/etc/objects/contacts.cfg


更改

contact_namedavid


email744120325@qq.com


contactgroup_namets


membersdavid



2.5.2配置主机信息


touch/usr/local/nagios/etc/objects/hosts.cfg


vim/usr/local/nagios/etc/objects/hosts.cfg


新增如下内容:

definehost{

uselinux-server

host_namehostname01

aliashostname01

address192.168.1.111

}


definehost{

uselinux-server

host_namehostname02

aliashostname02

address192.168.1.112

}


definehostgroup{

hostgroup_namebsmart-servers

aliasbsmartservers

membershostname01,hostname02

}


--------------------------------------


vim/etc/hosts

新增

ip地址hostname//192.168.122.128localhost


--------------------------------------


由于本实验也测试监控安装Nagios服务端的这台服务器,所以需要配置localhost.cfg文件;


cp/usr/local/nagios/etc/objects/localhost.cfg/usr/local/nagios/etc/objects/localhost.cfg.bak


vim/usr/local/nagios/etc/objects/localhost.cfg


在文件尾新增如下内容:

defineservice{

uselocal-service;Nameofservicetemplatetouse

host_namelocalhost

service_descriptionMYSQL

check_commandcheck_mysql

notifications_enabled0

}


defineservice{

uselocal-service;Nameofservicetemplatetouse

host_namelocalhost

service_descriptionFTP

check_commandcheck_ftp

notifications_enabled0

}



2.5.3配置时间信息


cp/usr/local/nagios/etc/objects/timeperiods.cfg/usr/local/nagios/etc/objects/timeperiods.cfg.bak


vim/usr/local/nagios/etc/objects/timeperiods.cfg


根据需要配置,一般不需要更改,默认即可;



2.5.4配置服务信息


touch/usr/local/nagios/etc/objects/services.cfg


vim/usr/local/nagios/etc/objects/services.cfg


新增如下内容:

defineservice{

uselocal-service

host_namelocalhost

service_descriptioncheck-host-alive

check_commandcheck-host-alive

}



2.5.5配置命令信息


cp/usr/local/nagios/etc/objects/commands.cfg/usr/local/nagios/etc/objects/commands.cfg.bak


vim/usr/local/nagios/etc/objects/commands.cfg


新增如下内容:

#'check_mysql'commanddefinition

definecommand{

command_namecheck_mysql

command_line$USER1$/check_mysql-H$HOSTADDRESS$$ARG1$

}



2.5.6配置模板配置信息


nagios主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。这就是templates.cfg的作用。


更改

contact_groupsts



2.5.7配置CGI信息


想通过web监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等;需要配置,否则默认即可;


cp/usr/local/nagios/etc/cgi.cfg/usr/local/nagios/etc/cgi.cfg.bak


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


更改

default_user_name=david

authorized_for_system_information=nagiosadmin,david

authorized_for_configuration_information=nagiosadmin,david

authorized_for_system_commands=david

authorized_for_all_services=nagiosadmin,david

authorized_for_all_hosts=nagiosadmin,david

authorized_for_all_service_commands=nagiosadmin,david

authorized_for_all_host_commands=nagiosadmin,david



2.5.8配置Nagios主配置文件信息


cp/usr/local/nagios/etc/nagios.cfg/usr/local/nagios/etc/nagios.cfg.bak


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


新增如下内容:

cfg_file=/usr/local/nagios/etc/objects/services.cfg


保存退出即可;


2.5.9验证Nagios配置文件的正确性


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


如果最后显示出来如下信息,即表是没问题:


TotalWarnings:0

TotalErrors:0


---------------------------------------

2.6安装NRPE

cd

wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tarzxvfnrpe-2.13.tar.gz
cdnrpe-2.13
./configure

makeall

makeinstall-plugin

-------------------------

#/usr/local/nagios/libexec/check_nrpe-H192.168.1.235//测试一下监控机使用check_nrpe与被监控机运行的nrpedaemon之间的通信;

-------------------------

vim//usr/local/nagios/etc/objects/commands.cfg

新增如下内容:

#'check_nrpe'commanddefinition
definecommand{
command_namecheck_nrpe#定义命令名称为check_nrpe,在services.cfg中要使用这个名称.
command_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$#这是定义实际运行的插件程序.
#这个命令行的书写要完全按照check_nrpe这个命令的用法,不知道用法的就用check_nrpe–h查看.
}

2.7重启各相关的服务


servicehttpdrestart

servicenagiosrestart

servicepostfixrestart

三、客户端(被监控机)安装配置(Linux)

基础支持套件:gccglibcglibc-commongdgd-develxinetdopenssl-devel

3.1新建用户

useraddnagios

3.2安装Nagios插件

cd

wgethttps://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz

or

wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

tarxzvfnagios-plugins-1.5.tar.gz

cdnagios-plugins-1.5

./configure--prefix=/usr/local/nagios

make&&makeinstall

chownnagios.nagios/usr/local/nagios
chown-Rnagios.nagios/usr/local/nagios/libexec

3.3安装NRPE

cd

wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tarzxvfnrpe-2.13.tar.gz
cdnrpe-2.13
./configure

makeall

makeinstall-plugin

makeinstall-daemon

makeinstall-daemon-config

makeinstall-xinetd

vim/etc/xinetd.d/nrpe

在only_from后增加监控主机的IP地址;

vim/etc/services

增加NRPE服务:nrpe5666/tcp

servicexinetdrestart

netstat-an|grep5666//查看NRPE是否已经启动;

/usr/local/nagios/libexec/check_nrpe-Hlocalhost//测试NRPE是否工作正常;

注:为了后面工作的顺利进行,注意本地防火墙要打开5666能让外部的监控机访问。

3.4定义对Nagios-Linux主机的监控

下面就可以在services.cfg(服务器上的配置文件)中定义对Nagios-Linux主机的监控了:

defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCurrentLoad
check_commandcheck_nrpe!check_load
}

defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCheckDisk
check_commandcheck_nrpe!check_disk
}

defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionTotalProcesses
check_commandcheck_nrpe!check_total_procs
}

defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCurrentUsers
check_commandcheck_nrpe!check_users
}

defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCheckZombieProcs
check_commandcheck_nrpe!check_zombie_procs
}

---------------------------------------------------------

如果还需要监控其它服务的,请在上面的文件增加相应的服务项以及在被监控机上相应增加,如:

例:增加HTTP监控:

监控机:

vim/usr/local/nagios/etc/objects/services.cfg

新增如下内容:

defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionHTTP
check_commandcheck_nrpe!check_http
}

被监控机:

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

新增如下内容:

command[check_http]=/usr/local/nagios/libexec/check_http-I127.0.0.1

注:更改过配置的都要重启一下相应服务才能生效;


参考http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html