使用Zabbix监控服务器的时候,用到了监控Mysql的主从状态,有关Mysql主从配置请看这篇文章:[备忘]mysql Master Slave主从同步(复制)配置及常见问题。
我们知道,Mysql主从复制同步(复制)启动后,要满足以下两个条件才算是成功,即:
Slave_IO_Running: Yes Slave_SQL_Running: Yes
脚本一
新建一个脚本文件,mysqlms.sh
#!/bin/bash /usr/local/mysql/bin/mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
将其放置到某目录(需要有权限),我这里放到/etc/zabbix/mysqlms.sh,在zabbix_agentd.conf中下方加入以下一条语句:
UserParameter=mysql.slavestatus,/etc/zabbix/mysqlms.sh
重启zabbix-agent:
sudo service zabbix-agent restart
截下来在Zabbix-Server所在服务器执行以下语句,测试是否成功:
zabbix_get -s 192.168.1.106 -k mysql.slavestatus
其中192.168.1.106为刚刚脚本所在服务器,mysql.slavestatus为Key值。若返回2,则表示主从服务正常。
然后将该监控项在web平台测加入items,设置好报警通知即可。
(如何加入ietms请查看这篇文章最下方:Zabbix服务器监控系统部署之自定义监控项的添加及配置(二))
脚本二
新建脚本mysqlms2.py
#!/usr/bin/python #coding:utf-8 import MySQLdb import sys class check_gz_repl(): def __init__(self): self.dbhost = 'localhost' self.dbuser = 'root' self.dbpass = 'wisp888' self.dbport = 3306 self.sock = "/data/db_misc/gz_3306.sock" self.conn = MySQLdb.connect(unix_socket=self.sock) #根据实际情况连接 self.cursor = self.conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) self.sql = 'show slave status' self.cursor.execute(self.sql) self.data = self.cursor.fetchall() self.io = self.data[0]['Slave_IO_Running'] self.sql = self.data[0]['Slave_SQL_Running'] self.conn.close() def get_io_status(self): if self.io == 'Yes': return 1 else: return 0 def get_sql_status(self): if self.io == 'Yes': return 1 else: return 0 if __name__ == "__main__": if len(sys.argv) != 2: print "Usage: %s [io|sql]" % sys.argv[0] sys.exit(1) mysql = check_gz_repl() if sys.argv[1] == "io": print mysql.get_io_status() elif sys.argv[1] == "sql": print mysql.get_sql_status()
(该脚本来自网络)
打开编辑文件
vi /etc/zabbix/zabbix_agentd.conf
下方加入以下内容:
UserParameter=mysql.repl_io,/etc/zabbix/mysqlms2.py io UserParameter=mysql.repl_sql,/etc/zabbix/mysqlms2.py sql
其他设置同脚本一。
完。
看到沙发还在我就进来了 = = 公子的内容越来越技术了吗~
@小灰 最近折腾这块儿比较多,业余高技术~ :mrgreen:
@小灰 纯粹瞎折腾的份儿~
@小灰
挤灰狼。。。不过岚女要坐 公子的大腿,哈哈哈哈
公子最近几篇我都看不懂~~哈哈路线不一样,我只有纯围观的份了。
@朵未 唉,瞎折腾加个记录了。。。
洃少前来光顾,求个友链。
我都是直接备份到FTP
@空空裤兜 不失为好方法一个。。。
传说中的技术宅拯救世界?
@战神娱乐场 。。。一看就知道我是业余的。。。
博主你好,我在博客里加了一个“独立博客大全”的版块,有时间过来看看,如果没有添加你的,通知我一声,无条件收录!
折腾VPS开了?最近都在写运维的文章~
虚空公子你好
不懂脚本啊
菜鸟一枚
代码太高深,看不懂啊
:mrgreen: 技术看不懂
没看懂的说
虽然不懂,但值得学习!
这可是技术帖,菜鸟飞过!
@歪扑猫 随便看看就罢鸟。。。