python监控redis 脚本(结合zabbix)

#!/bin/python

-- coding:UTF-8 --

import redis
import sys

"""
各个参数的解释:
keyspace_misses //表示未命中数
keyspace_hits //表示命中数
keyspace_hits_rate = keyspace_hits /(keyspace_hits + keyspace_misses)
connected_clients //客户端连接数
blocked_clients //客户端阻塞数
connected_slaves //从库数
instantaneous_ops_per_sec //客户端每秒执行命令频率
used_memory_rss //操作系统分配给redis的内存
used_memory //redis分配器分配的内存
mem_fragmentation_ratio //内存碎片比例
"""

#把参数定义为列表
keyindex = [‘used_memory‘, ‘used_memory_rss‘, ‘mem_fragmentation_ratio‘, ‘blocked_clients‘, ‘connected_clients‘,
‘connected_slaves‘,
‘instantaneous_ops_per_sec‘, ‘keyspace_hits‘, ‘keyspace_misses‘, ‘keypace_query_total_count‘,
‘keyspace_hits_rate‘, ‘status‘]

returnval = None

def zabbix_faild():
print "ZBX_NOTSUPPORTED"
sys.exit(2)

if len(sys.argv) != 2: #需要有一个参数,加上程序本身是两个参数。所以判断如果没有参数,就直接提示
print len(sys.argv)
zabbix_faild()

try:
conn=redis.Redis(host=‘172.16.17.40‘,port=‘6379‘,password=‘‘)
except Exception,e:
print e
zabbix_faild()

#下面是根据参数来判断并且取值,最终返回状态,加入到zabbix中
if sys.argv[1] in keyindex:
if sys.argv[1] == ‘status‘:#如果参数为status ,执行ping,为true返回值为1,zabbix中返回1 则表示正常。
try:
conn.ping()
returnval = 1
except Exception,e:
returnval = 0
elif sys.argv[1] == ‘keyspace_hits_rate‘:
merit = conn.info()
keyspace_hits_count = float(merit[‘keyspace_hits‘])
keyspace_misses_count = float(merit[‘keyspace_misses‘])
keyspace_hits_rate = keyspace_hits_count / (keyspace_hits_count + keyspace_misses_count) * 100
returnval = keyspace_hits_rate
elif sys.argv[1] == ‘keypace_query_total_count‘:
merit = conn.info()
keyspace_hits_count = merit[‘keyspace_hits‘]
keyspace_misses_count = merit[‘keyspace_misses‘]
keypace_query_total_count = keyspace_hits_count + keyspace_misses_count
returnval = keypace_query_total_count
else:
merit = conn.info()
try:
returnval = merit[unicode(sys.argv[1])]
except Exception,e:
pass

#判断返回值状态的函数
def ret_status ():
if returnval == None:
zabbix_faild()
else:
print returnval

ret_status()

原文地址:http://blog.51cto.com/3722525/2333671

时间: 2024-10-10 06:15:24

python监控redis 脚本(结合zabbix)的相关文章

python监控端口脚本

此脚本根据端口判断进程是否存活, 如果有指定的端口就证明进程是没问题的, 如果检测不到端口就是说业务进程已经挂掉了, 此时自动重启程序, 不多说下面请看脚本 创建脚本 我这里模拟的是nginx, 监控端口是9999, 如果您的是8080或者80, 可以自行更改,记得启动程序命令也需要修改喔, 这个脚本是linux中的, 如果是windows中的请看这里Windows server利用批处理脚本判断端口, 启动tomcat原理都是一样的, 换汤不换药. 里面也支持邮件提醒功能, 需要的自行配置.

python 监控mysql脚本

#!/usr/bin/env python #-*- coding: UTF-8 -*- from __future__ import print_function from mysql import connector import logging,argparse,sys import sys #create user [email protected]'127.0.0.1' identified by '123456'; #grant replication client on *.* t

zabbix自定义监控redis

zabbix监控redis脚本 #!/bin/bash #此脚本用来获取redis-cli info信息 redis_cli="/usr/local/redis/bin/redis-cli" redis_host="127.0.0.1" redis_pass="123456" redis_port="6379" if [[ $# == 1 ]];then result=`$redis_cli -h $redis_host -p

一个简单的监控redis性能的python脚本

一个简单的监控redis性能的python脚本 上一篇已经讲了如何监控memcached了,现在也顺带讲如何监控redis. 首先介绍下监控redis那些信息: Redis ping:检验ping Redis alive:查看检查端口是否alive Redis connections:查看连接数 Redis blockedClients:正在等待阻塞客户端数量 Redis connectionsUsage:redis的连接使用率 Redis memoryUsage:redis内存使用量 Redi

zabbix监控单机多实例redis脚本

zabbix监控单机多实例redis脚本 公司节省成本,充分利用资源,部署了单机多实例的线上情况.作为python新手,果断决定写个很low的脚本,然后实现监控功能. 下面这个脚本实现了,discovery自动发现,然后通过一个status监控实现了,其它监控信息的自动汇报功能.其中很low的地方在于,每个主机上的脚本必须定义本地的redis信息,比如端口,密码之类的:其实这个可以通过配置中心获取的,但是因为分享出来,所以就写了个定义的实例:还有一点大神都一般自己写socket发送数据,我这里很

Zabbix监控redis多实例(low level discovery)

对于多实例部署的tomcat.redis等应用,可以利用zabbix的low level discovery功能来实现监控,减少重复操作. 注:Zabbix版本: Zabbix 3.0.2 一.服务端配置 1.创建模板 模板名称: Template_Redis_Monitor 2.创建自动发现规则 给已创建好的模板Template_Redis_Monitor添加自动发现规则. 3.添加监控项原型 从上面截图可以看到,我已经创建了4个,具体如下: 看看其中一个: 再来看看主机关联模板后的监控项:

zabbix 监控 redis

通过redis自带的info命令来监控redis的健康状态,通过redis-cli PING命令来监控redis的存活状态. 附件中有监控模板,将监控脚本放在redis服务器的自定义的/scripts/zabbix_redis/下: #! /bin/bash #Name: redismontior.sh REDISCLI="/usr/bin/redis-cli" HOST="127.0.0.1" PORT=6379 if [[ $# == 1 ]];then    

记一次使用官方zabbix官方模板监控redis自己犯的错

监控模板git地址 :https://github.com/blacked/zbx_redis_template 脚本使用zabbix的Trapper方式向服务器发送数据 python /etc/zabbix/scripts/zbx_redis_stats.py 127.0.0.1 -p 6379 -a tongcheng123

Redis 学习(Zabbix 监控Redis)

前面redis的配置文件盒常用命令.redis info信息都解释完了,接下来就是监控我们的redis了,我使用的是zabbix监控软件,所有在这里我在这里详细介绍下怎么设置zabbix来监控reids,主要分为配置zabbix插件.插件脚本.创建模板监控项.创建图形几个方面. Redis 学习(配置文件和常用命令注释): http://54snow.blog.51cto.com/2690157/1537449 Redis 学习(Redis Info详细注释): http://54snow.bl