Zabbix自定义监控项与触发器
文章目录
- Zabbix自定义监控项与触发器
- 资源列表
- 基础环境
- 前言
- 四、监控MySQL主从复制
- 4.1、部署mysql主从复制
- 4.1.1、在两台主机(102和103上安装)
- 4.1.2、主机102当master
- 4.1.3、主机103当slave
- 4.2、MySQL-slave端开启自定义Key值并设置
- 4.3、编写脚本获取数据
- 4.4、Zabbix_get测试
- 4.5、添加监控模板
- 4.6、为模板添加监控项
- 4.7、为主机关联模板
- 4.8、为模板添加触发器
- 4.9、添加告警动作和操作
- 4.10、测试
资源列表
操作系统 | 配置 | 主机名 | IP |
---|---|---|---|
CentOS 7.9 | 2C4G | zbx | 192.168.93.101 |
CentOS 7.9 | 2C4G | server01 | 192.168.93.102 |
CentOS 7.9 | 2C4G | server02 | 192.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;
- 观察报警信息