nagios系列(七)nagios通过自定义脚本的方式监控mysql主从同步
起因:nagios可能监控到mysql服务的运行情况,但确不能监控mysql的主从复制是否正常:有时候,同步已经停止,但管理人员却不知道。
登陆mysql从服务器,通过执行 mysql> show slave status/G 查看其输出,即可判定主从复制是否正常。下面是某个从服务器的输出:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.8.40
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000008
Read_Master_Log_Pos: 34797869
Relay_Log_File: relay-bin.000003
Relay_Log_Pos: 34797915
Relay_Master_Log_File: mysql-bin.000008
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table: TD_OA.%
Replicate_Wild_Ignore_Table: mysql.%
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 34797869
Relay_Log_Space: 34798311
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
这个输出,最关键处就是"Slave_IO_Running: Yes “和“Slave_SQL_Running: Yes ”,这两个值全是"Yes"就表明主从复制正常,否则就是有问题。
操作步骤:
1、在从数据库服务器增加一个用户,给予较低的权限,操作为
mysql> grant replication client on *.* to 'nagios'@'%' identified by 'nagios';
mysql> flush privileges;
2、登陆主服务器验证一下,看是否正常。操作为
/usr/local/mysql/bin/mysql -h192.168.8.45 -unagios -pnagios -e "show slave status\G"
注意:这个操作是在 shell下操作的
3、在从服务器安装 nrpe,然后在配置文件/usr/local/nagios/etc/nrpe.cfg加入一行
command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave
4、在nagios client端即mysql从服务器编写脚本vim /usr/local/nagios/libexec/check_mysql_slave(这是监控其作用的核心),其内容如下:
#!/bin/sh
declare -a slave_is
slave_is=($(/usr/local/mysql/bin/mysql -unagios -pnagios -e "show slave status\G"|grep Running |awk '{print $2}'))
if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]
then
echo "OK -slave is running"
exit 0
else
echo "Critical -slave is error"
exit 2
fi
chmod +x /usr/local/nagios/libexec/check_mysql_slave
5、手动运行这个脚本,观察输出。
# /usr/local/mysql/bin/mysql -unagios -pnagios -e "show slave status\G"|grep Running |awk '{print $2}'
报错:
ERROR 1045 (28000): Access denied for user 'nagios'@'localhost' (using password: YES)
发现删除系统mysql库中user表自带的一些'::1'等匿名用户,并且对root配置密码后,问题解决
6、nagios服务端执行
# /usr/local/nagios/libexec/check_nrpe -H 192.168.8.45 -c check_mysql_slave
OK -slave is running
7、修改nagios服务端service.cfg文件。
/usr/local/nagios/etc/objects/service.cfg
添加
define service{
use generic-service
host_name node45.chinasoft.com
service_description check_mysql_slave
check_command check_nrpe!check_mysql_slave
}
8、功能测试
转载于:https://www.cnblogs.com/reblue520/p/6239759.html
nagios系列(七)nagios通过自定义脚本的方式监控mysql主从同步相关推荐
- 监控mysql主从复制监控_shell脚本监控mysql主从同步状态
mysql做了主从同步之后,偶尔出现过几次主从同步报错或延迟,由于没有任何监控和报警机制,只有在应用程序报错的时候才能发现数据同步出问题了.所以写了个shell脚本用来检测mysql数据库的同步状态 ...
- zabbix自定义key监控mysql主从同步超简单!
原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值 1.在zabbix客户端配置文件中加入: 首先要对mysql ...
- nagios监控mysql主从
为什么80%的码农都做不了架构师?>>> nagios监控mysql的主从,我这里介绍两种方法,一种是用nagios自带监控mysql 的插件实现,另一种是自己写脚本,下面是两 ...
- 用shell获取mysql主从状态_shell监控MySQL主从状态脚本两则
内容为自己的一点总结,如有不对欢迎狠劲儿拍砖 本文来自http://yijiu.blog.51cto.com/转载请经博主同意 监控主从复制正常与否 相比各位都应该知道,监控主从是否工作正常,涉及命令 ...
- 监控mysql的shell脚本_监控MySQL主从状态的shell脚本
分享一个Linux下,监控MySQL主从状态及配合企业微信机器人报警的Shell脚本 SLAVE_IP:为监控的主机IP USER:为msyql用户 PASSWORD:为mysql密码 WHEREIS ...
- shell脚本修复MySQL主从同步
shell脚本修复MySQL主从同步 发布:thebaby 来源:net [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改my ...
- mysql主从同步监控小脚本(加强版)
mysql主从同步监控小脚本(加强版): 新版本脚本增加了"当发现同步出现无法同步的时候"会自动提取主库的file号,以及pos,进行同步主库,脚本内容如下: #!/bin/sh ...
- mysql运行状态监控研究内容_如何监控mysql主从的运行状态shell脚本实例介绍
如何监控mysql主从的运行状态shell脚本实例介绍. #!/bin/bash #define mysql variable mysql_user="root" mysql_pa ...
- linux 监控mysql脚本_Linux系统MySQL主从同步监控shell脚本
操作系统:CentOS系统 目的:定时监控MySQL数据库主从是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态 1.创建脚本文件 vi /home/crontab/check_mysq ...
最新文章
- 算法设计与分析第2章 递归与分治策略
- Apache防DDOS模块mod_evasive的安装配置和使用
- ProjectEuler500 【组合数学】【数论】
- 购物中心潮--我的创业之路
- QueryList4采集-图片本地化
- kindeditor图片批量上传失败问题
- 企业治理的要诀(学习总结)
- python model如何获取分类错误的数据_如何用python获取美股数据?
- Nginx负载均衡与Tomcat使用Redis共享session配置
- netstat 的10个基本用法
- html注册登录模板
- YOLO算法之YOLOv2精讲
- OPENWRT修改网卡MAC地址
- 死锁的预防、避免、检测、解除
- 东方国信(实习一面)
- python正则表达式是什么意思_理解python正则表达式
- 数据通信与网络:CH10 Error Detection and Correction
- pytorch(2)Tensor创建和获取tensor的size信息、torch.dtype、torch.device、torch.layout
- 多线程--优先队列PriorityBlockingQueue
- matplotlib 的 marker 颜色更改