CentOS下Nagios的安装与配置
Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。
Nagios可以识别4种状态返回信息,即 0(OK)表示状态正常/绿色、1(WARNING)表示出现警告/***、2(CRITICAL)表示出现非常严重的错误/红色、3(UNKNOWN)表示未知错误/深***。
一、环境
Host NameOSIPSoftware
Nagios-ServerCentOS release 6.3 (Final)192.168.1.108Apache、Php、Nagios、nagios-plugins
Nagios-LinuxCentOS release 5.8 (Final)192.168.1.111nagios-plugins、nrpe
Nagios-WindowsWindows XP192.168.1.113 NSClient++
防火墙已关闭/iptables: Firewall is not running.
SELINUX=disabled
二、Nagios服务端安装
基础支持套件:gcc glibc glibc-common gd gd-devel xinetd openssl-devel
2.1创建nagios用户和用户组
useradd -s /sbin/nologin nagios
mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios
2.2编译安装Nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz
tar zxvf nagios-3.4.3.tar.gz
cd nagios
./configure --prefix=/usr/local/nagios
make all
make install
make install-init
make install-commandmode
make install-config
cd
chkconfig --add nagios
chkconfig --level 35 nagios on
chkconfig --list nagios
2.3安装Nagios 插件
wget https://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
tar xzvf nagios-plugins-1.5.tar.gz
cd nagios-plugins-1.5
./configure --prefix=/usr/local/nagios
make && make install
2.4安装配置Apache、PHP
yum -y install httpd php //如果已经安装此步骤略过;
2.4.1配置apache主配置文件
vim /etc/httpd/conf/httpd.conf
找到
User apache
Group apache
更改为
User nagios
Group nagios
找到
DirectoryIndex index.html
更改为
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>
保存退出;
2.4.2创建apache目录验证文件及启动apache服务
htpasswd -c /usr/local/nagios/etc/htpasswd david
cat /usr/local/nagios/etc/htpasswd
service httpd restart
到这里 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_name david
email [email protected]
contactgroup_name ts
members david
2.5.2配置主机信息
touch /usr/local/nagios/etc/objects/hosts.cfg
vim /usr/local/nagios/etc/objects/hosts.cfg
新增如下内容:
define host{
use linux-server
host_name hostname01
alias hostname01
address 192.168.1.111
}
define host{
use linux-server
host_name hostname02
alias hostname02
address 192.168.1.112
}
define hostgroup{
hostgroup_name bsmart-servers
alias bsmart servers
members hostname01,hostname02
}
--------------------------------------
vim /etc/hosts
新增
ip地址 hostname //192.168.122.128 localhost
--------------------------------------
由于本实验也测试监控安装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
在文件尾新增如下内容:
define service{
use local-service ; Name of service template to use
host_name localhost
service_description MYSQL
check_command check_mysql
notifications_enabled 0
}
define service{
use local-service ; Name of service template to use
host_name localhost
service_description FTP
check_command check_ftp
notifications_enabled 0
}
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
新增如下内容:
define service{
use local-service
host_name localhost
service_description check-host-alive
check_command check-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' command definition
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ $ARG1$
}
2.5.6配置模板配置信息
nagios主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。这就是templates.cfg的作用。
更改
contact_groups ts
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
如果最后显示出来如下信息,即表是没问题:
Total Warnings: 0
Total Errors: 0
---------------------------------------
2.6安装NRPE
cd
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tar zxvf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all
make install-plugin
-------------------------
#/usr/local/nagios/libexec/check_nrpe -H 192.168.1.235 //测试一下监控机使用check_nrpe 与被监控机运行的nrpe daemon之间的通信;
-------------------------
vim //usr/local/nagios/etc/objects/commands.cfg
新增如下内容:
# 'check_nrpe' command definition
define command{
command_name check_nrpe # 定义命令名称为check_nrpe,在services.cfg中要使用这个名称.
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ #这是定义实际运行的插件程序.
# 这个命令行的书写要完全按照check_nrpe这个命令的用法,不知道用法的就用check_nrpe �Ch查看.
}
2.7重启各相关的服务
service httpd restart
service nagios restart
service postfix restart
三、客户端(被监控机)安装配置(Linux)
基础支持套件:gcc glibc glibc-common gd gd-devel xinetd openssl-devel
3.1新建用户
useradd nagios
3.2安装Nagios插件
cd
wget https://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
tar xzvf nagios-plugins-1.5.tar.gz
cd nagios-plugins-1.5
./configure --prefix=/usr/local/nagios
make && make install
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec
3.3安装NRPE
cd
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tar zxvf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
vim /etc/xinetd.d/nrpe
在only_from 后增加监控主机的IP地址;
vim /etc/services
增加NRPE服务:nrpe 5666/tcp
service xinetd restart
netstat -an | grep 5666 //查看NRPE 是否已经启动;
/usr/local/nagios/libexec/check_nrpe -H localhost //测试NRPE 是否工作正常;
注:为了后面工作的顺利进行,注意本地防火墙要打开5666能让外部的监控机访问。
3.4定义对Nagios-Linux 主机的监控
下面就可以在services.cfg(服务器上的配置文件)中定义对Nagios-Linux 主机的监控了:
define service{
use local-service
host_name Nagios-Linux
service_description Current Load
check_command check_nrpe!check_load
}
define service{
use local-service
host_name Nagios-Linux
service_description Check Disk
check_command check_nrpe!check_disk
}
define service{
use local-service
host_name Nagios-Linux
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use local-service
host_name Nagios-Linux
service_description Current Users
check_command check_nrpe!check_users
}
define service{
use local-service
host_name Nagios-Linux
service_description Check Zombie Procs
check_command check_nrpe!check_zombie_procs
}
---------------------------------------------------------
如果还需要监控其它服务的,请在上面的文件增加相应的服务项以及在被监控机上相应增加,如:
例:增加HTTP监控:
监控机:
vim /usr/local/nagios/etc/objects/services.cfg
新增如下内容:
define service{
use local-service
host_name Nagios-Linux
service_description HTTP
check_command check_nrpe!check_http
}
被监控机:
vim /usr/local/nagios/etc/nrpe.cfg
新增如下内容:
command[check_http]=/usr/local/nagios/libexec/check_http -I 127.0.0.1
注:更改过配置的都要重启一下相应服务才能生效;
参考 http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html