详解:Zabbix 监控 MySQL 数据库的关键模板(主从同步、连接数)配置

Zabbix 监控 MySQL 数据库的关键模板配置详解

以下针对 主从同步连接数 两大核心场景,分步骤说明配置流程(基于 Zabbix 5.0+ 和 MySQL 8.0+):


一、基础环境准备
  1. Zabbix Agent 配置

    • 在 MySQL 服务器安装 Zabbix Agent
    • 修改 Agent 配置文件(zabbix_agentd.conf):
      UserParameter=mysql[*], mysql -h 127.0.0.1 -u zabbix -pPASSWORD -e "$1" 2>/dev/null | awk 'NR>1'
      

      注:zabbix 需替换为监控专用账户,PASSWORD 替换为实际密码

  2. MySQL 监控账户授权

    CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'StrongPassword!';
    GRANT REPLICATION CLIENT, PROCESS, SHOW DATABASES ON *.* TO 'zabbix'@'localhost';
    FLUSH PRIVILEGES;
    


二、主从同步监控配置

核心指标Slave_IO_RunningSlave_SQL_RunningSeconds_Behind_Master

  1. 创建监控项(Items)

    键值 (Key)说明
    mysql["SHOW SLAVE STATUS"]获取主从状态全量信息
  2. 数据预处理(Preprocessing)

    • 步骤 1:JSONPath 提取
      $.Slave_IO_Running
      $.Slave_SQL_Running
      $.Seconds_Behind_Master
      

    • 步骤 2:布尔值转换(针对 *_Running 字段)
      Yes1No0
  3. 触发器(Triggers)设计

    # 从库复制中断
    {host:mysql["SHOW SLAVE STATUS"].Slave_IO_Running.last()} = 0 
      OR 
    {host:mysql["SHOW SLAVE STATUS"].Slave_SQL_Running.last()} = 0
    
    # 主从延迟过高(>300秒)
    {host:mysql["SHOW SLAVE STATUS"].Seconds_Behind_Master.last()} > 300
    


三、连接数监控配置

核心指标Threads_connected(当前连接数)、max_connections(最大连接数)

  1. 监控项键值

    键值 (Key)说明
    mysql["SHOW STATUS LIKE 'Threads_connected'"]当前连接数
    mysql["SHOW VARIABLES LIKE 'max_connections'"]最大允许连接数
  2. 连接率计算公式
    连接率 $R$ 定义为:
    $$ R = \frac{\text{Threads_connected}}{\text{max_connections}} \times 100% $$
    在 Zabbix 中通过 Calculated Item 实现:

    (last("mysql[Threads_connected]") / last("mysql[max_connections]")) * 100
    

  3. 关键触发器

    # 连接数超过90%容量
    {host:mysql_connection_ratio.last()} > 90
    
    # 连接数异常激增(1分钟内增长>50)
    change(/host/mysql["Threads_connected"],1m) > 50
    


四、模板导入与验证
  1. 模板文件

  2. 链路测试

    zabbix_agentd -t "mysql[SHOW SLAVE STATUS]"
    # 预期返回:Slave_IO_Running:Yes Slave_SQL_Running:Yes ...
    

  3. 监控效果

    • 主从状态仪表盘:
    • 连接数趋势图
      graph LR
      A[当前连接数] --> B[阈值告警区]
      C[最大连接数] -.-> D[安全缓冲区]
      


五、故障排查要点
  1. 权限问题:确保 zabbix 账户有 REPLICATION CLIENT 权限
  2. 超时处理:在 Item 的 Timeout 设置 >10s(避免网络延迟)
  3. 安全建议
    • 使用 TLS 加密 Agent 与 MySQL 的通信
    • 通过 Proxy 代理访问生产环境数据库

最终效果:当主从复制中断或连接数暴增时,Zabbix 将在 10 秒内触发告警并推送至钉钉/邮件。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值