一、启动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. 什么是Spark(四)集群

    Driver,主要的职责是生成DAG以及生成物理执行计划(Physical Execution Plan):Application,Job以及Stage都是在这个组建中生成的: ClusterMast ...

  2. (转)Android 读取联系人(详细)

    import java.io.InputStream; import org.json.JSONArray; import org.json.JSONException; import org.jso ...

  3. 如何将angular-ui-bootstrap的图片轮播组件封装成一个指令

    在项目开发中我们经常会遇到图片轮播的功能点: 如果我们开发人员自己原生手写,将会花费很多的时间,最终得不偿失. 接下来就详细说说如何使用angular-ui发热图片轮播模块,并且将它写成一个指令(便于 ...

  4. Redis: temple

    ylbtech-Redis:  1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部   9.返回顶部   1 ...

  5. canvas之绘制一张图片

    <canvas id="canvas" width="600" height="500" style="background ...

  6. 【洛谷】P2983 [USACO10FEB]购买巧克力Chocolate Buying(贪心)

    题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Sto ...

  7. bat执行sqlplus语句,省去@xx.sql过程

    bat文件中执行写sqlplus连接,再@调用自己,sql登录成功后,会忽略掉第一行sqlplus xxx,转而执行下方的sql语句 --------------------------------- ...

  8. GDI/GDI+这些破事

    本文是杂篇,纯属笔记,想到哪写到那! 1.获取像素的RGB以及填充 CPaintDC dc(m_hWnd); COLORREF color=dc.GetPixel(,); int R=GetRValu ...

  9. 随机森林(Random Forest,简称RF)

    阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 袋外错误率(oob error) 6 随机森林工作原理解释的一个简单例子 7 随机森林的Pyth ...

  10. Android六大进程间通信方式总结之一:基本知识

    因为不同进程都是享有独立资源的,所以全局变量这些都是无效的,必须有其他的进程间通信方式. 一.基本知识 1:怎样使用多进程 Android正常使用的多进程的办法只有一种,就是在Service或Acti ...