Skip to content
SRE运维进阶之路SRE运维进阶之路
github icon

    4 MySQL监控模块

    author iconClaycalendar icon2021年5月11日category icon
    • 监控
    tag icon
    • Zabbix
    timer icon大约 3 分钟

    此页内容
    • Template DB MySQL简介
      • 应用集
      • 监控项
      • 触发器
      • 图形
      • 聚合图形
    • 实现MySQL模板监控
      • MySQL监控授权
      • 修改zabbix_agent配置文件
      • 重启agent服务
      • zabbix-web设置
    • 修改模板添加主从和连接数监控
      • 主从状态监控
    • 连接数监控

    # 4 MySQL监控模块

    zabbix旧版本可以用,新版本建议用官方模板

    # Template DB MySQL简介

    # 应用集

    MySQL

    # 监控项

    1. MySQL begin operations per second(MySQL每秒开始操作)
    2. MySQL bytes received per second(从所有客户端接收的字节数)
    3. MySQL bytes sent per second(发送到所有客户端的字节数)
    4. MySQL commit operations per second(MySQL每秒提交操作)
    5. MySQL delete operations per second(MySQL每秒删除操作)
    6. MySQL insert operations per second(MySQL每秒插入操作)
    7. MySQL queries per second(MySQL每秒查询)
    8. MySQL rollback operations per second(MySQL每秒回滚操作)
    9. MySQL select operations per second(MySQL每秒选择操作)
    10. MySQL slow queries(MySQL慢查询)
    11. MySQL status(MySQL的存活状态)
    12. MySQL update operations per second(MySQL每秒更新操作)
    13. MySQL uptime(MySQL正常运行时间)
    14. MySQL version(MySQL的版本信息)

    # 触发器

    MySQL is down

    表达式:{Template DB MySQL:mysql.ping.last(0)}=0

    # 图形

    1. MySQL operations(MySQL业务操作)

    1. MySQL bandwidth(MySQL带宽)

    # 聚合图形

    MySQL performance(MySQL性能)

    # 实现MySQL模板监控

    # MySQL监控授权

    配置mysql的客户端,创建一个用户来获取mysql的相关数据,使用mysql账号密码登陆数据库

    > grant all on *.* to monitor@'localhost' identified by 'W***';
    > flush privileges;
    
    1
    2

    # 修改zabbix_agent配置文件

    1. 设置完帐户之后在被监控端新建/etc/zabbix/etc/.my.cnf以提供Zabbix Agent访问数据库,内容类似如下
    #vim /etc/zabbix/etc/.my.cnf
    [mysql]
    host=localhost
    user=monitor
    password=W***
    socket=/var/lib/mysql/mysql.sock
    [mysqladmin]
    host=localhost
    user=monitor
    password=W***
    socket=/var/lib/mysql/mysql.sock
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    • 注意:agent安装路径/etc/zabbix/,etc目录若不存在,需要自已创建,创建.my.cnf,为隐藏文件。W***为mysql的密码。
    1. 修改模板中的mysql路径/etc/zabbix/zabbix_agentd.d,将以下三个目录补全
    #vim userparameter_mysql.conf
    
    1

    # 重启agent服务

    service zabbix_agentd restart
    
    1

    # zabbix-web设置

    # 修改模板添加主从和连接数监控

    # 主从状态监控

    1. 在/opt/monitor目录下添加主从监控脚本

    vim mysql_slave.sh

    #!/usr/bin/env bash
    user='monitor'
    passwd=
    # Seconds_Behind_Master 阈值
    tho=1000
    
    # rs为Yes成功数,sbr为同步时间差
    rs=$(mysql -u"$user" -p"$passwd" -e "show slave status\G;" 2>/dev/null | grep Running | awk '{print $2}' | grep -c Yes)
    sbr=$(mysql -u"$user" -p"$passwd" -e "show slave status\G;" 2>/dev/null | grep Seconds_Behind_Master | awk -F':' '{print $2}')
    
    # 判断主从状态是否正常,0代表正常,1代表异常
    if [ "$rs" -eq 2 -a "$sbr" -le "$tho" ];then
        echo 0
    else
        echo $(date +"%Y-%m-%d %H:%M:%S") "Yes成功数为$rs" "延时时间为$sbr" >> /var/log/zabbix/mysql_slave.log
        echo 1
    fi
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    1. 在zabbix_agentd.conf中添加自定义key

    在etc/zabbix/zabbix_agentd.conf中新加

    UserParameter=mysql.replication,/opt/monitor/mysql_slave.sh
    
    1
    1. 重启agent服务
    service zabbix_agentd restart
    
    1
    1. 在mysql模板中新增监控项,新增触发器,返回值不是0时,报警。
    • 注意:当监控非主从mysql时,把此项监控禁用掉

    # 连接数监控

    1. 在zabbix_agentd.conf中添加自定义key

    在etc/zabbix/zabbix_agentd.conf中新加

    UserParameter=mysql.linknum, ss -an | grep 3306 | grep -c ESTAB
    
    1
    1. 重启agent服务
    service zabbix_agentd restart
    
    1
    1. 添加监控项和触发器
    edit icon编辑此页open in new window
    上次编辑于: 2022/4/27 15:33:00
    贡献者: clay-wangzhi
    备案号:冀ICP备2021007336号
    Copyright © 2023 Clay