下载地址为: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
a
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,如需转载请自行联系原作者