Mysql zabbix qps_用python写的一段小脚本zabbix调用监控mysql的QPS和TPS

写这段脚本不是为了别的,只是自己熟练掌握类的操作 另外还熟释一些函数,那么zabbix监控mysql,其中涉及到了一些计算,在配置文件不能进行计算,我觉得不太可能,所以写了这么一段脚本,功能得实现,因为知识面有限,后面遇到再继续优化吧,贴上代码如下:

python">

#!/usr/bin/env python

#coding=utf-8

import sys

import os

import commands

class QpsTps(object):

def __init__(self):

self.QPS = ''

self.TPS = ''

def getQps(self):

(Queries,QPS_result) = commands.getstatusoutput("mysqladmin -uroot -p123456 extended-status | grep 'Queries' | cut -d'|' -f3")

self.QPS = int(QPS_result)

return self.QPS

def getTps(self):

(Com_commit,cm_result) = commands.getstatusoutput("mysqladmin -uroot -p123456 extended-status | grep 'Com_commit' | cut -d'|' -f3 ")

(Com_rollback,rb_result) = commands.getstatusoutput("mysqladmin -uroot -p123456 extended-status | grep 'Com_rollback' | cut -d'|' -f3 | awk 'NR==1'")

self.TPS = int(cm_result) + int(rb_result)

return self.TPS

class error_out(object):

def error_print(self):

'''代入值少输,输出错误'''

print

print 'Usage : ' + sys.argv[0] + ' MysqlStatusKey '

print

sys.exit(1)

class Main(object):

def main(self):

if len(sys.argv) == 1:

error = error_out()

error.error_print()

elif sys.argv[1] == 'QPS':

a = QpsTps()

print a.getQps()

elif sys.argv[1] == 'TPS':

a = QpsTps()

print a.getTps()

if __name__ == '__main__':

main_obj = Main()

main_obj.main()

将代码上传至系统,赋值权限,在zabbix的mysql配置文中加入:

UserParameter=mysql.QPS,python /usr/local/zabbix/scripts/get_qps_tps.py QPS

UserParameter=mysql.TPS,python /usr/local/zabbix/scripts/get_qps_tps.py TPS

服务端取值测试:

# /usr/local/zabbix/bin/zabbix_get -s 10.16.1.68 -p 10050 -k"mysql.QPS"

1783724

# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -k"mysql.QPS"

3695982

# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -k"mysql.TPS"

278279

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值