Zabbix监控案例(八)MySQL监控

本文介绍如何配置MySQL的主从复制,并通过Zabbix实现对数据库复制状态的监控。包括安装配置、脚本编写及监控项设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zabbix监控案例(八)MySQL监控

原本有一个数据库,现配置数据库主从复制。原本的数据库为主服务器,新装的数据库为从服务器。

  • 从数据库上
  1. 在从服务器上安装数据库
    ubuntu
apt update
apt install mysql-server-5.7 mysql-client-5.7

CentOS

yum install mariadb mariadb-server
  • 主数据库上
  1. 主服务器上,数据库配置开启log-bin
server-id=10
log-bin
  1. 重启服务
systemctl restart mariadb
  1. 授权复制帐号
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%' IDENTIFIED BY '123456'; 
  1. 导出现有的数据库
mysql -uroot -hlocalhost -A > all.sql
  • 从数据库上
  1. 从数据库设置server-id,
vim /etc/mysql/mysql.conf.d/mysql.cnf
server-id=10
  1. 重启服务,并导入数据
systemctl restart mysql
mysql -uroot < all.sql
  1. 进入数据库,配置主从
CHANGE MASTER TO MASTER_HOST='192.168.99.21',MASTER_USER='repluser',MASTER_PASSWORD='123456',MASTER_LOG_FILE='master-log.000001',MASTER_LOG_POS=9525112;

start slave;
  1. 查看状态
show slave status \G;

在这里插入图片描述

  1. 下载监控插件
    https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/
    在这里插入图片描述

  2. 安装

dpkg -i percona-zabbix-templates_1.1.8-1.artful.all.deb
add-apt-repository ppa:ondrej/php
apt-get update
apt install php5.6 php-mysql
  1. 在从服务器上,安装zabbix-agent,准备监控从数据库
dpkg -i zabbix-release_4.0-3+bionic_all.deb
apt update
apt install zabbix-agent
  1. 配置agent
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.99.21
ServerActive=192.168.99.21
Hostname=192.168.99.24
  1. 复制监控的配置到agent配置目录下
cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
  1. 编辑配置文件
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
   <?php  
...
   $mysql_user='root';
   $mysql_pass='123';

如果数据库没有设置密码就留空

  1. 重启服务
systemctl restart zabbix-agent
  1. zabbix server端上添加主机
    在这里插入图片描述

  2. 本地测试

/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg

在这里插入图片描述

这个脚本中主要执行的是这个命令(图中划线),–host后面跟的是数据库的ip.
这个脚本执行结果会返回一个数字,如果没有则检查数据库能否连通
在这里插入图片描述
在这里插入图片描述

  1. zabbix服务端测试
zabbix_get -s 192.168.99.24 -p 10050 -k "MySQL.Key-read-requests"

在这里插入图片描述

  1. 导入模板(下载模板)
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 关联模板
    在这里插入图片描述

  2. 稍等一会,查看数据
    在这里插入图片描述

  3. 有数据了
    在这里插入图片描述
    如何解决这些问题

cannot convert value to numeric type
#
Value "sudo: no tty present and no askpass program specified0" of type "string" is not suitable for value type "Numeric (float)"
#
Value "rm: cannot remove '/tmp/127.0.0.1-mysql_cacti_stats.txt': Operation not permitted0" of type "string" is not suitable for value type "Numeric (float)"

在这里插入图片描述

授权给zabbix用户root权限

# vim /etc/sudoers
zabbix ALL =(ALL) NOPASSWD: ALL

修改脚本,在31行的rm前加sudo

vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh

在这里插入图片描述

再看看监控项是否启用
在这里插入图片描述

监控主从复制状态

  1. 准备脚本
touch mysql_monitor.sh
chmod +x mysql_monitor.sh
vim mysql_monitor.sh
#!/bin/bash

DBHOST="127.0.0.1"
DBUser="root"
DBPass="123"

Seconds_Behind_Master(){
	NUM=`mysql -u${DBUser} -p${DBPass} -h${DBHOST}   -e "show slave status\G;" 2> /dev/null | grep "Seconds_Behind_Master:" | awk -F: '{print $2}'`
	echo $NUM
}

master_slave_check(){
NUM1=`mysql -u${DBUser} -p${DBPass} -h${DBHOST} -e "show slave status\G;" 2> /dev/null | grep "Slave_IO_Running" | awk -F:  '{print $2}' | sed 's/^[ \t]*//g'`
#echo $NUM1
NUM2=`mysql -u${DBUser} -p${DBPass} -h${DBHOST} -e "show slave status\G;" 2> /dev/null | grep "Slave_SQL_Running:" | awk -F:  '{print $2}' | sed 's/^[ \t]*//g'`
#echo $NUM2
if test $NUM1 == "Yes" &&  test $NUM2 == "Yes";then
    echo 1
else
    echo 0
fi
}

main(){
    case $1 in
    Seconds_Behind_Master)
        Seconds_Behind_Master;
        ;;
	master_slave_check)
	   master_slave_check
	   ;;
    esac
}
main $1

注意修改你的数据库连接的信息

  1. 添加配置,也可以在主配置文件里
# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql_monitor[*],/etc/zabbix/zabbix_agentd.d/mysql_monitor.sh "$1"
  1. 重启agent
systemctl restart zabbix-agent.service
  1. server端测试
zabbix_get -s 192.168.99.24 -p 10050 -k "mysql_monitor[master_slave_check]"

Warning忽略即可
在这里插入图片描述

  1. 在主机添加监控项
    在这里插入图片描述

  2. 验证数据
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十三y

你的鼓励就是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值