首先需要拥有zabbix环境及MySQL主从环境
搭建zabbix环境可参考:https://www.cnblogs.com/tyk3201/p/12033456.html
需要用到三台虚拟机
一:192.168.238.141 zabbix-server
二:192.168.238.142 zabbix-agent mysql主
三:192.168.238.143 mysql从
142:操作
配置CentOS 7 zabbix源
rpm -ivh http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
安装zabbix-agent
yum -y install zabbix-agent
修改zabbix-agent配置文件
vim /etc/zabbix/zabbix_agentd.conf:
修改内容如下
Server=192.168.238.141 #zabbix-server.ip ServerActive=192.168.238.141 #zabbix-server.ip
关闭防火墙启动服务
systemtl stop firewalld
setenforce 0
systemctl start zabbix-agent
监控服务
监控MySQL是否存活
判断MySQL是否存在:
mysqladmin ping
存在则输出
mysqld is alive
将MySQL admin ping定义为自定义监控参数
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf:
增加内容如下
UserParameter=mysql.ping,mysqladmin ping | grep -c alive #输出值为1
可注释其他内容或者都删除
在zabbix-server端测试监控指令是否可达
安装zabbix-get检测
yum -y install zabbix-get zabbix_get -s 192.168.238.142 -k mysql.ping #若返回为1则成功
添加MySQL是否存活监控项
- one创建主机群组-组名为MySQL
- two创建主机
- three增加监控项
- four创建触发器进行异常报警
- five增加图形
- finish查看图形
监控MySQL主从
主从配置成功后为:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
在从上编写检测MySQL主从脚本:
cd /etc/zabbix/
mkdir scripts
cd scripts
vim mysql.sh:
内容如下:
case $1 in slave) mysql -e "show slave statusG"|egrep -w "Running|Yes"|awk ‘{print $2}‘|wc -l #采用精确匹配判断是否为2个YES ;; esac
为编写的脚本定义为自定义监控参数
vim /etc/zabbix/zabbix-agentd.d/userparameter_mysql.conf:
添加如下内容:
UserParameter=mysql.status[*],sudo /etc/zabbix/scripts/mysql.sh $1 #当监控参数mysql.status传入参数后 会自动匹配执行mysql.sh visudo: 添加 zabbix ALL=(ALL) NOPASSWD: ALL #为zabbix用户增加所有权限且在切换到root用户是无需输入密码
检测监控参数是否正确
在zabbix-server端
zabbix_get -s 192.168.238.142 -k mysql.status[slave] #若有返回值则证明成功
添加MySQL主从监控
- one创建mysql主从监控项
- two创建基于mysql主从监控的触发器
- three添加状态图
- finish