用python监控mysql数据库是否可写
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,监控数据库是否可写,如果你的监控脚本逻辑是,写入数据库成功后显示成功,反之显示不成功然后报警。那么难题来了,数据库真的无法写入了,你的监控脚本的写入命令也会被mysql hang住,一直卡在那里,直到
千家信息网最后更新 2025年11月11日用python监控mysql数据库是否可写
""","html","utf-8") msg['Subject'] = SUBJECT msg['From']=FROM msg['To']=TO try: server = smtplib.SMTP('localhost') server.sendmail(FROM, TO, msg.as_string()) server.quit() print "邮件发送成功!" except Exception, e: print "失败:"+str(e) ### if __name__ == '__main__': #创建监控数据库连接,与是否可写,的监控表,下面是创建语句 #sql_user_info = """ #CREATE TABLE IF NOT EXISTS db_check_table ( #itemid INT(20), #applicationid INT(20), #hostid INT(20), #name VARCHAR(255), #du_name VARCHAR(255), #item_name VARCHAR(255) #) #""" insert_sql = """insert into db_check_table values ('10211','13564','456789','test-172.5.6.7','cpu','cpu ldie')""" try: query_with_timeout(insert_sql) except Exception,e: mail_result = str(e) if mail_result != "successful" : se_mail(mail_result)
监控数据库是否可写,如果你的监控脚本逻辑是,写入数据库成功后显示成功,反之显示不成功然后报警。那么难题来了,数据库真的无法写入了,你的监控脚本的写入命令也会被mysql hang住,一直卡在那里,直到天荒地老,根本无法实现报警。那换个思路,如果设置个超时时间,是不是更好。
#!/usr/bin/env python# -*-coding:utf8-*-import MySQLdbimport reimport smtplibimport jsonfrom email.mime.text import MIMETextimport sysimport timeimport multiprocessingreload(sys)sys.setdefaultencoding('utf8')def mysql_select(sql, pipe): try: conn = MySQLdb.connect(host='xxx.xxx.xxx.xxx',user='xxxx',passwd='xxxx',db='xxxx',port=xxxx,charset='utf8',connect_timeout=10) cursor = conn.cursor() cursor.execute(sql) result = cursor.fetchall() cursor.close() conn.commit() conn.close() pipe.send('successful') except Exception,e: pipe.send("zabbix 数据库异常: %s" % e) def query_with_timeout(sql): pipe_out, pipe_in = multiprocessing.Pipe(False) subproc = multiprocessing.Process(target=mysql_select,args=(sql, pipe_in)) subproc.start() subproc.join(timeout=3) if pipe_out.poll(): ex_c = pipe_out.recv() else: ex_c = "zabbix 数据库无法写入" subproc.terminate() #raise Exception("Query %r ran for >%r" % (sql, 5)) raise Exception(ex_c)### def se_mail(mail_result): now_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) sys.setdefaultencoding('utf-8') SUBJECT = "数据库监控" TO = "xxxx@ptthink.com" FROM = "ooooo@ptmind.com" msg = MIMEText(""" | 中国区zabbix数据库监控 | 告警区域 | 中国 | |
|---|---|---|---|
| 主机名称 | xxx.xxx.xxx.xxx | ||
| 告警项目 | zabbix数据库监控 | ||
| 告警级别 | 严重 | ||
| 告警状态 | PROBLEM | ||
| 详细内容 | """ + mail_result + """ | ||
| 发生时间 | """ + now_time + """ | ||
数据
数据库
监控
成功
时间
脚本
中国
报警
天荒地老
主机
内容
区域
名称
命令
思路
根本
状态
级别
语句
逻辑
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国之互联网科技有限公司地址
it软件开发招标评分标准
饥荒专用服务器模组未启用
媚娘软件开发商
传媒运营软件开发
uniport数据库应用
计算机网络技术高考考吗
银保协杯网络安全
VDM软件开发方法
04751网络安全视频
班会网络安全的教案
软件开发的架构模式有哪些
网络安全技术架构策略
哪些技术保证网络安全
彩虹6号换服务器
宁波魏晋元兴分布式存储数据库
宝鸡app软件开发制作
大陆汽车软件开发流程
ukey服务器设置
橙橙网络安全插画
服务器申请表
网络安全少年说提案
wps上有数据库吗
山东广电网络安全播出制度
社交网络安全隐患动画
外事网络安全工作要点
云哨服务器软件
软件开发 软件销售 增值税
计算机网络技术基础与应用论文
海南网络软件开发诚信服务