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()

使用python对mysql主从进行监控,并调用钉钉发送报警信息的更多相关文章

  1. python中mysql主从同步配置的方法

    1)安装mysql ubuntu中安装一台mysql了,docker安装另外一台mysql 获取mysql的镜像,主从同步尽量保证多台mysql的版本相同,我的ubuntu中存在的mysql是5.7. ...

  2. zabbix-2.4.8-1添加MySQL主从状态监控

    1.安装zabbix-agentyum -y install zabbix-2.4.8-1.el6.x86_64.rpm zabbix-agent-2.4.8-1.el6.x86_64.rpm 安装以 ...

  3. Mysql 主从延时监控

    200 ? "200px" : this.width)!important;} --> 介绍 主从延时在主从环境中是一个非常值得关注的问题,有时候我们可以通过show sla ...

  4. mysql主从同步监控---邮件告警

    #!/bin/bash #check MySQL_Slave Status #crontab time : MYSQLPORT=`netstat -na|grep "|awk -F[:&qu ...

  5. mysql 主从错误以及监控

    同步中的常见的错误和处理 1.现象:在从库上面show slave status\G;出现下列情况,           Slave_IO_Running: Yes           Slave_S ...

  6. MySQL主从问题

    Mysql数据库主从心得整理      管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验 ...

  7. 分布式监控系统Zabbix3.4-钉钉告警配置记录

    群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步.例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步:通过聚合Trello,JIR ...

  8. elk报警监控之sentinl 钉钉+邮件告警

    注:我的elk sentinl版本都是6.5.1 前期知识 es的查询语法.es watcher使用方法. https://www.cnblogs.com/pilihaotian/p/5830754. ...

  9. nagios监控mysql主从状态

    看了网上很多mysql主从监控的,大部分都是shell的,就算是python的,也是在python下跑shell语句.我写了一个python的监控脚本,用到了mysqldb这个包.脚本如下: [roo ...

随机推荐

  1. ansible安装文档

    一.系统环境 [root@ansible ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@ansible ~]# uname ...

  2. Java 中 方法名或类名 变更 同时 更新 所有引用的 类名或方法名 的解决方案

    选中 类名,或属性名  Ctrl + 1  然后选择 理新当前文件,还是更新整个工作空间,然后修改对应的类名或方法名  回车即可. 如果.有SVN 版本在控制着,则 会提示,然后把对应的文件 锁定 再 ...

  3. Android -- 压缩与解压文件

    我在做一个项目中,工程文件中有一个功能需要很多图片,图片与app一起打包下来的话有30+M,那么我们就考虑另外下载压缩包,我们将图片取出,工程就只有4+M了,哈哈哈哈,呵呵,真恐怖.那么这样就涉及到另 ...

  4. Android:Volley源代码解析

    简单实例 Volley是一个封装HttpUrlConnection和HttpClient的网络通信框架,集AsyncHttpClient和Universal-Image-Loader的长处于了一身.既 ...

  5. vbox下安装centos (全部都是基于64位)

    1.首先提示说CPU内核不匹配,如下图: 于是查阅资料得知:64位CPU支持32位和64位,而要用64位内核,就需要主板支持,于是修改BIOS,在ADVANCE(高级)里,找到VT(也就是virtua ...

  6. Python网络爬虫 - 3. 异常处理

    handle_excpetion.py from urllib.request import urlopen from urllib.error import HTTPError from bs4 i ...

  7. k-means聚类学习

    4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时候上述条件得不到满足,尤其是在 ...

  8. 树形dp hdu-4616-Game

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4616 题目大意: 给一棵树,每个节点有一个礼物值及是否有trick,每来到一个节点必须拿礼物,如果该 ...

  9. Unity3D 多人协作开发 环境搭建 笔记(场景合并)

    http://www.cnblogs.com/zhaoqingqing/p/3371120.html 说到多人协作开发,大家都会想到要使用版本控制工具来管理项目,当然最常用的要数SVN和Git了,但是 ...

  10. JS 校验,检测,验证,判断函数集合

    http://jc-dreaming.iteye.com/blog/754690 /**  *判断对象是否为空 *Check whether string s is empty.  */  funct ...