zabbix自定义监控mysql主从状态和延迟及模板和用户管理

zabbix自定义监控mysql主从状态和延迟及模板和用户管理

文章目录

  • zabbix自定义监控mysql主从状态和延迟及模板和用户管理
    • 一、监控mysql主从状态
      • 1. 配置mysql主从同步
      • 2. 配置监控脚本
      • 3. 添加监控项
      • 4. 添加触发器
      • 5. 手动触发告警
    • 二、监控mysql主从延迟
      • 1.配置监控脚本
      • 2. 添加监控项
      • 3. 添加触发器
    • 三、用户管理
      • 1. 用户组
      • 2. 用户角色
      • 3. 用户
    • 四、模板管理
      • 1. 模板组
      • 2. 模板


实验环境:

虚拟机 主机IP 主机名
zabbix服务端 192.168.183.137 zabbix
mysql主库 192.168.183.139 master
mysql从库 192.168.183.138 web

一、监控mysql主从状态

1. 配置mysql主从同步

//安装数据库
[root@master ~]# dnf install -y mariadb*
[root@web ~]# dnf install -y mariadb*

//启动并修改密码
//主库配置
[root@master ~]# systemctl enable --now mariadb
[root@master ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> set password = password('123com');
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> quit
Bye
[root@master ~]# mysql -uroot -p123com		//验证密码

//从库配置
[root@web ~]# systemctl enable --now mariadb
[root@web ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> set password = password('123com');
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> quit
Bye
[root@web ~]# mysql -uroot -p123com		//验证密码

//在主库上创建同步账号
MariaDB [(none)]> grant replication slave on *.* to 'repl'@'192.168.183.138' identified by 'repl123!';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit
Bye
//写配置文件
[root@master ~]# vim /etc/my.cnf.d/mariadb-server.cnf 
 22 log-bin = mysql_bin
 23 server-id = 10
[root@master ~]# systemctl restart mariadb
[root@master ~]# mysql -uroot -p123com
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql_bin.000001 |      328 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.000 sec)

//关闭防火墙和selinux
[root@master ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master ~]# setenforce 0

//配置从库
[root@web ~]# vim /etc/my.cnf.d/mariadb-server.cnf 
 22 server-id = 20
 23 relay-log = myrelay
[root@web ~]# systemctl restart mariadb
[root@web ~]# mysql -uroot -p123com
MariaDB [(none)]> change master to
    -> master_host='192.168.183.139',
    -> master_user='repl',
    -> master_password='repl123!',
    -> master_log_file='mysql_bin.000001',
    -> master_log_pos=328;
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> show slave status\G;
······
			 Slave_IO_Running: Yes
             Slave_SQL_Running: Yes

······

//测试验证主从是否同步
[root@master ~]# mysql -uroot -p123com
MariaDB [(none)]> create database george;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| george             |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)
[root@web ~]# mysql -uroot -p123com
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| george             |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)

2. 配置监控脚本

//在从库修改配置文件
[root@web ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysql_status,/bin/bash /scripts/mysql_status.sh	//在末行加入此配置
//重启生效
[root@web ~]# pkill zabbix_agentd
[root@web ~]# zabbix_agentd
[root@web ~]# ss -antl
State  Recv-Q Send-Q  Local Address:Port    Peer Address:Port Process                                                       
LISTEN 0      128           0.0.0.0:22           0.0.0.0:*                                                                  
LISTEN 0      128           0.0.0.0:10050        0.0.0.0:*                                                                  
LISTEN 0      80            0.0.0.0:3306         0.0.0.0:*                                                                  
LISTEN 0      128              [::]:22              [::]:*    
//编写脚本
[root@web ~]# vim /scripts/mysql_status.sh
#!/bin/bash
yes=`mysql -uroot -p123com -e " show slave status\G" 2> /dev/null |grep "Running:"|grep -c "Yes"`
if [ $yes == 2  ]; then
        echo "0"
else    
        echo "1"
fi      

[root@web ~]# chmod +x /scripts/mysql_status.sh

//在服务端检测key是否可用
[root@zabbix ~]# zabbix_get -s 192.168.183.138 -k check_mysql_status
0

3. 添加监控项

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第1张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第2张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第3张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第4张图片

4. 添加触发器

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第5张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第6张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第7张图片
在这里插入图片描述

5. 手动触发告警

[root@web ~]# mysql -uroot -p123com -e "stop slave;"

邮件发送完成
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第8张图片
查看邮件
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第9张图片

二、监控mysql主从延迟

1.配置监控脚本

延迟需要看Seconds_Behind_Master这项

//在从库添加配置
[root@web ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysqlyc,/bin/bash /scripts/mysqlyc.sh

//重启生效
[root@web ~]# pkill zabbix_agentd
[root@web ~]# zabbix_agentd

//编写脚本
[root@web ~]# vim /scripts/mysqlyc.sh
#!/bin/bash
yc=`mysql -uroot -p123com -e "show slave status\G" 2> /dev/null |awk '/Seconds_Behind_Master/ {print $2}' `
echo $yc

[root@web ~]# chmod +x /scripts/mysqlyc.sh

//在服务端检测key是否可用
[root@zabbix ~]# zabbix_get -s 192.168.183.138 -k check_mysqlyc
0

2. 添加监控项

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第10张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第11张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第12张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第13张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第14张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第15张图片

3. 添加触发器

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第16张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第17张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第18张图片
延迟大于200触发告警
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第19张图片
等延迟达到200以上触发告警
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第20张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第21张图片
因为这里延迟不会到200,所有改为0来模拟告警。

三、用户管理

1. 用户组

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第22张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第23张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第24张图片

2. 用户角色

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第25张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第26张图片

3. 用户

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第27张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第28张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第29张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第30张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第31张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第32张图片

四、模板管理

1. 模板组

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第33张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第34张图片

2. 模板

zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第35张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第36张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第37张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第38张图片
copy模板参数
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第39张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第40张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第41张图片
导出模板
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第42张图片
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第43张图片
选择记事本打开以后就是模板的格式
zabbix自定义监控mysql主从状态和延迟及模板和用户管理_第44张图片

你可能感兴趣的:(服务,mysql,zabbix,linux)