五、扩展监控
1.check_linux_status.pl
这个是一个比较好用的插件,可以监控内存、CPU使用率(check_load是负载,两者有区别,但都是可以反映CPU性能的插件)、磁盘I/O 但是直接执行执行不了,需要安装Sys::Statistics::Linux
1)通过cpan 安装Sys::Statistics::Linux(需要安装cpan)
yum install cpan
[root@localhost ~]# cpan
install Sys::Statistics::Linux
2)还可以下载安装Sys-Statistics-Linux-0.66.tar.gz
[root@localhost ~]# tar zxvf Sys-Statistics-Linux-0.66.tar.gz
[root@localhost ~]# cd Sys-Statistics-Linux-0.66
[root@localhost Sys-Statistics-Linux-0.66]# perl Makefile.PL
[root@localhost Sys-Statistics-Linux-0.66]# make
[root@localhost Sys-Statistics-Linux-0.66]# make test
[root@localhost Sys-Statistics-Linux-0.66]# make install
3)监控内存, 超过80%告警,90%紧急;50是swap的值,需要设定,可以打-h查看
客户端nrpe.cfg
command[check_mem]=/usr/local/nagios/libexec/check_linux_stats.pl -M -w 80,50 -c 90,50
服务端linuxserver1.cfg
define service{
use generic-service
host_name linuxserver1
service_description check-memory
check_command check_nrpe!check_mem
}
2.监控mysql服务,并实现自动重启-无密码登陆
限于篇幅,我说下实现过程,下面配置需要通过nagios服务端到mysql服务端无密码登陆,如何配置网上资料很多,服务重启直接远程过去重启,还可以在客户端定义个命令重启mysql,服务端引用,别在权限上栽跟头。
下面贴出nagios配置参考
command.cfg
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p $ARG3$
}
define command{
command_name mysql-restart
command_line /usr/bin/ssh nagios@$HOSTADDRESS$ "sudo /etc/rc.d/init.d/mysql restart"
}
linuxserver1.cfg
define service{
use generic-service
host_name linuxserver1
service_description mysql
check_command check_mysql!3306!axon!action
event_handler_enabled 1
event_handler mysql-restart
}
3.监控mysql坏表,并自动修复
监控mysql坏表是判断数据库中表引擎是否为空来实现,可能有些其它情况下坏表监控不到,这个需要完善,有什么好的建议网友也可提出来,一起提高···
4.监控mysql主从
监控主从的依据其实就是判断slave 状态,如果IO 和SQL不为yes,那就有问题了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
5.监控一个网站所有页面
这个就不建议用nagios 去监控了,但可以利用check_http 这个插件,对所有url进行轮询,然后将超时的提取出来通过邮件发送,可以做个定时任务。