一 查看主从状态
二 在zabbix-agent端配置监控脚本
2.1 首先定义监控项
[root@mysql-112 conf]# mysql -uroot -p'LXYlxy2:024.#8u}' -e "show slave status\G" | grep -w Slave_IO_Running | awk '{print $2}'
mysql: [Warning] Using a password on the command line interface can be insecure.
Yes
这里出现要截取字段,还会出现警告 ,忽略报警的做法有以下两种
方法一:参考 优秀文档
方法二:在命令行中直接传递密码会导致密码暴露于命令历史或进程列表中,因此MySQL客户端会发出警告。为了避免这种情况,你可以将密码存储在配置文件中,并使用--defaults-extra-file
选项来指定该配置文件。
1.创建一个MySQL配置文件,比如mysql.cnf,内容如下:
[client]
user=root
password='LXYlxy2:024.#8u}'
2.修改你的命令,使用--defaults-extra-file选项来指定配置文件:
mysql --defaults-extra-file=mysql.cnf -e "show slave status\G" | grep -w Slave_IO_Running | awk '{print $2}'
#!/bin/bash
# 用于检测主从
slave_IO=`mysql --defaults-extra-file=/data/mysql/conf/mysql.cnf -e "show slave status\G" | grep -w Slave_IO_Running | awk '{print $2}'`
slave_SQL=`mysql --defaults-extra-file=/data/mysql/conf/mysql.cnf -e "show slave status\G" | grep -w Slave_SQL_Running | awk '{print $2}'`
if [ $slave_IO == "Yes" -a $slave_SQL == "Yes" ];then
echo 1
else
echo 0
fi
会出现zabbix-get报错,请参考前面几篇报错文章如何解决
其余的参考 优秀文档