【企业级监控】Zabbix监控MySQL主从复制

Zabbix自定义监控项与触发器

资源列表

操作系统配置主机名IP
CentOS 7.92C4Gzbx192.168.93.101
CentOS 7.92C4Gserver01192.168.93.102
CentOS 7.92C4Gserver02192.168.93.103

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config

前言

  • 当我们需要获取某台主机上的数据时,直接利用zabbix提供的模板可以很方便的获得需要的数据,但是有些特别的数据,利用这些现有模板或监控项是无法实现的,例如网站状态信息的监控、mysql数据库主从状态等信息 。这时就需要自己定义键值和监控项,以满足企业对检测数据的需要。

四、监控MySQL主从复制

4.1、部署mysql主从复制

4.1.1、在两台主机(102和103上安装)
yum -y install mariadb-server mysql
4.1.2、主机102当master
[root@server01 ~]# vim /etc/my.cnf
[mysqld]
server-id=11
log-bin=master-bin
[root@server01 ~]# systemctl start mariadb.service
[root@server01 ~]# systemctl enable mariadb.service
[root@server01 ~]# mysqladmin -uroot password 'pwd123'
[root@server01 ~]# mysql -u root -ppwd123
MariaDB [(none)]> grant replication slave on *.* to root@'%' identified by 'pwd123';
MariaDB [(none)]> show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000003 |      523 |              |                  |
+-------------------+----------+--------------+------------------+
4.1.3、主机103当slave
[root@server02 ~]# vim /etc/my.cnf
[mysqld]
server-id=22
[root@server02 ~]# systemctl start mariadb.service 
[root@server02 ~]# systemctl enable mariadb.service
[root@server02 ~]# mysqladmin -uroot password 'pwd123'
# IP和偏移量改为自己在master节点查到的
[root@server02 ~]# mysql -u root -ppwd123
MariaDB [(none)]> change master to master_host='192.168.93.102',master_user='root',master_password='pwd123',master_log_file='master-bin.000003',master_log_pos=523;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.93.102
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000003
          Read_Master_Log_Pos: 523
               Relay_Log_File: mariadb-relay-bin.000002
                Relay_Log_Pos: 530
        Relay_Master_Log_File: master-bin.000003
#####################################################################
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
#####################################################################
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 523
              Relay_Log_Space: 826
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 11
1 row in set (0.00 sec)

4.2、MySQL-slave端开启自定义Key值并设置

[root@server02 ~]# vim /etc/zabbix/zabbix_agentd.conf 
# 默认352行,进行修改
UnsafeUserParameters=0
# 默认361行,取消注释进行修改
UserParameter=mysql.slave[*],/etc/zabbix/mysql-slave.sh
# 备注
UnsafeUserParameters=1:启用自定义Key功能
UserParameter:指定脚本
mysql.slave:为Key值名称。[*]里面写脚本参数,没有可以不写。/etc/zabbix/mysql-slave.sh路径为脚本所在路径。

4.3、编写脚本获取数据

[root@server02 ~]# vim /etc/zabbix/mysql-slave.sh
#!/bin/bash 
/usr/bin/mysql -uroot -ppwd123 -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
[root@server02 ~]# chmod +x /etc/zabbix/mysql-slave.sh 
[root@server02 ~]# systemctl restart zabbix-agent.service

4.4、Zabbix_get测试

[root@zbx ~]# zabbix_get -s 192.168.93.103 -k mysql.slave[*]
2

# 回显结果解释
Slave_IO_Runningt 和 Slave_SQL_Running返回的yes值加一起就为2了

4.5、添加监控模板

  • “数据采集”——>“模板”,再点击“创建模板”按钮,进行创建模板操作
    在这里插入图片描述

4.6、为模板添加监控项

  • “数据采集”——>“模板”,点击刚才创建的模板,为此模板添加“监控项”信息,名称输入“mysql-slave”,键值输入“”,然后点击”添加按钮“
    在这里插入图片描述

4.7、为主机关联模板

  • 为server02主机关联刚才创建的监控模板
    在这里插入图片描述

4.8、为模板添加触发器

  • ”数据采集“——>”模板“,找到刚才创建的模板mysql-slave,点击”触发器“,再点击”创建触发器“。
  • 在监控项中点击”选择“按钮,选择前面创建的mysql-slave监控项,在功能处点击下拉菜单,选择”last-最后(最近)的 T 值“,结果为<N下面N中输入2,然后点击”插入“按钮
    在这里插入图片描述

4.9、添加告警动作和操作

  • ”告警“——>”动作“——>”触发器动作“

  • 条件选项触发器,并指定上一步中创建的触发器
    在这里插入图片描述

在这里插入图片描述

4.10、测试

  • 关闭mysql从节点的slave进程
[root@server02 ~]# mysql -u root -ppwd123
MariaDB [(none)]> stop slave;
  • 观察报警信息
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值