使用python写一个监控mysql的脚本,在zabbix web上加上模板:

##先使用MySQLdb的接口关联数据库。

[root@cml python]# cat check_Mysql_custom.py

#!/usr/local/bin/python

'''author = chenmingle'''

'''Description:get mysql status'''

import os

import sys

try:

import MySQLdb as mysql

except Exception, e:

print e

print "pip install MySQL-python"

sys.exit(1)

con = mysql.connect(host='localhost',user='root',passwd='passwd',)

def processlist():

cur = con.cursor()

sql1 = 'show processlist'

a = str(cur.execute(sql1))

print a

def slave_status():

cur = con.cursor()

sql2 = cur.execute('show status like "%Slave_running%";')

status2 = str(cur.fetchall())

check2 = status2.split("'")[3]

if check2 == 'ON':

print 0

else:

print 1

def show_status(type):

cur = con.cursor()

b = cur.execute('show status like "%s";' %(type))

for i in cur.fetchall():

cat = str(i)

check = str(cat.split("'")[3])

print check

def main(type):

if type == 'processlist':

processlist()

elif type == 'slave_status':

slave_status()

else:

show_status(type)

if __name__ == '__main__':

try:

type = sys.argv[1]

except Exception, e:

print "Usage: python %s type" % sys.argv[0]

sys.exit(1)

main(type)

假如执行测试时报以下错误:

[root@cml python]# python check_Mysql_custom.py slave_status

Traceback (most recent call last):

File "test.py", line 14, in

con = mysql.connect(user='zabbix',passwd='',port=3306)

File "/usr/local/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect

return Connection(*args, **kwargs)

File "/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__

super(Connection, self).__init__(*args, **kwargs2)

_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")

执行以下命令可以解决:

[root@cml python]# mkdir /var/lib/mysql

[root@cml python]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

##测试一下脚本:

[root@cml python]# python check_Mysql_custom.py processlist

3

[root@cml python]# python check_Mysql_custom.py Connections

55876

##测试显示所有在mysql中show status的都可以输出信息出来:

##写一个模板配置文件(自定义key值):

[root@cml zabbix_agentd.d]# cat Mysql_Custom.conf

UserParameter=mysql.Custom[*],/usr/local/bin/python /home/python/check_Mysql_custom.py $1

##在zabbix web界面上加入模板:

##增加一个Appaliactions:

##加入item值:

python加mysql加界面用代码写,使用python写一个监控mysql的脚本,在zabbix web上加上模板...相关推荐

  1. python写mysql脚本_使用python写一个监控mysql的脚本,在zabbix web上加上模板

    使用python写一个监控mysql的脚本,在zabbix web上加上模板: ##先使用MySQLdb的接口关联数据库. [root@cml python]# cat check_Mysql_cus ...

  2. python基础课程3(看代码看注释)--数据库基本操作(mysql)

    #人生苦短,我用python #推荐一个python数据结构可视化工具,网址:http://www.pythontutor.com ##课表:1.mysql数据库的基本操作:2.用python操作基本 ...

  3. python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  4. python开发的优秀界面-八款常用的 Python GUI 开发框架推荐

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 乔柯 PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...

  5. python身份证号掩盖出生日期的代码_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  6. python基础代码事例-Python基础总结成千行代码,让Python入门更简单!

    只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python! 不管学习任何东西,入门方面都是比较快的,但是要深入的话,还是需要一个积累的过程,这是一个漫长且需要坚持的事 ...

  7. python删除数据库的数据完整代码_利用python操作小程序云数据库实现简单的增删改查...

    不止python,你可以利用任何语言那实现通过http请求来操作你自己的小程序云数据库了 背景 也是在最近吧,小程序更新了云开发 HTTP API 文档,提供了小程序外访问云开发资源的能力,使用 HT ...

  8. python实验指导书答案函数代码复用_#Python学习笔记(5)函数和代码重用,复用

    七段数码管绘制 绘制单段数码管 def drawLine(draw): turtle.pendown() if draw else turtle.penup() #将绘制一条线定义为一个基本函数, 参 ...

  9. python常用代码入门-Python基础总结成千行代码,让Python入门更简单!

    只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python! 不管学习任何东西,入门方面都是比较快的,但是要深入的话,还是需要一个积累的过程,这是一个漫长且需要坚持的事 ...

  10. python自制简易二维码代码_用python把自己的二维码制作成动态码,一行代码即可搞定!敲简单!...

    分享一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码.艺术二维码(黑白/彩色)和动态GIF二维码. 用法比较简单,直接通过pip安装即可. pip3 install myq ...

最新文章

  1. CSS上下左右居中的几种方法
  2. pdf.js 文字丢失问题 .cmaps
  3. 漫步数学分析十五——连续
  4. 下一代软件工程的思考与点滴实践
  5. CAS:compare and swap
  6. vue 判断一个数是否在数组中_高级前端进阶,vue如何实现$nextTick
  7. 计算机编程c 语言实型数据,C语言-基础教程-C语言实型数据
  8. 在Java中将前导零添加到数字? [重复]
  9. Ubuntu 下实现类似Everything的功能
  10. 潘多拉系统虚拟服务器,潘多拉服务器节点配置
  11. SMbus和I2C异同, PMBUS
  12. Leetcode(934)——最短的桥
  13. CUDA +cnn安装
  14. bootstrap柱状图
  15. 个税汇算清缴是怎么算的,为何有人补税几百,有人退税几千?
  16. SwiftUI学习笔记[path绘制]
  17. CCNA学习笔记7--动态路由协议概念和RIP
  18. 脑机接口-常用的MATLAB函数
  19. 注册表各键值保存的内容及其对用的作用(功能)(不完善,有补充的评论指出供大家学习参考)
  20. go语言数组如何初始化问题? - 知乎

热门文章

  1. c语言中不同类型的变量可以在一个表达式中,C语言数据类型与表达式习题及答案.doc...
  2. 蓝桥杯2016年第七届JavaC组国赛第一题-平方末尾
  3. 蓝桥杯2018年第九届C/C++省赛B组第二题-明码
  4. 【报错】android.database.sqlite.SQLiteException: no such column: id (code 1): , while compiling: select
  5. 微服务中的健康监测以及其在ASP.NET Core服务中实现运行状况检查
  6. Docker入坑指南之EXEC
  7. Python取出SQL表单中的字段名
  8. Ctrl+F5为强制刷新
  9. IOS 打包后安装崩溃,debug正常运行
  10. c语言单链表原地转置,不带头结点的单链表的插入,删除,原地转置,判断空,清空,统计节点数目等操作...