########################################Server########################################
# ls /usr/loca/nagios
cgi.cfg -->cgi配置文件cfg_file=/usr/local/nagios/etc/objects/services.cfg
# cat /usr/local/nagios/etc/objects/hosts.cfg //加入监控主机
define host {
host_name client1
address 192.168.1.18
alias client1
use linux-server
}
commands.cfg //加入nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
commands.cfg //如果需要加入加快MySQL服务的状态需要自定义命令
---------------------------------------------------------------------------------------
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -P 3306 -u nagios -d nagios -p 123
}
---------------------------------------------------------------------------------------
########################################Server########################################
Client:
需要在MySQL被监控主机赋权:如下
check_mysql -->加入Nagios的MySQL检测
mysql> create database nagios;
Query OK, 1 row affected (0.02 sec)
mysql> grant select on nagios.* to nagios@'%' identified by '123';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
########################################Server########################################
services.cfg //一些监控服务的示例
---------------------------------------------------------------------------------------
define service{
use local-service
host_name client1
service_description check_user
check_command check_nrpe!check_users
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_load
check_command check_nrpe!check_load
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_total_procs
check_command check_nrpe!check_total_procs
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_/
check_command check_nrpe!check_/
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_swap
check_command check_nrpe!check_swap
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_zombie_procs
check_command check_nrpe!check_zombie_procs
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_http
check_command check_http
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_ssh
check_command check_ssh
notifications_enabled 1
}
define service{
use local-service
host_name client1
service_description check_mysql
check_command check_mysql
notifications_enabled 1
}
---------------------------------------------------------------------------------------
########################################Server########################################
Client:
以上服务示例不是所有的命令都有的,有些需要在客户机的nrpe上配置
# grep '^command\[' /usr/local/nagios/etc/nrpe.cfg
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_/]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command[check_swap]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda3
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
//不同机器的分区可能不同,所以这里我修改了/和swap的分区的一个监控,系统资源的监控都是通过nrpe去实现的,类似ssh、mysql等服务则无需依靠nrpe
以上是nagios监控基础服务和系统资源的一个配置备忘,之后还会有nagios的timeperiods.cfg、contacts.cfg以及监控主机组和服务组的一个配置
附上一个监控图