#################################################

Nagios自动监控系统

安装Nagios及插件
(a)安装依赖包
#yum -y install gcc gcc-c++
(b)创建nagios软件登录用户
#useradd nagios
#groupadd nagcmd
#gpasswd -a nagios nagcmd  /把用户nagios添加到nagcmd组中
#id nagios
(c)安装Nagios
#tar zxf negios-4.2.4.tar.gz
#cd negios-4.2.4
#./configure --with-nagios-user=nagios \
>--with-nagios-group=nagcmd \
>--with-command-user=nagios \
>--with-command-group=nagcmd
#make all  /编译
#make install /安装程序
#make install-init /安装控制脚本
#make install-config /安装配置  文件目录下多个$USER1$/etc
#make install-commandmode /调权限
#make install-webconf /部署网站配置
#make install-exfoliation  /nagios 新界面

软件目录为
/usr/local/nagios
bin   /程序命令
sbin    /cgi脚本
etc /配置文件
share  /网页目录
libexec  /监控插件
var /运行数据

安装nagios插件
#tar xfz nagios-plugins-2.1.4.tar.gz 
#cd nagios-plugins-2.1.4/
#./configure && make && make install

启动nagios监控服务
/etc/rc.d/init.d/nagios start

设置访问控制页面的用户名
/etc/httpd/conf.d/nagios.conf
#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin   用户名只能是nagiosadmin,想要修改为别的用户,需修改别的配置文件
password:123456

#firefox 192.168.4.17/nagios
用户名:nagisadmin
密码:123456

监控到的数据     <    警告值        显示    ok  
监控到的数据     >    警告值    <    错误值    显示  WARNING
监控到的数据     >    错误值        显示    critical

/usr/local/nagios/libexec
网站服务运行状态 ./check_http -H192.168.4.254 -p 80
PING    ./check_ping -H192.168.4.254 -c 10,50% -w 20,80% -p 3 /ping 3个包 10ms内丢包率为50 报警,20ms内丢包率70 报错
根分区 ./check_disk -w 80% -c 50% -p /    /根分区剩余空间小于80% 报警 小于50% 报错

监控状态分为: 

正常 警告 不知道 严重错误 监控中
OK WARNING UNKNOWN critical pending

cd /usr/local/nagios/etc
nagios.cfg     /主配置文件
resource.cfg   /宏定义文件
commands.cfg   /监控命令配置
localhost.cfg  /监控本机对象配置
contacts.cfg   /报警收件邮箱设置
timeperiods.cfg /监控时间模版
templates.cfg   /监控方式模版

Nagios监控配置实现过程
1)定义监控命令
commands.cfg

define  command {
    command_name  命令名
    command_line     路径/插件名  参数
}
2)定义监控对象
localhost.cfg
define service{
    use             local-service
    host_name           localhost
    service_description 监控名
    check_command       命令名
        }

监控远端主机

(a)监控公有数据(服务)

1)定义监控命令
command.cfg
define command{
    command_name check_web_http
    command_line $USER1$/check_tcp -H 192.168.4.19 -p 80
    }   /监控20主机的http服务的命令
2)定义监控对象
[monitor21]
vim /usr/local/nagios/etc/object/host19.cfg
define host{
    use     linux-server            模版名 位于templates.cfg
    host_name   host19              主机名 自定义
    address 192.168.4.19
    }
define service{
    use             local-service      模版名 位于templates.cfg
    host_name           host19      监控哪个主机,必须为哪个主机的主机名
    service-description HTTP            服务描述,自定义
    check_command       check_web_http  命令名,与定义命令模版的 command_name相同
    }    
/etc/rc.d/init.d/nagios start   /启动服务
firefox 192.168.4.21/nagios

(b)监控私有数据(系统运行情况)

监控远端主机的私有数据不能简单的在监控服务器上使用监控插件命令,需要通过配置被监控主机来实现。

[host19] 被监控主机
1)安装nagios-plugins 插件
#yum -y install gcc gcc-c++
#tar xfz nagios-plugins-2.1.4.tar.gz 
#cd nagios-plugins-2.1.4.tar.gz
#./configure && make && make install
2)安装nrpe 服务
#useradd nagios
#yum -y install openssl openssl-devel   安装依赖的加密包
#tar zxf nrpe-3.0.1.tar.gz
#cd nrpe-3.0.1.tar.gz
#./configure
#make all               编译
#make install           安装
#make install-config        安装nrpe配置文件
#make install-plugin        安装check_nrpe 插件
#make install-init      安装systemctl启动

此时查看 ls /usr/local/nagios/libexec/check_nrpe

修改nrpe配置文件 /usr/local/nagios/etc/nrpe.cfg
#sed -i '98s/127.0.0.1/127.0.0.1, 192.168.4.21' /usr/local/nagios/etc/nrpe.cfg
允许本机和192.168.4.21地址主机访问
#sed -n '288,295p' /usr/local/nagios/etc/nrpe.cfg
查看配置文件中定义的监控命令
command[nrpe_check_users]=/usr/local/nagios/libexec/check_users -w 1 -c 2
command[nrpe_check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[nrpe_check_root]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
command[nrpe_check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[nrpe_check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

systemctl start nrpe

cd /usr/local/nagios/libexec/
./check_nrpe -H 127.0.0.1 -c nrpe_check_users      监控本机当前用户
ok

[monitor21]
配置监控端
安装nrpe
#yum -y install openssl openssl-devel
#tar zxf nrpe-3.0.1.tar.gz
#cd nrpe-3.0.1.tar.gz
#./configure
#make all
#make install
#make install-plugin    /监控端添加nrpe 插件

1)定义监控命令
commands.cfg
define command{
    command_name    check_host19_users
    command_line    $USER1$/check_nrpe -H 192.168.4.19 -p 5666 -c nrpe_check_users
    }
2)定义监控对象
host19.cfg
define service{
    use             linux-server
    host_name           host19
    service-description USERS
    check_command       check_host19_users
                        }

/etc/rc.d/init.d/nagios start
firefox http://192.168.4.21/nagios