#!/usr/bin/env python#coding=utf-8import sysimport osimport comm..._python 服务qps监控">
当前位置:   article > 正文

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

python 服务qps监控

写这段脚本不是为了别的,只是自己熟练掌握类的操作 另外还熟释一些函数,那么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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/49230
推荐阅读
相关标签
  

闽ICP备14008679号