使用 Zabbix agent监控MySQL

使用 Zabbix agent监控MySQL

根据Zabbix官方文档,Zabbix服务器要监控MySQL服务器,有几种方法:Zabbix agent、Zabbix agent 2或(ODBC)方式。

之前测试了Zabbix agent 2和(ODBC)两种方式,本文记录如何通过部署 Zabbix agent监控 MySQL 服务器。

官方文档并不推荐采用Zabbix agent方式监控MySQL 服务器,只是在某些设置可能不支持 Zabbix agent 2 或需要自定义方法的情况下,可以作为一种备用方式。 实测agent方式配置比较麻烦,配置失败率在三种方式中最高。

一、测试环境

1、Zabbix服务器配置:

Zabbix 版本: Zabbix 7.0.3 LTS

操作系统: Ubuntu 24.04 (Noble)

数据库: MySQL 8

Web 服务器: Apache

IP:192.168.1.242

2、监控目标主机配置

操作系统: Ubuntu 24.04 (Noble)(官方文档中案例就是Ubuntu,一开始尝试用Rocky、CENTOS,反复多次无法获取到数据,有成功的小伙伴可以分享下)

数据库: MySQL 8

IP:192.168.1.194

二、配置过程

1、在目标机上创建MySQL用户

要监控MySQL服务器,Zabbix需要访问其进程。因此,需要创建一个仅用于监控MySQL服务器的MySQL用户"zbx_monitor" ,并向该用户授予必要的权限:

#mysql -u root -p

mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';

mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';

mysql> quit;

2在目标机上安装配置Zabbix agent

导入Zabbix库

# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb

# dnf clean all

安装Zabbix agent

# dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb

配置Zabbix Agent:

编辑 /etc/zabbix/zabbix_agent.conf 文件,设置Server参数为本地Zabbix Server地址。

Server=<ZABBIX_SERVER_IP>

启动Zabbix Agent服务并设置开机自启:

# systemctl start zabbix-agent

# systemctl enable zabbix-agent

检查Zabbix Agent服务状态:

# systemctl status zabbix-agent2

确保防火墙允许Zabbix Agent端口(默认为10050)的流量:

# firewall-cmd --add-port=10050/tcp --permanent

# firewall-cmd –reload

切换到 Zabbix agent 附加配置目录。

# cd /etc/zabbix/zabbix_agentd.d

在Zabbix agent附加配置目录中创建一个 template_db_mysql.conf 文件。

# vi template_db_mysql.conf

将 以下内容复制到创建的 template_db_mysql.conf 文件中,然后保存。(这个文件可以在zabbix官方存储库中找到,地址:https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent/template_db_mysql.conf)

UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping

UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"

UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version

UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"

UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"

UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"

UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"

重启Zabbix agent以更新其配置。

# systemctl restart zabbix-agent

导航到Zabbix agent主目录(如果系统上不存在,则需要创建它;默认值: /var/lib/zabbix)。

本机上无此目录

# Mkdir /var/lib/zabbix

# cd /var/lib/zabbix

在Zabbix agent主目录中创建一个 .my.cnf 文件。

# vi .my.cnf

将以下内容复制到 .my.cnf 文件 (<password> 替换为 "zbx_monitor" 用户的密码)。

[client]

user='zbx_monitor'

password='<password>'

3、配置 Zabbix 前端

登录Zabbix服务器前端,在Zabbix web界面中创建主机

在主机名字段中,输入主机名。

在模板字段中,选择 "MySQL by Zabbix agent " 模板, 链接 到主机。

在接口字段中, 添加一个 "Agent" 类型的接口,填写MySQL 服务器 IP 地址,此处为192.168.1.194。

与Zabbix agent2配置不同,不需要配置 宏 。

等待几分钟后,打开监测->主机 菜单,如果能看到收集到的指标数据,证明配置已成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值