Nagios监控Redis

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

下载地址为:http://download.csdn.net/detail/hellopengyl/9617697,有2个版本,一个是perl脚本写成的,一个是php脚本写成的,可以任意选择一个,里面另外两个是监控mysql的这里选择的是perl脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[root@localhost libexec] # chmod +x check_redis.p*
[root@localhost libexec] # ll check_redis.p*
-rwxr-xr-x. 1 root root  15812 Oct 10  2014 check_redis.php
-rwxr-xr-x. 1 root root 141829 Oct 10  2014 check_redis.pl
[root@localhost libexec] # ./check_redis.pl --help
Can't  locate  Redis.pm  in  @INC (@INC contains:  /usr/local/lib64/perl5  /usr/local/share/perl5  /usr/lib64/perl5/vendor_perl  /usr/share/perl5/vendor_perl  /usr/lib64/perl5  /usr/share/perl5  .) at . /check_redis .pl line 421.
BEGIN failed--compilation aborted at . /check_redis .pl line 421.
[root@localhost libexec] # perl -MCPAN -e shell
cpan[1]>  install  Redis  
Running Build  test
  Make had some problems, won't  test
Running Build  install
  Make had some problems, won't  install
Could not  read  '/root/.cpan/build/Redis-1.976-Zhz6xI/META.yml' .Falling back to other methods to determine prerequisites……
cpan[2]>  install  YAML   #可能会安装失败,失败原因是网络连接,多执行几次就会成功。
Appending installation info to  /usr/lib64/perl5/perllocal .pod
   TINITA /YAML-1 .18. tar .gz
   /usr/bin/make  install   -- OK
   CPAN: YAML loaded ok (v1.18)
cpan[3]>  install  Redis
Running Build  test
   Make had some problems, won't  test
Running Build  install
   Make had some problems, won't  install
cpan[4]>  install  Build   #Build.PL故障,重新安装install Build,成功后,再执行install Redis
Running Build  install   
      make  test  had returned bad status, won't  install  without force
  .....
  cpan[5]>q                                          
Terminal does not support GetHistory.
Lockfile removed.
[root@localhost libexec] # yum -y install mod_perl2
[root@localhost libexec] # perl -MCPAN -e shell
cpan[1]>  install  Redis   #这个过程中会有很多的交互操作,直接回车即可
Installing  /usr/local/share/perl5/Redis/List .pm
Installing  /usr/local/share/man/man3/Redis .3pm
Installing  /usr/local/share/man/man3/Redis ::Hash.3pm
Installing  /usr/local/share/man/man3/Redis ::List.3pm
Installing  /usr/local/share/man/man3/Redis ::Sentinel.3pm
   DAMS /Redis-1 .991. tar .gz
   . /Build  install   -- OK
 
cpan[2]> q                                            
Terminal does not support GetHistory.
Lockfile removed.
[root@localhost libexec] # ./check_redis.pl --help
General and Server Connection Options:
-H, -- hostname =ADDRESS
    Hostname or IP Address to check
  -p, --port=INTEGER
    port number (default: 6379)
  -D, --database=NAME
    optional database name (usually a number), needed  for  --query but otherwise not needed
  -x, --password=STRING   #redis有密码需要指定密码,redis.conf中requirepass后面的就是密码
     Password  for  Redis authentication. Safer alternative is to put them  in  file  and use -C
  -C, --credentials=FILENAME   #可以将密码写在文件里,通过-C来读取从
     Credentials  file  to  read  for  Redis authentication
  -t, --timeout=NUMBER
    Allows to  set  timeout  for  execution of this plugin. This overrides nagios default.
  -w, --warn=STR[,STR[,STR[..]]]  
  -c, --crit=STR[,STR[,STR[..]]]
  ....
  Variables and Thresholds Set as List:
   -a, --variables=STRING[,STRING[,STRING...]]  #指定需要检测的项目,例如used_memory_human,connected_clients等,用单引号括起来,用分号隔开。
   -w, --warn=STR[,STR[,STR[..]]]
        > - warn  if  data is above this value (default  for  numeric values)
       < - warn  if  data is below this value (must be followed by number)
       = - warn  if  data is equal to this value (default  for  non-numeric values)
       ! - warn  if  data is not equal to this value
       ~ -  do  not check this data (must not be followed by number or  ':' )
       ^ -  for  numeric values this disables check that warning < critical
      Threshold values can also be specified as range  in  two forms:
       num1:num2  - warn  if  data is outside range i.e.  if  data<num1 or data>num2
       @num1:num2 - warn  if  data is  in  range i.e. data>=num1 && data<=num2
   -c, --crit=STR[,STR[,STR[..]]]
Performance Data Processing Options:   
     -f, --perfparse  
  [root@localhost libexec] #

在nagios通过命令检测

 check_redis_CPU

1
2
3
[root@localhost libexec] # /usr/local/nagios/libexec/check_redis.pl -H 10.10.55.31 -p 6379 -a used_cpu_sys,used_cpu_user,used_cpu_sys_children,used_cpu_user_children -w ~,~,~,~ -c ~,~,~,~ -f
OK: REDIS 2.8.17 on 10.10.55.31:6379 has 2 databases (db2,db0) with 125792 keys, up 616 days 20 hours - used_cpu_sys is 62256.73, used_cpu_user is 40052.36, used_cpu_sys_children is 81572.91, used_cpu_user_children is 405302.25 | used_cpu_sys_children=81572.91 used_cpu_sys=62256.73 used_cpu_user_children=405302.25 used_cpu_user=40052.36
[root@localhost libexec] #

 ~未定义监控报警阀值

check_redis_Memory

1
2
3
[root@localhost libexec] # /usr/local/nagios/libexec/check_redis.pl -H 10.10.55.31 -p 6379 -a used_memory_human,used_memory_peak_human -w ~,~ -c ~,~ -f
OK: REDIS 2.8.17 on 10.10.55.31:6379 has 2 databases (db2,db0) with 125907 keys, up 616 days 20 hours - used_memory_human is 763.85M, used_memory_peak_human is 907.74M | used_memory_human=763.85M used_memory_peak_human=907.74M
[root@localhost libexec] #

 check_redis_Clients

1
2
3
[root@localhost libexec] # /usr/local/nagios/libexec/check_redis.pl -H 10.10.55.31 -p 6379 -a connected_clients,blocked_clients,client_longest_output_list,client_biggest_input_buf -w 200,50,~,~ -c 600,150,~,~ -f
OK: REDIS 2.8.17 on 10.10.55.31:6379 has 2 databases (db2,db0) with 125839 keys, up 616 days 20 hours - connected_clients is 47, blocked_clients is 0, client_longest_output_list is 0, client_biggest_input_buf is 1769472 | blocked_clients=0;50;150 connected_clients=47;200;600 client_biggest_input_buf=1769472 client_longest_output_list=0
[root@localhost libexec] #

通过nagiosql对check_redis命令定义,添加服务,注意定义check_redis命令时候命令类型为检测命令,不是各种命令




本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1845178,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
缓存 监控 NoSQL
Redis 的监控指标
Redis 的监控指标
25 0
|
3月前
|
监控 NoSQL Redis
HeartBeat监控Redis状态
HeartBeat监控Redis状态
|
3月前
|
监控 NoSQL Redis
MetricBeat监控Redis
MetricBeat监控Redis
|
6月前
|
监控 NoSQL Redis
【Redis 系列】redis 学习六,redis 事务处理和监控事务
【Redis 系列】redis 学习六,redis 事务处理和监控事务
|
9月前
|
人工智能 监控 NoSQL
Redis监控利器---Redis State
Redis监控利器---Redis State
103 1
|
6月前
|
监控 NoSQL Redis
Redis监控数据分布工具Redis-audit 使用总结
Redis监控数据分布工具Redis-audit 使用总结
52 0
|
6月前
|
监控 NoSQL Redis
Redis监控方案
Redis监控方案
108 0
|
Web App开发 监控 NoSQL
|
Web App开发 监控 NoSQL
|
监控 NoSQL 数据库