用python监控mysql数据库是否可写
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,监控数据库是否可写,如果你的监控脚本逻辑是,写入数据库成功后显示成功,反之显示不成功然后报警。那么难题来了,数据库真的无法写入了,你的监控脚本的写入命令也会被mysql hang住,一直卡在那里,直到
千家信息网最后更新 2025年02月05日用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安全错误
数据库的锁怎样保障安全
辽宁厂家直销服务器机柜虚拟主机
舟山制作网站和软件开发哪个好
腾讯公司的手游服务器
微软高级软件开发工程师年薪
数据库是现代信息科学与技术
新型软件开发考试
易销互联网科技公司
如何提升数据库并发性能
腾讯网络安全收入
一个数据库怎么合并两个表格
农行软件开发中心王增光
靖江教实网络技术有限公司
数据库文件不变小
软件开发合同 开发规范要求
申请网络技术培训
数据库试验测试
绍兴台球桌球软件开发
计算机网络安全外文期刊
数据库学习计划
软件开发入门课程视频
网络技术的发展的利弊
ep数据库导出
中专里面能学软件开发吗
宿舍网络安全解决方案
厦门手机社交软件开发
根域名服务器ip
brr文件属于数据库吗
专业技术人员网络安全建设
广州软件开发外包网站
网络技术实训心得