前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用python对mysql主从进行监控

使用python对mysql主从进行监控

作者头像
py3study
发布2020-01-19 15:50:27
1.5K0
发布2020-01-19 15:50:27
举报
文章被收录于专栏:python3

1.编写python的监控脚本

  A.通过获取mysql库中的状态值来判断这个mysql主从状态是否正常

       B.进行两个状态值的判断

       C.进行调取钉钉机器人,发送消息

2.设置定时任务进行脚本运行

  crontab -e    添加定时任务

  */5 * * * * source ~/.bashrc && /usr/bin/python /lvdata/send_msg.py 

  给脚本执行权限  chmod +x /lvdata/send_msg.py

      这里出现一个问题,就是手工能执行脚本,但定时任务时不能执行python脚本,参考解决方法:

  1.将脚本中的中文进行删除或更改为英文

        2.在对日志监控查看时,脚本确以执行,但没有达到预期的效果

  tail -f /var/log/cron

       Sep  4 18:25:01 VM_DATA_ANALYSIS_DB_38 CROND[20870]: (root) CMD (/usr/bin/python /lvdata/send_msg.py)

  然后将定时任务进行修改 */5 * * * * source ~/.bashrc && /usr/bin/python /lvdata/send_msg.py,再次查看,能够正常运行

      整个脚本

  #!/usr/bin/python

  import os   import json   import urllib2

  def get_fljr189_status():   #获取SQL_Running 的状态值   SQL=os.popen("mysql -uroot -p密码-S /tmp/mysql.sock \"-e show slave '自定义名称' status\G\"|grep \"Slave_SQL_Running\"")   #获取IO_Running 的状态值   IO=os.popen("mysql -uroot -p密码 -S /tmp/mysql.sock \"-e show slave '自定义名称' status\G\"|grep \"Slave_IO_Running\"")   #获取IP地址   IP=os.popen("mysql -uroot -p密码 -S /tmp/mysql.sock \"-e show slave '自定义名称' status\G\"|grep \"Master_Host\"")   #对SQL_Running 和 IO_Running状态值进行判断   sql_status=cmp(SQL.read().split(":")[1].strip(),"Yes")   io_status=cmp(IO.read().split(":")[1].strip(),"Yes")   ip=IP.read().split(":")[1]   #如果这两个值都为Yes,则不报警   if(sql_status==0 and io_status==0):     pass   else:   #如果有不为Yes的值,则开发通过python 调用钉钉发送信息到群中     send_msg(ip)

#调用钉钉发送信息到群中

def send_msg(ip):   #钉钉的webhook 值,如有不知道可自行百度   url="https://oapi.dingtalk.com/robot/send?access_token="   headers={     "Content-Type":"application/json",     "Charset":"UTF-8"   }   data={   "msgtype":"text",   "text":{   "content":str(ip)+"master-slave Error"   },   "at":{     "isAtAll":True   }

}   data=json.dumps(data)   request=urllib2.Request(url,data=data,headers=headers)   response=urllib2.urlopen(request)   print(response.read())

get_fljr189_status()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档