使用python对mysql主从进行监控,并调用钉钉发送报警信息
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主从进行监控,并调用钉钉发送报警信息的更多相关文章
- python中mysql主从同步配置的方法
1)安装mysql ubuntu中安装一台mysql了,docker安装另外一台mysql 获取mysql的镜像,主从同步尽量保证多台mysql的版本相同,我的ubuntu中存在的mysql是5.7. ...
- 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 安装以 ...
- Mysql 主从延时监控
200 ? "200px" : this.width)!important;} --> 介绍 主从延时在主从环境中是一个非常值得关注的问题,有时候我们可以通过show sla ...
- mysql主从同步监控---邮件告警
#!/bin/bash #check MySQL_Slave Status #crontab time : MYSQLPORT=`netstat -na|grep "|awk -F[:&qu ...
- mysql 主从错误以及监控
同步中的常见的错误和处理 1.现象:在从库上面show slave status\G;出现下列情况, Slave_IO_Running: Yes Slave_S ...
- MySQL主从问题
Mysql数据库主从心得整理 管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验 ...
- 分布式监控系统Zabbix3.4-钉钉告警配置记录
群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步.例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步:通过聚合Trello,JIR ...
- elk报警监控之sentinl 钉钉+邮件告警
注:我的elk sentinl版本都是6.5.1 前期知识 es的查询语法.es watcher使用方法. https://www.cnblogs.com/pilihaotian/p/5830754. ...
- nagios监控mysql主从状态
看了网上很多mysql主从监控的,大部分都是shell的,就算是python的,也是在python下跑shell语句.我写了一个python的监控脚本,用到了mysqldb这个包.脚本如下: [roo ...
随机推荐
- 刚子扯谈:网站运营在左 技术在右 真TM扯
朋友的书 鄙人的书 2013年8月5日,雨未下,天猴焖 开片语:今天的扯谈内容是我转载我Java学习交流群里面一个哥们,当然我推荐他加入了朋友的网络分析师这个群,我认为那样对他有更大帮助.现在他是XX ...
- thinkphp问题
这几天组里有个php系统报安全漏洞,负责的厂商跑了,没办法,被组长丢过来改漏洞,记录一下部分内容. 配置php的环境 参考https://blog.csdn.net/u011415782/artic ...
- (转)Behavior Tree实践
http://www.cnblogs.com/mavaL/archive/2013/04/07/3001860.html
- [Functional Programming] Async IO Functor
We will see a peculiar example of a pure function. This function contained a side-effect, but we dub ...
- Android之横屏竖屏显示问题
1.採用不同的布局文件 在res下创建目录layout-land 在该目录下写入的layout(xml文件)横屏的时候系统自己主动选择显示的layout 同理: 在res下创建目录layout-por ...
- C++ 生成
1.重新生成,会导致所有cpp文件重新编译,然后连接. 2.使用生成,只会对需要重新编译的cpp文件,进行编译. a.修改cpp文件方法实现,只需要重新编译该cpp文件 b.修改h文件的接口部分,包含 ...
- UNIX网络编程读书笔记:poll函数
poll函数提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息. poll函数原型 #include <poll.h> int poll(struct pollfd * ...
- 算法笔记_128:完美洗牌算法(Java)
目录 1 问题描述 2 解决方案 2.1位置置换算法 2.2 走环算法 1 问题描述 有一个长度为2n的数组{a1,a2,a3,...,an,b1,b2,b3,...,bn},希望排序后变成{a1 ...
- Android-PullToRefresh(一)
先讲下这篇写啥东西,也就是这家伙(chrisbanes)写的一个上拉下拉刷新的Demo,连接https://github.com/fengcunhan/Android-PullToRefresh 东西 ...
- 用css3选择器给你要的第几个元素添加不同样式方法【转发】
下面我们来了解一下css选择器里面的几个 :only-child p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素. 3 :nth-child(n) p:nth- ...