zabbix 监控
1.监控mysql主从复制
1.1 监控前配置
Mysql主从配置,zabbix_agent,在zabbix_server端已添加监控主机
1.2 在mysql slave端(Zabbix_agent)编写脚本
[root@mysql02 zabbix-3.4.8]# mkdir /app/zabbix_agent/scripts/ -p
[root@mysql02 zabbix-3.4.8]# cd /app/zabbix_agent/scripts/
[root@mysql02 scripts]# cat mysql_slave.sh
#!/bin/bash
MYSQL_PD="123"
MYSQLCMD="mysql -uroot -p${MYSQL_PD}"
Slave_IO_Running=`${MYSQLCMD} -e "show slave status\G;" 2>/dev/null|grep 'Slave_IO_Running'|awk '{print $2}'`
Slave_SQL_Running=`${MYSQLCMD} -e "show slave status\G;" 2>/dev/null|grep 'Slave_SQL_Running'|awk '{print $2}'`
Seconds_Behind_Master=`${MYSQLCMD} -e "show slave status\G;" 2>/dev/null|grep 'Seconds_Behind_Master'|awk '{print $2}'`
if [[ "${Slave_IO_Running}" = "Yes" || "${Slave_SQL_Running}" = "Yes" || ${Seconds_Behind_Master} = 0 ]];then
echo 0
else
echo 1
fi
[root@mysql02 scripts]# sh mysql_slave.sh
0
[root@mysql02 scripts]# chmod +x mysql_slave.sh
1.3 修改zabbix_agent配置文件,添加脚本
[root@mysql02 etc]# pwd
/usr/local/zabbix/etc
[root@mysql02 etc]# vi zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=check_mysql_slave,/bin/bash /app/zabbix_agent/scripts/mysql_slave.sh
#添加以上内容
[root@mysql02 etc]# /etc/init.d/zabbix_agentd restart
1.4 在zabbix_server端测试
[root@lanmp bin]# pwd
/usr/local/zabbix/bin
[root@lanmp bin]# ./zabbix_get -s 192.168.1.182 -k ‘check_mysql_slave’
0
1.5 创建监控项
#键值使用的是zabbix_agent端配置文件的UserParameter=check_mysql_slave
1.6 创建触发器
#选择监控项
1.7 关闭mysql_slave,查看告警邮件
2.创建自定义监控模板
2.1 创建mysql服务器状态模板
2.1.1 在mysql server端添加键值,编写监控脚本
[root@mysql02 scripts]# cat mysql_status.sh
#!/bin/bash
mysql_status=netstat -ntlp|grep 3306|wc -l
echo ${mysql_status}
[root@mysql02 scripts]# chmod +x mysql_status.sh
[root@mysql02 scripts]# sh mysql_status.sh
1
[root@mysql02 etc]# vi zabbix_agentd.conf
UserParameter=mysql_server_status,/bin/bash /app/zabbix_agent/scripts/mysql_status.sh
[root@mysql02 scripts]# chmod +s /bin/netstat
2.1.2 在zabbix_server端测试
[root@lanmp bin]# ./zabbix_get -s 192.168.1.182 -k ‘mysql_server_status’
1
2.1.3 创建模板
2.1.4 添加监控项
2.1.5 创建触发器