线上是用Nagios监控的,版本是最新版4.0.8
在nagios服务器上面下载redis插件
下载地址页面
https://exchange.nagios.org/directory/Plugins/Databases/check_redis-2Epl/details
下载check_redis.pl文件
安装perl redis环境
[root@localhost ~]# yum install -y perl-CPAN perl-Time-HiRes perl-YAML
[root@localhost ~]# perl -MCPAN -e shell
CPAN> install Redis
之后遇到[yes]的位置,一路回车,需要安装很多组件。
我花了2~3个小时,不停的回车,终于安装好了。
将check_redis.pl文件放到/usr/local/nagios/libexec/ 目录下
设置权限
[root@localhost ~]#chmod 755 check_redis.pl
[root@localhost ~]#chown nagios:nagios check_redis.pl
测试插件
[root@localhost ~]#cd /usr/local/nagios/libexec/
[root@localhost ~]#./check_redis.pl -H 10.168.13.230 -p 6379
OK: REDIS 2.8.19 on 10.168.13.230:6380 has 1 databases (db0) with 16 keys, up 98 days 7 hours
测试连接到redis的时间
./check_redis.pl -H 10.168.13.230 -p 6379 -T 0.5,1
测试CPU
./check_redis.pl -H 10.168.13.230 -p 6379 -a 'used_cpu_sys,used_cpu_user,used_cpu_user_children,used_cpu_sys_children' -w ~,~,~,~ -c ~,~,~,~
测试内存
./check_redis.pl -H 10.168.13.230 -p 6379 -a 'used_memory_human,used_memory_peak_human' -w ~,~ -c ~,~
测试连接数
./check_redis.pl -H 10.168.13.230 -p 6379 -a 'connected_clients,blocked_clients,client_longest_output_list,client_biggest_input_buf' -w 100,5,~,~ -c 500,10,~,~
开始正式用Nagios监控
编辑文件
vi /usr/local/nagios/etc/objects/commands.cfg
最后一行添加以下内容
# check redis
define command {
command_name check_redis
command_line $USER1$/check_redis.pl -H $HOSTADDRESS$ -p $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -f
}
# check redis
define command {
command_name check_redis_conn_time
command_line $USER1$/check_redis.pl -H $HOSTADDRESS$ -p $ARG1$ -T $ARG2$
}
编辑主机文件
在最后添加以下内容
define service{
use generic-service
host_name redis_1
service_description redis_6379_CPU
check_command check_redis!6379!'used_cpu_sys,used_cpu_user,used_cpu_sys_children,used_cpu_user_children'!~,~,~,~!~,~,~,~
}
define service{
use generic-service
host_name redis_1
service_description redis_6379_Memory
check_command check_redis!6379!'used_memory_human,used_memory_peak_human'!~,~!~,~
}
define service{
use generic-service
host_name redis_1
service_description redis_6379_Memory
check_command
check_redis!6379!'connected_clients,blocked_clients,client_longest_output_list,client_biggest_input_buf'!100,5,~,~!500,10,~,~
}
define service{
use generic-service
host_name redis_1
service_description redis_6379_conn_number
check_command check_redis!6379!'connected_clients,blocked_clients,client_longest_output_list,client_biggest_input_buf'!100,5,~,~!500,10,~,~
}
define service{
use generic-service
host_name redis_1
service_description redis_6379_conn_time
check_command check_redis_conn_time!6379!0.5,1
}
重启Nagios
/etc/init.d/nagios restart