Zabbix监控MySQL读写分离

  • A+
所属分类:Zabbix

登录主库,创建监控用户

mysql -uroot -p
CREATE USER 'zb_monitor'@'127.0.0.1' IDENTIFIED BY 'xxx.com';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zb_monitor'@'127.0.0.1';

监控节点压缩zabbix目录并复制到MySQL主和MySQL备节点

tar zcvf zabbix.tar.gz /usr/local/zabbix-6.0.36/ --exclude=/usr/local/zabbix/logs/*
scp zabbix.tar.gz 192.168.18.100:~
scp zabbix.tar.gz 192.168.18.110:~

MySQL主和MySQL备安装zabbix-agent2客户端

tar xvf /root/zabbix.tar.gz -C /usr/local/
ln -s /usr/local/zabbix-6.0.36/ /usr/local/zabbix
vim /usr/local/zabbix/etc/zabbix_agent2.conf
Server=192.168.18.10
ServerActive=192.168.18.10
Hostname=Zabbix mysql

创建用户用授权

useradd -s /sbin/nologin -M zabbix
chown -R zabbix:zabbix /usr/local/zabbix*

配置开机自启动文件

vim /usr/lib/systemd/system/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/usr/local/zabbix/logs/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

开机自启并启动Zabbix-agent2

systemctl daemon-reload
systemctl enable --now zabbix-agent2.service

登录Zabbix Web界面,配置 --> 模板 --> MySQL by Zabbix agent2 --> 宏 --> {$MYSQL.DSN}:tcp://127.0.0.1:3306,{$MYSQL.PASSWORD}:xxx.com,{$MYSQL.USER}:zbx_monitor --> 更新

Zabbix监控MySQL读写分离
Zabbix监控MySQL读写分离

监控MySQL主,检测 --> 主机 --> 创建主机 --> 主机名:zabbix mysql-master,模板:MySQL by Zabbix agent2,群组:Linux servers --> 接口:Agent --> 添加

Zabbix监控MySQL读写分离

监控MySQL备,检测 --> 主机 --> 创建主机 --> 主机名:zabbix mysql-backup,模板:MySQL by Zabbix agent2,群组:Linux servers --> 接口:Agent --> 添加

Zabbix监控MySQL读写分离
Zabbix监控MySQL读写分离

查看MySQL备节点的最新数据

Zabbix监控MySQL读写分离

这里有个数据库告警,缓冲池的利用率太低

Zabbix监控MySQL读写分离

把 /etc/my.cnf 中的 innodb_buffer_pool_size = 128M 降低,重启MySQL就好了

Zabbix监控MySQL读写分离
xxx