zhmg23

我们是如此的不同
资深运维工程师互荐群: 102123162

利用nagios插件监控Redis

一、下载插件并安装

1、说明: 我使用的nagios是cnyunwei集成的版本,可能设置方法,与其他人的略微不一样,但如果你知道Nagios原理,其实大同小异。网上很多人太喜欢抄了,不经验证的乱抄!!

被监控主机:10.0.0.217      (redis服务器,需要安装nagios插件,之前写过,可以参考这里:http://mnt.conf.blog.163.com/blog/static/1156682582013113014031159/

监控服务端:10.0.0.120       (nagios服务端)


2、插件下载地址:

https://exchange.nagios.org/directory/Plugins/Databases/check_redis-2Epl/details

将check_redis.pl文件放到/usr/local/nagios/libexec/ 目录下(被监控机器)


3、安装perl、 redis环境

# yum install -y perl-CPAN perl-Time-HiRes perl-YAML

# perl -MCPAN -e shell

CPAN> install Redis

一直[yes],这里时间会比较久,估计可能要三四个小时,如果网络好,可能快些


4、修改插件check_redis.pl

# chmod 755 check_redis.pl

# chown nagios:nagios check_redis.pl


修改check_redis.pl里的HOSTNAME、PORT、PASSWORD、


5、测试插件

# /usr/local/nagios/libexec/check_redis.pl -H 10.0.0.217 -p 6379

OK: REDIS 2.8 on 10.0.0.217:6379 has 1 databases (db0) with 4380583 keys, up 11 days 5 hours


测试连接到redis的时间

# /usr/local/nagios/libexec/check_redis.pl -H 10.0.0.217 -p 6379 -T 0.5,1

OK: REDIS 2.8 on 10.0.0.217:6379 has 1 databases (db0) with 4380618 keys, up 11 days 5 hours - response in 0.003s


测试CPU

# /usr/local/nagios/libexec/check_redis.pl -H 10.0.0.217 -p 6379 -a 'used_cpu_sys,used_cpu_user,used_cpu_user_children,used_cpu_sys_children' -w ~,~,~,~ -c ~,~,~,~

OK: REDIS 2.8 on 10.0.0.217:6379 has 1 databases (db0) with 4380677 keys, up 11 days 5 hours - used_cpu_sys is 5631.36, used_cpu_user is 5870.41, used_cpu_user_children is 35543.79, used_cpu_sys_children is 4212.97


测试内存

# /usr/local/nagios/libexec/check_redis.pl -H 10.0.0.217 -p 6379 -a 'used_memory_human,used_memory_peak_human' -w ~,~ -c ~,~

OK: REDIS 2.8 on 10.0.0.217:6379 has 1 databases (db0) with 4380725 keys, up 11 days 5 hours - used_memory_human is 854.24M, used_memory_peak_human is 862.02M


测试连接数

# /usr/local/nagios/libexec/check_redis.pl -H 10.0.0.217 -p 6379 -a 'connected_clients,blocked_clients' -w ~,~ -c ~,~ -f

OK: REDIS 2.8 on 10.0.0.217:6379 has 1 databases (db0) with 4380759 keys, up 11 days 5 hours - connected_clients is 157, blocked_clients is 0 | blocked_clients=0 connected_clients=157


注:在使用CPAN安装相关模块时,时间比较长,如果网络不好,安装3个小时,都正常,在安装过程中,遇到了2个问题

 1)./check_redis.pl line 421

   # perl -MCPAN -e shell

   cpan[1]> install YAML 

   

   cpan[2]>install Redis

   这是因为我第一天安装时,没有完全安装完成,时间太长,所以导致模块没有安装成功,今天在次安装,成功了!

   

   2) not allowed while "strict subs" in use at /usr/local/nagios/libexec/check_redis.pl line 426.

   这里因为在check_redis.pl的426行,设置redis设置时,没有用单引号导致报错,加上单引号,测试正常了,另外就是别忘记修改check_redis.pl里的相关主机地址、端口、redis密码等

my $HOSTNAME= '10.0.0.217';

my $PORT=     6379;

my $PASSWORD= 'Redispasswd';

my $DATABASE= undef;



二、设置nagios服务端

1、被监控机器上设置nrpe.cfg

# vi /usr/local/nagios/etc/nrpe.cfg  

command[check_redis]=/usr/local/nagios/libexec/check_redis.pl -H 10.0.0.217 -p 6379 -a 'connected_clients,blocked_clients' -w ~,~ -c ~,~ -f


2、服务端配置主机

在/usr/local/nagios/etc/Default_collector的目录下,我是每个主机单独建立的监控模板,10.0.0.217主机的模板名称是redis_217.cfg


# vim redis_217.cfg

define service{

                host_name 10.0.0.217

                service_description                   Check Redis

                check_command                         check_nrpe!check_redis

                check_period                          24x7

                notification_period                   24x7

                use                                   generic-service,srv-pnp

                contact_groups                        +admins

}


define service{

                host_name 10.0.0.217

                service_description                 Check_Redis_Mem

                check_command                     check_nrpe!check_redis_mem

                check_period                          24x7

                notification_period                   24x7

                use                                          generic-service,srv-pnp

                contact_groups                        +admins

}

                          

检查配置问题可有问题

# /usr/local/nagios/bin/nagios -v  /usr/local/nagios/etc/nagios.cfg


如果没有问题,重启nagios

# /etc/init.d/nagios  restart


注意: 我这里设置监控redis的连接数及内存占用情况,但使用一个check_redis.pl不行,得到的结果相同,所以我又复制了一份check_redis.pl,改为为check_redis_mem.pl,上面背景颜色为黄色的,就是插件名称。


三、设置nagios被监控主机

1、修改nrpe.cfg

vi /usr/local/nagios/etc/nrpe.cfg   添加如下两行

command[check_redis]=/usr/local/nagios/libexec/check_redis.pl -H 172.16.74.217 -p 6379 -a 'connected_clients,blocked_clients' -w ~,~ -c ~,~ -f

command[check_redis_mem]=/usr/local/nagios/libexec/check_redis_mem.pl -H  172.16.74.217 -p 6379 -a 'used_memory_human,used_memory_peak_human' -w ~,~ -c ~,~


2 、找出nrpe的pid,并结束进程

#  netstat -ntpl |grep nrpe |awk '{print $7}'

28855/nrpe

# kill -9 28855


3、启动NRPE

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d


四、查看nagios管理系统

1、登陆管事系统地址:http://10.0.0.120/nagios/


2、监控如下图,可见连接数、内存都很清晰

利用nagios插件监控Redis - zhm - 合肥运维

 

至此,利用nagios插件check_redis.pl监控Redis配置完成。

评论

热度(1)