• Memcached管理与监控


    一个用PHP编写的可视化的MemCached管理系统

      MemAdmin是一款可视化的Memcached管理与监控工具,使用PHP开发,体积小,操作简单。

      主要功能:
      服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新
      服务器性能监控:GET、DELETE、INCR、DECR、CAS等常用操作命中率实时监控
      支持数据遍历,方便对存储内容进行监视
      支持条件查询,筛选出满足条件的KEY或VALUE
      数组、JSON等序列化字符反序列显示
      兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外)
      支持服务器连接池,多服务器管理切换方便简洁
    MemAdmin主页: http://www.junopen.com/memadmin
     
    扩展:
    目前我所知道的监控方法大概有以下几种:
    一、memcache.php 这个东东算是最简单的了,只要支持php环境就能用,把这个文件放到你的网页存放目录下就可以了访问方法 http://ip/memcache.php
     
    下载地址 http://livebookmark.net/memcachephp/memcachephp.zip
            http://blogimg.chinaunix.net/blog/upfile2/081230231118.zip
    需要注意的是,使用之前要修改里面的几个选项
    vim memcache.php
    .....
    define('ADMIN_USERNAME','memcache');    // 定义用户名
    define('ADMIN_PASSWORD','password');    // 定义密码
    .....
    $MEMCACHE_SERVERS[] = 'mymemcache-server:11211'; //定义要查看的ip和端口
    $MEMCACHE_SERVERS[] = 'mymemcache-server2:11212'; //可添加多个
    其他内容略
    上面的图就是访问时的效果,是不是很直观?


    二、利用memcached自身的命令来检查

    telnet localhost 11211
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    stats
    STAT pid 24567
    STAT uptime 6576
    STAT time 1261035123
    STAT version 1.4.3
    .....
    STAT bytes 64035
    STAT curr_items 41
    STAT total_items 96
    STAT evictions 0
    END
    不过这个方法我觉得不太方便,从网上搜到了另一个好办法,那就是利用nagios的check_tcp (mixi的方法)
    check_tcp -H localhost -p 11211 -t 5 -E -s 'stats quit ' -e 'uptime' -M crit 输出结果和上面差不多
    TCP OK - 0.001 second response time on port 11211 [STAT pid 10663
    STAT uptime 76444
    STAT time 1259641750
    STAT version 1.4.2
    .....中间省略
    STAT bytes 1385408560
    STAT curr_items 227799
    STAT total_items 5012750
    STAT evictions 0
    END]|time=0.001142s;;;0.000000;5.000000
    这样我们就能在nagios里面添加命令来查看他的运行状态了
    不过这样还不够,我还需要在memcached出现问题的时候通过邮件或者短信来通知我,下面来介绍一个更好的办法

    三、Nagios的check_memcached
    下载地址:
    http://search.cpan.org/CPAN/authors/id/Z/ZI/ZIGOROU/Nagios-Plugins-Memcached-0.02.tar.gz
    http://cpan.uwinnipeg.ca/cpan/authors/id/Z/ZI/ZIGOROU/Nagios-Plugins-Memcached-0.02.tar.gz
    这个脚本是用perl编的,所以你要先确保自己的机器里面是否有perl环境,不过一般都会默认安装
    [root@nodea soft]# which perl
    /usr/bin/perl
    下载下来后安装
    [root@nodea soft]# tar xzvf Nagios-Plugins-Memcached-0.02.tar.gz
    [root@nodea soft]# cd Nagios-Plugins-Memcached-0.02
    [root@nodea Nagios-Plugins-Memcached-0.02]# perl Makefile.PL
    执行后会出现一些提示让你选择,按照自己想法选或者一路回车都能通过
    [root@nodea Nagios-Plugins-Memcached-0.02]# make
    这时他会下载一些运行时需要的东西
    [root@nodea Nagios-Plugins-Memcached-0.02]# make install

    默认会把check_memcached文件放到/usr/bin/check_memcached
    没关系 把他拷贝到nagios的libexec下
    在commands.cfg里面加上这么几条(这里我没有把check_memcached装在memcached服务器上,而是通过Nagios的 check_memcached直接去访问memcached服务器的11211端口,当然你也可以把他装在memcached服务器上利用 check_nrpe来取他的值)
    define command {
            command_name check_memcached_11211
            command_line $USER1$/check_memcached -H 192.168.1.139:11211 --size-warning 80 --size-critical 90
                  }
    上面这个是来监控memcached的内存使用比例
    define command {
            command_name memcached_response_11211
    command_line /usr/local/bin/check_memcached -H 192.168.1.139 -w 300 -c 500
                   }
    这个是用来监控memcached是否还有应答
    define command {
            command_name check_memcached_hit
            command_line /usr/local/bin/check_memcached -H 192.168.1.139 --hit-warning 10 --size-critical 5
                    }
    这个就是命中率啦
    最后要在services.cfg里面加点东西
    define service{
            host_name               xmanWeb1
            service_description     memcached_11211
            check_command           check_memcached_11211
            max_check_attempts      3
            normal_check_interval   3
            retry_check_interval    2
            check_period            24x7
            notification_interval   10
            notification_period     24x7
            notification_options    w,u,c,r
            contact_groups          babelgroup
            }
    其他的可以按照自己要求添加..
    好了,让我们重新启动下nagios服务
    /etc/init.d/nagios restart
    看看结果

    呵呵好了,Nagios监控memcached基本就搞定了。

    另外还可以根据check_tcp -H localhost -p 11211 -t 5 -E -s 'stats quit ' -e 'uptime' -M crit
    的输出结果自己编写脚本来检测memcached,这里我就不多说了...
    还可以利用check_tcp的结果结合CACTI 来制作memcached的流量视图,当然Cacti也有专门针对memcached的模板(不过我的模板一直抓不到数据...)
     
  • 相关阅读:
    设计模式--17、建造者模式
    设计模式--16、原型模式
    面向对象的几大设计原则
    设计模式--15、模板方法模式
    设计模式--14、中介者模式
    设计模式--13、享元模式
    设计模式--12、外观模式
    设计模式--11、命令模式
    消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型?
    Kafka,Mq,Redis作为消息队列有何差异?
  • 原文地址:https://www.cnblogs.com/Alight/p/3546424.html
Copyright © 2020-2023  润新知