一、启动redis-server

cd /data/redis
redis-server redis.conf (根据自己的环境启动redis) 测试脚本(写入1000个数据):
seq |while read line; do redis-cli set key_${line} value_${line}; done

二、redis-cli info查看redis的运行信息

used_memory_rss  #占用系统的内存
used_memory #key所占用的内存
mem_fragmentation_ratio #内存碎片化率used_memory_rss/used_memory
connected_clients #已连接的客户端
total_commands_processed #从启动开始运行了多少命令
total_connections_received #从启动开始接收了多个连接
role #redis主从状态 redis-cli info|grep total_commands_processed

三、监控redis脚本(vim /usr/local/zabbix/check_redis.sh)

#!/bin/sh
while getopts "p:k:P:" opt
do
case $opt in
p ) redis_port=$OPTARG;;
k ) info_key=$OPTARG;;
P ) redis_passwd=$OPTARG;;
? )
echo 'parameter is wrong!'
exit ;;
esac
done
if [ ! "${redis_port}" ] || [ ! "${info_key}" ];then
echo "parameter is null"
exit
fi if [ "${redis_passwd}" ];then
result=`/usr/local/bin/redis-cli -a ${redis_passwd} -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
else
result=`/usr/local/bin/redis-cli -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
fi
echo $result

四、测试脚本

无密码测试

sh /usr/local/zabbix/check_redis.sh -k mem_fragmentation_ratio -p
sh /usr/local/zabbix/check_redis.sh -k total_commands_processed -p

有密码测试

config set requirepass "test"
auth test
sh /usr/local/zabbix/check_redis.sh -k total_commands_processed -p -P test

去除密码

auth test
config set requirepass ""

五、zabbix agent的配置(vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/redis.conf)

UserParameter=redis.status[*],sh /usr/local/zabbix/check_redis.sh -k $ -p $
4.1 如果有密码的话(test替换自己的密码)
UserParameter=redis.status[*],sh /usr/local/zabbix/check_redis.sh -k $ -p $ -P test
重启zabbix agentd。

六、测试zabbix_agent是否正常

/usr/local/zabbix/sbin/zabbix_agentd -t redis.status[mem_fragmentation_ratio,]
/usr/local/zabbix/sbin/zabbix_agentd -t redis.status[total_commands_processed,] zabbix_get -s 192.168.1.106 -k redis.status[mem_fragmentation_ratio,]

七、在zabbix server网页上配置监控

6.1 添加主机
6.2
添加监控项目
简单检查 net.tcp.service.perf[tcp,,] #浮点数 触发器为0时告警 图形
redis.status[used_memory_rss,] #整数
redis.status[used_memory,] #整数
redis.status[mem_fragmentation_ratio,] #浮点数 redis内存碎片化率
redis.status[connected_clients,] #整数
redis.status[total_commands_processed,] #每秒速率 整数 redis每秒钟执行的命令(qps)
redis.status[total_connections_received,] #每秒速率 整数

6.3 模板说明

自动发现redis端口(discover_redis.py)

#coding:utf-
import json
import commands (status, output) = commands.getstatusoutput("""sudo netstat -tlnp|grep 'redis'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u|grep -v '^1'""")
outputs = output.split('\n')
ports = []
for port in outputs:
ports += [{'{#REDISPORT}': port}] print json.dumps({'data':ports},sort_keys=True,indent=) 自动发现zabbix配置:
UserParameter=redis.discover,python /usr/local/zabbix/discover_redis.py

zabbix自定义key监控redis的更多相关文章

  1. 菩提圣心诀---zabbix自定义key监控oracle连接状态(python脚本)

    目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...

  2. zabbix自定义key监控memcache状态及其他服务进程

    一.在客户端 1.到/usr/loca/zabbix/conf/zabbix_agentd.conf里添加         UserParameter=memcached_stats[*],(echo ...

  3. zabbix自定义key监控mysql主从同步超简单!

    原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值 1.在zabbix客户端配置文件中加入: 首先要对mysql ...

  4. zabbix自定义key监控nginx和fpm(网站并发数)

    一. nginx编译参数 监控nginx,主要讲解监控并发数 --prefix=/usr/local/nginx --with-http_stub_status_module zabbix编译参数的查 ...

  5. zabbix自定义key

    zabbix自定义key 1.修改客户端配置文件 #vi /opt/zabbix/etc/zabbix_agentd.conf Include=/opt/zabbix/etc/zabbix_agent ...

  6. zabbix 自定义 key (转)

    转自:http://www.cnblogs.com/miclesvic/p/6164303.html 1.在zabbix_agent端zabbix_agentd.conf配置文件中增加自定义Key(/ ...

  7. zabbix 自定义Key (六)

    1.在zabbix_agent端zabbix_agentd.conf配置文件中增加自定义Key(/usr/local/zabbix_agent/etc/zabbix_agentd.conf) ### ...

  8. zabbix主动模式,自定义Key监控 zabbix采集器

    主动模式不是只能用模板提供的标准检测器方式 zabbix-agent两种运行方式即主动模式和被动模式.默认被动模式. 两种模式是相对 客户端 角度来说的. 被动模式:等待server来取数据,可以使用 ...

  9. Zabbix 自定义Key

    系统:Linux Centos 7.4 x64.Windos 2008 x64 服务:Zabbix 3.0.16 说明1:自定义Key 主要通过自定义 脚本 或者 命令 来实现自定义监控类型,需要在a ...

随机推荐

  1. CentOS 添加常用 yum 源(转)

    CentOS 的官方源去掉了一些与版权有关的软件,因此想要安装这些软件或者手动下载安装,或者使用其他源. 下面我推荐常用的两个源, 这两个源基本可以满足一般服务器的使用需求. 首先, 添加源之前要确定 ...

  2. bzoj 2039 [2009国家集训队]employ人员雇佣——二元关系

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2039 用最小割看.对于一组关系 i , j ,如果都选,收益 2*Ei,j,可以看作0,作为 ...

  3. Linux VPS上DenyHosts阻止SSH暴力攻击

    2009年07月23日 下午 | 作者:VPS侦探 现在的互联网非常不安全,很多人没事就拿一些扫描机扫描ssh端口,然后试图连接ssh端口进行暴力破解(穷举扫描),所以建议vps主机的空间,尽量设置复 ...

  4. SecureCRT导入已有会话

    如果别人有完整的环境信息,我们想拿过来,怎么导入?或者别人想要我的会话配置信息,怎么导出?对SecureCRT这个工具来说很easy,根本不需要去找什么导入.导出按钮,直接文件操作. 假如我的Secu ...

  5. Python中dir()与help()的使用

    python内置了很多内置函数.类方法属性及各种模块.当我们想要当我们想要了解某种类型有哪些属性方法以及每种方法该怎么使用时,我们可以使用dir()函数和help()函数在python ide交互式模 ...

  6. 全排列函数C++实现

    例题:求由123456789构成的所有九位数字 1 用C++的next_permutation函数 #include <iostream> #include <stdio.h> ...

  7. Django 组件-用户认证

    用户认证 auth模块 from django.contrib import auth 1.1 .authenticate()  提供了用户认证,即验证用户名以及密码是否正确,一般需要username ...

  8. mysql-5.6.17编译安装和常见问题

    mysql-5.6.17编译安装和常见问题 以前用的是MySQL的5.1版本,且使用的是免编译的包,安装简单.最近换了5.6版本的MySQL,安装过程出现了不少问题. 1. 卸载原来版本的MySQL ...

  9. 浅谈使用 PHP 进行手机 APP 开发(API 接口开发)

    做过 API 的人应该了解,其实开发 API 比开发 WEB 更简洁,但可能逻辑更复杂,因为 API 其实就是数据输出,不用呈现页面,所以也就不存在 MVC(API 只有 M 和 C),那么我们来探讨 ...

  10. C++ 新特性-右值引用

    作为最重要的一项语言特性,右值引用(rvalue references)被引入到 C++0x中.我们可以通过操作符“&&”来声明一个右值引用,原先在C++中使用“&”操作符声明 ...