IP | hostname | 备注 |
---|---|---|
192.168.174.128 | localhost | 关闭防火墙、nagios服务端 |
192.168.174.129 | node1 | 关闭防火墙、nagios客户端 |
创建cfg文件部署客户端下的监控,参考localhost.cfg,创建一个跟本地监控项一模一样的远程监控文件;
添加监控脚本,设计一个能监控nginx端口的脚本;并添加到远程监控项目中;
添加监控脚本,设计一个能监控mysql端口的脚本;并添加到远程监控项目中;
添加监控脚本,设计一个能监控apache端口的脚本;并添加到远程监控项目中;
在服务端配置文件
[root@localhost ~]# vi /usr/local/nagios/etc/nagios.cfg //编辑配置文件
cfg_file=/usr/local/nagios/etc/objects/services.cfg //添加以下
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg 两行
[root@localhost objects]# cd /usr/local/nagios/etc/objects //进入object目录
编辑hosts.cfg
[root@localhost objects]# cp localhost.cfg hosts.cfg //复制配置文件
[root@localhost objects]# vi hosts.cfg //编辑配置文件
define hostgroup { //将hostgroup删除
...
}
address 192.168.174.129 //将address后面的改为客户端ip
host_name node1 //host_name和alias
alias node1 后面的改为客户端主机名
[root@localhost objects]#touch services.cfg
[root@localhost objects]#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg //测试配置文件是否有误
[root@localhost objects]# systemctl restart nagios //重启nagios
访问web端->点击services,添加
客户端
创建监控脚本
[root@node1 ~]# cd /usr/local/nagios/libexec/ //进入libexec
[root@node1 libexec]# vi check_access //创建监控服务端口的脚本
CRITICAL=2
ok=1
name=$1
b=`netstat -ntpl |grep $name|wc -l`
if [ $b == 0 ];then
echo "$name service is error"
exit $CRITICAL
else
echo "$name:$b"
exit $ok
fi
//name为监控的服务名称
[root@node1 libexec]# chmod +x check_access
配置nrpe.cfg
[root@node1 libexec]# vi /usr/local/nagios/etc/nrpe.cfg //编辑nrpe.cfg
//在最末尾加入
command[check_nginx]=/usr/local/nagios/libexec/check_access nginx -c 2
command[check_mysql]=/usr/local/nagios/libexec/check_access mysql -c 2
command[check_httpd]=/usr/local/nagios/libexec/check_access httpd -c 2
重启nrpe
[root@node1 libexec]# pkill nrpe 杀掉nrpe进程
[root@node1 libexec]# /usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg /启动nrpe
在服务端进行测试
[root@localhost objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.174.129 -c check_nginx
nginx service is error
[root@localhost objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.174.129 -c check_mysql
mysql service is error
[root@localhost objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.174.129 -c check_httpd
httpd service is error
服务端
编辑services.cfg
[root@localhost objects]# vi commands.cfg //首先编辑监控命令
define command{
command_name check_nrpe //命令名称
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
} //在最末尾添加
[root@localhost objects]# vi services.cfg //编辑services.cfg
define service{
use generic-service
host_name node1
service_description nginx
check_command check_nrpe!check_nginx
}
define service{
use generic-service
host_name node1
service_description mysql
check_command check_nrpe!check_mysql
}
define service{
use generic-service
host_name node1
service_description httpd
check_command check_nrpe!check_httpd
}
//注意use、host_name后面的参数都要和hosts.cfg里的一样
service_description是web端的服务名
check_command!前面的是上面commands中定义的命令,后面为客户端nrpe.cfg
中定义的命令
[root@localhost objects]#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg //测试配置文件是否有误
[root@localhost objects]# systemctl restart nagios //重启
查看web端,增加了三条监控项