这几天开始接触nagios,记录下学习的心得
监控机上需要安装nagios,nagios-plugins, nrpe
被监控机上需要安装nagios-plugins, nrpe
nagios通过插件nrpe来监控
添加主机当然是要到server端(监控中心)修改配置文件了。
修改主配置文件
cd /usr/local/nagios/etc/
vim nagios.cfg
增加内容:
cfg_dir=/usr/local/nagios/etc/services ##定义一个目录,以后把新增加的主机信息文件全部放到这里
添加被监控主机信息
mkdir /usr/local/nagios/etc/services
cd /usr/local/nagios/etc/services
vim 被监控机IP.cfg 如10.0.0.2.cfg加入如下内容:
define host{ use linux-server host_name 10.0.4.56 alias 10.0.4.56 address 10.0.4.56 } define service{ use generic-service host_name 10.0.4.56 service_description check_ping check_command check_ping!100.0,20%!200.0,50% max_check_attempts 5 normal_check_interval 1 } define service{ use generic-service host_name 10.0.4.56 service_description check_ssh check_command check_ssh max_check_attempts 5 normal_check_interval 1 } define service{ use generic-service host_name 10.0.4.56 service_description check_http check_command check_http max_check_attempts 5 normal_check_interval 1 }
// 注意,这里的IP是client端的IP,监控的项目有三个ping, ssh, http。其实这三个项目使用的脚本都为本地脚本,也就是说,即使远程主机没有安装nagios和nrpe同样可以监控这些项目。但是如果想监控load,disk,等等就需要通过nrpe服务来搞定了,道理很简单,load和disk都需要登录到远程主机上去获得信息,而ping,ssh,http都不需要的。这个到远程主机获取相关的信息的过程是由nrpe完成的。如果你的client上没有启动nrpe服务那么我们是无法获取远程主机的load和disk等信息的。
需要在监控机上编辑/usr/local/nagios/etc/objects/commands.cfg
vim /usr/local/nagios/etc/objects/commands.cfg # 在最后面添加如下内容
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
然后编辑10.0.4.56.cfg (还是server上)
cd /usr/local/nagios/etc/services
vim 10.0.4.56.cfg # 加入如下内容:
define service{ use generic-service host_name 10.0.4.56 service_description check_load check_command check_nrpe!check_load max_check_attempts 5 normal_check_interval 1 } define service{ use generic-service host_name 10.0.4.56 service_description check_disk_hda1 check_command check_nrpe!check_hda1 max_check_attempts 5 normal_check_interval 1 } define service{ use generic-service host_name 10.0.4.56 service_description check_disk_hda2 check_command check_nrpe!check_hda2 max_check_attempts 5 normal_check_interval 1 }
所有的监控命令都是通过check_nrpe+命令来实现的
在远程主机上编辑/usr/local/nagios/etc/nrpe.cfg 文件
vim /usr/local/nagios/etc/nrpe.cfg (client上)
把” command[check_hda1]”那行改成:
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
然后再增加一行:
command[check_hda2]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda2
这里的check_hda1 和 check_hda2 都是自定义的,和server端的定义的service中的check_command对应。也就是说,如果在server端定义了一个service(通过nrpe方式)那么必须要在客户端上的nrpe.cfg中定义相应的脚本。保存这个文件后,需要重新启动一下nrpe服务。
killall nrpe ; /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d (client上)
重启nagios服务
修改了配置需要重启服务才能使添加的监控主机生效。
/etc/init.d/nagios restart (监控机上)
此时再到web页面去观察是否多了一台10.0.4.56