监控mysql同步,修改DNS解析

#!/usr/bin/env python

import time,MySQLdb

from subprocess import Popen

from subprocess import PIPE

import dns.query

import dns.message

import dns.tsig

import dns.tsigkeyring

import dns.update

def set_dns(ip_list):

key=dns.tsigkeyring.from_text({"cui.com":"SIvcwHj3goqYl0vKS6yOtdugxIaqtwPE43LpB6p9QFpbRmY+ekPrscHz je1hla5RBrB1R1DBnzu9AzT9fVEtfw=="})

up=dns.update.Update("cui.com",keyring=key)

rl=[dns.rdata.from_text(dns.rdataclass.IN,dns.rdatatype.A,i) for i in ip_list]

rs=dns.rdataset.from_rdata_list(60,rl)

up.replace("s.db",rs)

dns.query.tcp(up,‘127.0.0.1‘)

def getSlaveMsg(host,port,user,passwd,cmd):

command="mysql -h %s -P %s -u %s -p%s -e ‘%s‘ "%(host,port,user,passwd,cmd)

p=Popen(command,shell=True,stdout=PIPE)

return p.stdout.readlines()

def getstatus(iostr,sqlstr,secstr,result):

resultdict={}

for i in result:

if iostr in i:

resultdict[iostr]=i.split(":")[1].split("\n")[0].strip()

elif sqlstr in i:

resultdict[sqlstr]=i.split(":")[1].split("\n")[0].strip()

elif secstr in i:

if not i.split(":")[1].split("\n")[0].strip()=="NULL":

resultdict[secstr]=int(i.split(":")[1].split("\n")[0].strip())

else:

resultdict[secstr]=None

else:

pass

return resultdict

def main(iostr,sqlstr,secstr,cmd,**slave_msg):

repl_msg={}

slave_status={}

ip_list=[]

for i in slave_msg.keys():

host=slave_msg[i][0]

port=slave_msg[i][1]

user=slave_msg[i][2]

passwd=slave_msg[i][3]

result=getSlaveMsg(host,port,user,passwd,cmd)

dic_result=getstatus(iostr,sqlstr,secstr,result)

repl_msg[i]=[host,dic_result]

for i in repl_msg.keys():

if repl_msg[i][1][iostr] == "Yes" and repl_msg[i][1][sqlstr] == "Yes":

slave_status[i]=True

elif repl_msg[i][1][secstr] and repl_msg[i][1][secstr] < 2:

slave_status[i]=True

else:

slave_status[i]=False

for i in slave_status.keys():

if slave_status[i]:

ip_list.append(repl_msg[i][0])

status_proportion=float(slave_status.values().count(True))/float(len(slave_status.values()))

if status_proportion > 0.6:

set_dns(ip_list)

else:

pass

return slave_status,ip_list

if __name__ =="__main__":

iostr,sqlstr,secstr,cmd=["Slave_IO_Running","Slave_SQL_Running","Seconds_Behind_Master","show slave status\\G"]

slave_msg={"hostname":["ipaddress",port,"user","passwd"],

"hostname":["ipaddress",port,"user","passwd"],

"hostname":["ipaddress",port,"user","passwd"],

}

repl_msg=main(iostr,sqlstr,secstr,cmd,**slave_msg)

print repl_msg

监控mysql同步,修改DNS解析

时间: 2024-10-17 18:30:47

监控mysql同步,修改DNS解析的相关文章

http/https监控获取响应时间(DNS解析时间,RRT时间,服务器处理时间等)

有时候为了测试网络情况,需要返回每个阶段的耗时时间,比如DNS解析耗时,建立连接所消耗的时间,从建立连接到准备传输所使用的时间,从建立连接到传输开始所使用的时间,整个过程耗时,下载的数据量,下载速度,上传数据量,上传速度等等 有时候为了测试网络情况,需要返回每个阶段的耗时时间,比如DNS解析耗时,建立连接所消耗的时间,从建立连接到准备传输所使用的时间,从建立连接到传输开始所使用的时间,整个过程耗时,下载的数据量,下载速度,上传数据量,上传速度等等.下面的脚本获取以上信息: CURL的资料参见:

关于MySQL DNS解析探究之一:DNS解析确实在起作用

机器A --> 192.168.103.94  -- 服务器 机器B --> 192.168.4.2        -- 客户端 机器A => 装上mysql-server,启动: 使用root用户登录,查看DNS解析是否开启,执行如下命令: mysql> show variables like 'skip_name_resolve%'; +-------------------+-------+ | Variable_name     | Value | +-----------

Zabbix监控mysql配置及故障告警配置

本文主要介绍zabbix监控mysql的配置,包含使用zabbix自带模板监控mysql相关信息及自定义key监控mysql同步情况.同时介绍了触发器的创建及zabbix通过邮件方式告警配置. 一.配置自带模板监控mysql 1.提供配置文件模板 文件位置在源码包/usr/local/src/zabbix-3.0.4/conf/zabbix_agentd/userparameter_mysql.conf #cp/usr/local/src/zabbix-3.0.4/conf/zabbix_age

域名无法解析 Linux临时或永久修改DNS

最近给VPS重装了系统,因为服务商不提供DHCP,所以只好手动设置IP和DNS Server.悲催的是系统重装的时候忘记了输入DNS Server,最后导致进去系统后,各种域名无法解析. Linux中修改DNS有两种方式,临时修改和永久修改,下面分别介绍. 1.临时修改网卡DNS地址 sudo vim /etc/resolv.conf 改为如下内容: nameserver 8.8.8.8 #修改成你的主DNS nameserver 8.8.4.4 #修改成你的备用DNS search local

监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员

阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),请跳过错误 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) [[email protected] ~]# mysql -u root -proot -e "show slave status\G;" *************************** 1. row ***************************       

监控MySQL主从同步

脚本监控数据库主从同步 来源:http://oldboy.blog.51cto.com/2561410/1632876 来源: (生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟: 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分 [[em

【转】一个域名是用哪里的DNS来解析的,电脑怎么知道找哪一个DNS呢? 我注册域名的时候会在服务商那里配置DNS解析,一般需要24小时后才能访问,我想知道,解析后的这个数据是不是会同步到世界上所有的DNS服务器呢!如果不是,当我访问我的这个域名的时候,电脑怎么知道去找到我注册的这一家的DNS服务器呢,谁告诉他的呢?

看看DNS一些基础知识,你就了解了.1.DNS就是域名服务器,他的任务就是确定域名的解析,比如A记录MX记录等等. 2.任何域名都至少有一个DNS,一般是2个.为什么要2个以上呢?因为DNS可以轮回处理,第一个解析失败可以找第二个.这样只要有一个DNS解析正常,就不会影响域名的正常使用. 3.如何确定域名的DNS?很简单到http://www.internic.net/whois.html输入你要查询的域名就可以看到了.这个是国际域名管理中心.唯一的权威.只要这里能查到某个域名,就表示域名是生效

监控MySQL主从同步是否异常并报警企业案例模拟

企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒实现检测一次.阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误.阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) 此题来自:http://oldboy.blog.51cto.com/2561410/1632876 解答参考1: #!/bin

DNS解析污染原理——要么修改包,要么直接丢弃你的网络包

DNS/域名解析 可以看到dns解析是最初的一步,也是最重要的一步.比如访问亲友,要知道他的正确的住址,才能正确地上门拜访. dns有两种协议,一种是UDP(默认),一种是TCP. udp 方式,先回应的数据包被当做有效数据 在linux下可以用dig来检测dns.国内的DNS服务器通常不会返回正常的结果.下面以google的8.8.8.8 dns服务器来做测试,并用wireshark来抓包,分析结果. 1 dig @8.8.8.8 www.youtube.com dns-udp-youtube