评论

收藏

[MySQL] Zabbix监控mysql配置及故障告警配置

数据库 数据库 发布于:2021-07-03 21:37 | 阅读数:463 | 评论:0

本文主要介绍zabbix监控mysql的配置,包含使用zabbix自带模板监控mysql相关信息及自定义key监控mysql同步情况。同时介绍了触发器的创建及zabbix通过邮件方式告警配置。


一、配置自带模板监控mysql
1.提供配置文件模板
文件位置在源码包/usr/local/src/zabbix-3.0.4/conf/zabbix_agentd/userparameter_mysql.conf
#cp/usr/local/src/zabbix-3.0.4/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d
2.修改模板文件
#sed -i 's@/var/lib/zabbix@/usr/local/zabbix/etc@g' /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
修改后的文件
UserParameter=mysql.status
  • ,echo"show global status where Variable_name='$1';" |HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql -N | awk '{print $$2}'
    UserParameter=mysql.size
  • ,bash-c 'echo "select sum($(case "$3" in both|"") echo"data_length+index_length";; data|index) echo "$3_length";;free) echo "data_free";; esac)) from information_schema.tables$([["$1" = "all" || ! "$1" ]] || echo " wheretable_schema=\"$1\"")$([[ "$2" = "all" || !"$2" ]] || echo "and table_name=\"$2\"");" |HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql -N'

    UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc/usr/local/mysql/bin/mysqladmin ping | grep -c alive
    UserParameter=mysql.version,/usr/local/mysql/bin/mysql-V
    3.提供agent连数据库的文件
    #vi /usr/local/zabbix/etc/.my.cnf
    [mysql]
    host=localhost
    user=zabbixagent
    password=123456
    socket=/tmp/mysql.sock
    [mysqladmin]
    host=localhost
    user=zabbixagent
    password=123456
    socket=/tmp/mysql.sock
    4.创建授权账号
    mysql> GRANT USAGE,PROCESS,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'zabbixagent'@'localhost' IDENTIFIED BY '123456';
    mysql> flush privileges;
    5.修改zabbix_agentd.conf
    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
    重启服务
    6.在web界面关联mysql模板
    DSC0000.png

    7.最终效果
    DSC0001.png

    二、自定义key监控slave
    1.提供监控slave的配置文件
    #cat/usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_slave.conf
    UserParameter=mysql.slave.Seconds_Behind_Master,echo"show slave status\G"| HOME=/usr/local/zabbix/etc/usr/local/mysql/bin/mysql |grep "Seconds_Behind_Master"|awk '{print$2}'
    UserParameter=mysql.slave.Slave_IO_Running,echo"show slave status\G"| HOME=/usr/local/zabbix/etc/usr/local/mysql/bin/mysql |grep "Slave_IO_Running"|awk '{print $2}'
    UserParameter=mysql.slave.Slave_SQL_Running,echo"show slave status\G"|HOME=/usr/local/zabbix/etc/usr/local/mysql/bin/mysql |grep "\<Slave_SQL_Running\>"|awk'{print $2}'
    2.重启agent服务
    # servicezabbix_agentd restart
    3.命令测试key获取的值
    #/usr/local/zabbix/bin/zabbix_get -s 192.168.1.16 -k"mysql.slave.Seconds_Behind_Master"
    #/usr/local/zabbix/bin/zabbix_get -s 192.168.1.16 -k"mysql.slave.Slave_IO_Running"
    #/usr/local/zabbix/bin/zabbix_get -s 192.168.1.16 -k"mysql.slave.Slave_SQL_Running"
    以上命令均返回正常值说明自定义key成功
    4.在web界面配置监控项
    创建slave延迟items
    DSC0002.png

      创建slave io线程items
    DSC0003.png

      创建slave sql线程items
    DSC0004.png

    三、主从同步延迟报警配置
    1.定义触发器
    创建主从延迟触发器
    DSC0005.png

      2.定义action
    DSC0006.png

    DSC0007.png

    DSC0008.png

      3.定义邮件发送用户
      修改报警媒介类型的邮件服务器地址
      
    DSC0009.png

      用户关联到报警媒介并设置邮件账号
    DSC00010.png

    DSC00011.png

      查看邮件

    DSC00012.png

      邮件具体内容
    DSC00013.png

    四、主从同步状态报警配置
    1.创建主从同步状态触发器
    定义io thread状态
    DSC00014.png

    DSC00015.png

      定义sql thread状态
    DSC00016.png

    2.测试
    在slave上分别停止io线程和sql线程
    模拟停止io线程
    mysql> stop slaveio_thread;
    DSC00017.png

      同时告警邮件发出
    DSC00018.png

    恢复io线程
    mysql> startslave io_thread;
    故障恢复通知邮件
    DSC00019.png

    模拟停止sql线程
    mysql> stop slavesql_thread;
    DSC00020.png

      同时告警邮件发出
    DSC00021.png

    恢复sql线程
    mysql> startslave sql_thread;
    DSC00022.png

      故障恢复通知邮件
    DSC00023.png

      


      
  • 关注下面的标签,发现更多相似文章