说到Memcached服务,其实作为运维人员用的还是很多的:
1、在做LB的时候,为了保证同一台机器的请求的session信息防止丢失,我们用Memcached对session做分布式存储。
2、做mysql缓存的时候,我们常常吧mysql查询的结果缓存到Memcached中,这样能够较少php程序与mysql的交互,也能大大减轻数据库的压力。
从以上来看,Memcached其实也是蛮重要的,那么我们更有必要对其进行时刻的监控,接下来引入正题
Nagios监控Memcached服务是否正常运行、Memcached内存的使用比例、Memcached是否应答等等
Cacti监控Memcached,请参考之前博文
http://467754239.blog.51cto.com/4878013/1433409
一、通过php页面来监测
下载memcache.php网页,然后发布这个页面后,通过浏览器访问
下载地址:
http://livebookmark.net/memcachephp/memcachephp.zip
http://blogimg.chinaunix.net/blog/upfile2/081230231118.zip
1、修改memcache.php部分参数
2、浏览器访问
注释:或许是memcached没有任何数据吧!
可是朋友的博客是这样的
二、利用Memcached自身的命令来检查
[root@lnmp ~]# telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is ‘^]‘. stats STAT pid 63992 STAT uptime 6204 STAT time 1412164192 STAT version 1.4.17 STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 0.225965 STAT rusage_system 0.309952 STAT curr_connections 10 STAT total_connections 243 STAT connection_structures 12 STAT reserved_fds 20 STAT cmd_get 108 STAT cmd_set 43 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 68 STAT get_misses 40 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 7326 STAT bytes_written 125489 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT malloc_fails 0 STAT bytes 205 STAT curr_items 2 STAT total_items 43 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT evictions 0 STAT reclaimed 0 END
或者利用nagios的check_tcp来监测,如下
[root@NagiosServer libexec]# ./check_tcp -H 192.168.0.12 -p 11211 -t 5 -E -s ‘stats\r\nquit\r\n‘ -e ‘uptime‘ -M crit TCP OK - 0.001 second response time on 192.168.0.12 port 11211 [STAT pid 63992 STAT uptime 6295 STAT time 1412164283 STAT version 1.4.17 STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 0.225965 STAT rusage_system 0.317951 STAT curr_connections 11 STAT total_connections 249 STAT connection_structures 12 STAT reserved_fds 20 STAT cmd_get 108 STAT cmd_set 43 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 68 STAT get_misses 40 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 7374 STAT bytes_written 131873 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT malloc_fails 0 STAT bytes 205 STAT curr_items 2 STAT total_items 43 STAT expired_unfetched 0 STAT evicted_unfetched 0 S]|time=0.001293s;;;0.000000;5.000000
三、Nagios的check_memcached
下载地址:
http://www.filewatcher.com/m/Nagios-Plugins-Memcached-0.02.tar.gz.72-0.html
这个是perl写的脚本,所以在安装时需要支持perl环境,必先安装之
[root@NagiosServer ~]# yum -y install perl* [root@NagiosServer ~]# tar xf Nagios-Plugins-Memcached-0.02.tar.gz [root@NagiosServer Nagios-Plugins-Memcached-0.02]# cd Nagios-Plugins-Memcached-0.02 [root@NagiosServer ~]# perl Makefile.PL [root@NagiosServer ~]# make && make install
做适应的修改
#默认check_memcached的安装路径 [root@NagiosServer ~]# find / -name check_memcached /usr/local/bin/check_memcached #对其进行适应的修改 [root@NagiosServer ~]# cp /usr/local/bin/check_memcached /usr/local/nagios/libexec/
四、Nagios对Memcached进行监控配置
1、定义命令
[root@NagiosServer objects]# vim commands.cfg #定义Memcached的内存使用比例 define command { command_name check_memcached_11211 command_line $USER1$/check_memcached -H 192.168.0.12:11211 --size-warning 80 --size-critical 90 } #定义Memcached是否有应答 define command { command_name memcached_response_11211 command_line $USER1$/check_memcached -H 192.168.0.12 -w 300 -c 500 } #定义Memcached的命中率 define command { command_name check_memcached_hit command_line $USER1$/check_memcached -H 192.168.0.12 --hit-warning 10 --size-critical 5 }
2、定义服务和主机
define host{ use linux-server host_name Linux Server 02 alias My Linux 02 address 192.168.0.12 } #define hostgroup{ # hostgroup_name admins # alias Nagios Administrators # members Linux Server 02 # } define service{ use generic-service host_name Linux Server 02 service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use generic-service host_name Linux Server 02 service_description Root Partition check_command check_local_disk!20%!10%!/ } define service{ use generic-service host_name Linux Server 02 service_description Current Users check_command check_local_users!20!50 } define service{ use generic-service host_name Linux Server 02 service_description Total Processes check_command check_local_procs!250!400!RSZDT } define service{ use generic-service host_name Linux Server 02 service_description Current Load check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 } define service{ use generic-service host_name Linux Server 02 service_description Swap Usage check_command check_local_swap!20!10 } define service{ use generic-service host_name Linux Server 02 service_description SSH check_command check_ssh notifications_enabled 0 } define service{ use generic-service host_name Linux Server 02 service_description HTTP check_command check_http notifications_enabled 0 } define service{ use generic-service host_name Linux Server 02 service_description users check_command check_nrpe!check_users } define service{ use generic-service host_name Linux Server 02 service_description load check_command check_nrpe!check_load } define service{ use generic-service host_name Linux Server 02 service_description disk sda1 check_command check_nrpe!check_sda1 } define service{ use generic-service host_name Linux Server 02 service_description zombie_proces check_command check_nrpe!check_zombie_procs } define service{ use generic-service host_name Linux Server 02 service_description Total_proces check_command check_nrpe!check_total_procs } define service{ use generic-service host_name Linux Server 02 service_description Memcached Response 11211 check_command check_memcached_11211 } define service{ use generic-service host_name Linux Server 02 service_description Memcached memory check_command memcached_response_11211 } define service{ use generic-service host_name Linux Server 02 service_description Memcached Hit check_command check_memcached_hit }
3、启用定义的主机配置文件
[root@NagiosServer etc]# vim nagios.cfg cfg_file=/usr/local/nagios/etc/objects/hosts/linux02.cfg
4、重新启动nagios服务
[root@NagiosServer ~]# service nagios restart Running configuration check... Stopping nagios: done. Starting nagios: done.
五、查看页面监控结果
参考博文http://storysky.blog.51cto.com/628458/244962
本文出自 “郑彦生” 博客,请务必保留此出处http://467754239.blog.51cto.com/4878013/1560294
原文地址:http://467754239.blog.51cto.com/4878013/1560294