23rwd 发表于 2015-12-9 09:01:02

利用Nagios 监控Redis 应用

Nagios 监控Redis 应用配置:
   监控环境介绍:
1>被监控redis服务器:
      IP:192.168.254.102
      Hostname:server1
      Redis版本:REDIS 2.8.7
2>Nagios 监控服务器:
      IP:192.168.254.101
      Hostname:Nagios
一.下载 perl版本Redis 监控程序包
下载参考:
1> https://exchange.nagios.org/directory/Plugins/Databases/check_redis-2Epl/details
2> https://github.com/willixix/WL-NagiosPlugins
下载后将check_redis.pl文件拷贝到被监控服务器目录: /usr/local/nagios/libexec/
并给用户可执行的权限与用户组:
chown nagios.nagios check_redis.pl(如果监控默认执行就是Root用户与组,则不需要修改)
chmod 755 check_redis.pl   (修改文件可以执行权限)

二.被监控服务器安装perl redis环境依赖包
# yum install -y perl-CPAN perl-Time-HiRes perl-YAML
# perl -MCPAN -e shell
CPAN> installRedis
.....
CPAN> quit (退出)
一路回车确认即可.(大概需要20分钟,具体以个人网速决定)
安装完后,使用监控程序包进行连接测试能否获取到监控数据:
/usr/local/nagios/libexec/check_redis.pl-H 127.0.0.1 -p 6379 -x "passwd" -a
OK: REDIS 2.8.7 on 127.0.0.1:6379 has 1 databases (db0) with 18 keys, up 3 days 23 hours
返回以上结果,说明依赖包安装成功;否则请重新执行一次安装: installRedis 安装.
相关参数说明:
H: 主机名(IP)-p :redis 端口-x: redis 访问密码(如果没有,可以省略)-a: 后面可能添加一些具体的监控参数.
/usr/local/nagios/libexec/check_redis.pl-H 127.0.0.1 -p 6379 -x "redis_passwd" -a 'connected_clients,blocked_clients' -w ~,~ -c ~,~ -m -M 4G -A -R -T
OK: REDIS 2.8.7 on 127.0.0.1:6379 has 1 databases (db0) with 14 keys, up 4 days 18 hours - response in 0.003s, hitrate is 100.00%,
查看更多命令帮助:
/usr/local/nagios/libexec/check_redis.pl --help
Redis Check for Nagios version 0.73
by William Leibzon - william(at)leibzon.org
This is redis monitoring plugin to check its stats variables, replication, response time
hitrate, memory utilization and other info. The plugin can also query and test key data
against specified thresholds. All data is available as performance output for graphing.
...................
三.客户机的配置(被监控服务器)
   #vi /usr/local/nagios/etc/nrpe.cfg
增加以下配置:
command=/usr/local/nagios/libexec/check_redis.pl-H 127.0.0.1 -p 6379 -x "passwd" -a
如服务器运行2个redis 实例:
redis实例2 增加以下配置:
command=/usr/local/nagios/libexec/check_redis.pl-H 127.0.0.1 -p 6380 -a
如果还要对其它指标进行监控,可按照 redis实例2的方法进行增加即可:
监控内存:
command=/usr/local/nagios/libexec/check_redis.pl-H 127.0.0.1 -p 6380 -a 'used_memory_human,used_memory_peak_human'!~,~!~,~
监控基本信息:
command=/usr/local/nagios/libexec/check_redis.pl-H 127.0.0.1 -p 6380 -a 'connected_clients,blocked_clients,client_longest_output_list,client_biggest_input_buf'!100,5,~,~!500,10,~,~
监控CPU:
command=/usr/local/nagios/libexec/check_redis.pl-H 127.0.0.1 -p 6380 -a 'used_cpu_sys,used_cpu_user,used_cpu_sys_children,used_cpu_user_children'!15,20,~,~!25,30,~,~ ;
配置完成后,重启被监控服务器监控程序:
关闭: /etc/init.d/nrpe stop
重启: /etc/init.d/nrpe start

四.Nagios 服务器端配置
1> 添加被监控主机:
#vi /usr/local/nagios/etc/objects/hosts.cfg
增加以下配置(如果该已经存在,则不要再添加)
define host{
      use                     generic-host
      host_name               DB4
      alias                   DB4
      address               192.168.254.102
      check_command         check-host-alive
      max_check_attempts      10
      check_period            24x7
      notification_interval   120
      notification_period   24x7
      notification_options    d,r
      contact_groups          admins
}
2>增加被监控机的应用服务
/usr/local/nagios/etc/objects]# vi services.cfg
增加以下配置:
define service{
      use                           generic-service
      service_description             Redis_Servers   
      hostgroup_name                  Redis_Servers ;监控用户组
      notifications_enabled         1
      check_period                  24x7
      max_check_attempts            2
      retry_check_interval            2
      contact_groups                  admins
      notification_interval         180
      notification_period             24x7
      notification_options            w,u,c
      check_command                   check_nrpe!check_redis    ;监控程序
      }
Redis实例2 增加以下配置:
define service{
      use                           generic-service
      service_description             redis_6380   
      hostgroup_name                  redis_6380 ;监控用户组
      notifications_enabled         1
      check_period                  24x7
      max_check_attempts            2
      retry_check_interval            2
      contact_groups                  admins
      notification_interval         180
      notification_period             24x7
      notification_options            w,u,c
      check_command                   check_nrpe!check_redis_6380    ;监控程序
      }
3>增加redis 被监控组:
#/usr/local/nagios/etc/objects]# vi hostgroups.cfg
增加以下配置:
define hostgroup {
      hostgroup_nameRedis_Servers
      alias         Redis_Servers
      members         server1,server2
}
redis实例2 增加以下配置:
define hostgroup {
      hostgroup_nameredis_6380
      alias         redis_6380
      members         server1
}
五.验证服务器端配置,并重启Nagios 应用.
   检查Nagios 监控服务器是否存在异常(如果配置有异常,重启将会失败)
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 3.3.1
Copyright (c) 2009-2011 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 07-25-2011
License: GPL
Website: http://www.nagios.org
Reading configuration data...
   Read main config file okay...
Processing object config file '/usr/local/nagios/etc/objects/templates.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/services.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/hosts.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/hostgroups.cfg'...
Checking misc settings...
Total Warnings: 0
Total Errors:   0
#:/usr/local/nagios/etc/objects]# /etc/init.d/nagios stop
Nagios stop successful.
#:/usr/local/nagios/etc/objects]# /etc/init.d/nagios start
Nagios started successful.
#:/usr/local/nagios/etc/objects]#
前端监控显示效果:


至此Redis 监控就配置完了.
值得注意的是Redis 依赖环境包安装.如果安装失败,则无法正常获取Redis监控数据.
页: [1]
查看完整版本: 利用Nagios 监控Redis 应用