下载地址为:http://download.csdn.net/detail/hellopengyl/9617697,有2个版本,一个是perl脚本写成的,一个是php脚本写成的,可以任意选择一个,里面另外两个是监控mysql的这里选择的是perl脚本。
[[email protected] libexec]# chmod +x check_redis.p* [[email protected] 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 [[email protected] 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. [[email protected] 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. [[email protected] libexec]# yum -y install mod_perl2 [[email protected] 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. [[email protected] 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 [[email protected] libexec]#
在nagios通过命令检测
check_redis_CPU
[[email protected] 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 [[email protected] libexec]#
~未定义监控报警阀值
check_redis_Memory
[[email protected] 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 [[email protected] libexec]#
check_redis_Clients
[[email protected] 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 [[email protected] libexec]#
通过nagiosql对check_redis命令定义,添加服务,注意定义check_redis命令时候命令类型为检测命令,不是各种命令
时间: 2024-10-06 16:08:29