4 使用 Zabbix agent 2 监控MySQL
介绍
本页将指导您完成启用MySQL服务器基本监控所需的步骤。
要监控MySQL服务器,有几种方法:Zabbix agent、Zabbix agent 2或开放数据库连接(ODBC)标准。 本指南的主要重点是使用 Zabbix agent 2 监控 MySQL 服务器,这是 推荐 的方法,因为它可以在各种设置中无缝配置。 但是,此页面也提供了其他方法的说明, 因此请随意选择最适合您要求的方法。
本指南适用于谁
本指南专为Zabbix新用户设计,包含启用MySQL服务器基本监控所需的最少步骤集。 如果您正在寻找深度自定义选项或需要更高级的配置,请参阅Zabbix手册的 配置 部分。
先决条件
在继续本指南之前,您需要根据对应您操作系统的说明 下载并安装 Zabbix server, Zabbix 前端和 Zabbix agent 2 。
根据您的设置,本指南中的某些步骤可能略有不同。本指南基于以下环境进行配置:
- Zabbix 版本: Zabbix 7.0 PRE-RELEASE (从软件包安装)
- 操作系统发行版: Ubuntu
- 操作系统版本: 22.04 (Jammy)
- Zabbix 组件: Server, 前端, Agent 2
- 数据库: MySQL
- Web 服务器: Apache
创建MySQL用户
要监控MySQL服务器,Zabbix需要访问它及其进程。 您的MySQL安装已经具有一个所需访问级别的用户(安装Zabbix时创建的用户 “zabbix” ), 但是,该用户拥有的权限高于简单监控所需的权限 (删除数据库的权限,删除表中条目等)。 因此,需要创建一个 仅 用于监控MySQL服务器的MySQL用户。
1. 连接到MySQL客户端,创建一个 “zbx_monitor” 用户 (将 “zbx_monitor” 的 <password> 替换为您定义的密码), 并向该用户 GRANT 授予必要的权限:
mysql -u root -p
# Enter password:
mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
mysql> quit;
创建用户后,可以继续执行下一步。
配置 Zabbix 前端
1. 登录Zabbix前端。
2. 在Zabbix web界面中 创建主机c :
- 在 主机名 字段中,输入主机名 (例如, “MySQL server”)。
- 在 模板 字段中, 键入或选择 “MySQL by Zabbix agent 2” 模板, 链接 到主机。
- 在 主机组 字段中, 键入或选择主机组(例如,“数据库”)。
- 在 接口 字段中, 添加一个 “Agent” 类型的接口,并填写您的 MySQL 服务器 IP 地址。 本指南使用 “127.0.0.1” (localhost) 来监控与Zabbix server和Zabbix agent 2安装在同一台机器上的MySQL server。
- 在 宏 选项卡中, 切换到 继承和主机宏, 查找以下宏,然后单击宏值旁边的 更改 进行更新:
- {$MYSQL.DSN} - 设置MySQL服务器的数据源 (MySQL Zabbix agent 2插件配置文件中的 命名会话连接符 )。 本指南使用默认数据源 “tcp://localhost:3306” 来监控与Zabbix server和Zabbix agent 2安装在同一台机器上的MySQL server。
- {$MYSQL.PASSWORD} - 更改为之前 创建MySQL用户 “zbx_monitor” 的密码。
- {$MYSQL.USER} - 更改为之前 创建的MySQL用户 名称 “zbx_monitor”.
3. 单击 添加 以添加主机。 此主机将代表您的MySQL服务器。
查看收集的指标
恭喜!此时,Zabbix已经在监视您的 MySQL 服务器。
要查看收集的指标,请打开 监测->主机 菜单 ,然后单击主机旁边的 仪表盘。
此操作将带您进入主机仪表板 (在模板级别配置),其中包含从 MySQL 服务器收集的最重要指标。
或者,在 监测->主机 中,您可以单击 最新数据 以查看列表中所有最新收集的指标。
注意监控项 MySQL: 计算的值 innodb_log_file_size 预期没有数据, 因为该值将根据过去一小时的数据计算得出。
设置问题告警
Zabbix可以使用多种方法通知您有关基础设施的问题。 本指南提供了发送电子邮件警报的配置步骤。
1. 转到 用户设置 -> 配置,切换到 媒介 选项卡并 添加您的电子邮件。
2. 按照 接收问题通知的指南进行操作。
下次,当Zabbix检测到问题时,您应该会通过电子邮件收到告警。
测试配置
要测试配置, 我们可以通过更新Zabbix前端的主机配置来模拟一个真实的问题。
1. 在Zabbix中打开MySQL服务器主机配置。
2. 切换到 宏 选项卡,然后选择 继承和主机宏 。
3. 单击 先前配置 的宏,例如 {$MYSQL.USER} 旁边的更改,设置一个不同的MySQL用户名。
4. 单击 更新 以更新主机配置。
5. 稍等片刻,Zabbix 将监测到问题 “MySQL: Service is down”,因为它将无法连接到 MySQL 服务器。 该问题将显示在 监测 → 问题 中。
如果您 配置了告警,您还将收到问题通知。
6. 将宏值复原到先前的值,以解决问题并继续监视 MySQL服务器。
监控 MySQL 的其他方法
除了使用Zabbix agent 2监控MySQL服务器外,还可以使用Zabbix agent或Open Database Connectivity(ODBC)标准。 虽然建议使用 Zabbix agent 2,但可能有一些设置不支持 Zabbix agent 2 或需要自定义方法。
Zabbix agent 和 ODBC 的主要区别在于数据收集方法 - Zabbix agent 直接安装在MySQL服务器上,并使用其内置功能收集数据, 而 ODBC 依靠 ODBC 驱动程序与 MySQL 服务器建立连接并使用 SQL 检索数据。
尽管许多配置步骤类似于使用 Zabbix agent 2 监控 MySQL 服务器,但存在一些显着差异 - 需要配置Zabbix agent或ODBC才能监控MySQL服务器。以下说明将引导您了解这些 差异 。
使用 Zabbix agent 监控 MySQL
要使用 Zabbix agent 监控 MySQL,您需要根据对应您操作系统的说明 下载并安装 Zabbix server, Zabbix 前端和 Zabbix agent。
根据您的设置,本指南中的某些步骤可能略有不同。本指南基于以下环境进行配置:
- Zabbix 版本: Zabbix 7.0 PRE-RELEASE (从软件包安装)
- 操作系统发行版: Ubuntu
- 操作系统版本: 22.04 (Jammy)
- Zabbix 组件: Server, 前端, Agent 2
- 数据库: MySQL
- Web 服务器: Apache
成功安装所需的Zabbix组件后,您需要按照 创建MySQL用户 部分所述创建MySQL用户。
创建MySQL用户后,您需要配置Zabbix agent,以便能够与MySQL服务器建立连接并对其进行监控。 这包括配置多个 用户参数 以执行自定义agent检查,以及为Zabbix agent提供必要的凭据, 以便以 先前创建的 “zbx_monitor” 用户身份连接到MySQL服务器。
配置Zabbix agent
1. 切换到 Zabbix agent 附加配置目录。
cd /usr/local/etc/zabbix/zabbix_agentd.d
Zabbix agent附加配置目录应与Zabbix agent配置文件 (zabbix_agentd.conf) 位于同一目录中。 取决于您的操作系统和Zabbix安装,此目录的位置可能与本指南中指定的位置不同。 默认位置,请检查Zabbix agent配置文件中的 Include 参数。
这些用于监控MySQL服务器的参数将在附加配置目录中的单独文件中定义, 而不是在Zabbix agent配置文件中定义所有必要用户参数。
2. 在Zabbix agent附加配置目录中创建一个 template_db_mysql.conf 文件。
vi template_db_mysql.conf
3. 将 template_db_mysql.conf 文件 (位于 Zabbix 存储库中) 中的内容复制到您创建的 template_db_mysql.conf 文件中,然后保存。
4. 重启Zabbix agent以更新其配置。
systemctl restart zabbix-agent
配置Zabbix agent用户参数后,您可以继续配置允许Zabbix agent访问MySQL服务器的凭据。
5. 导航到Zabbix agent主目录(如果系统上不存在,则需要创建它;默认值: /var/lib/zabbix)。
cd /var/lib/zabbix
6. 在Zabbix agent主目录中创建一个 .my.cnf 文件。
vi .my.cnf
7. 将以下内容复制到 .my.cnf 文件 (<password> 替换为 “zbx_monitor” 用户的密码)。
[client]
user='zbx_monitor'
password='<password>'
配置Zabbix前端并测试您的配置
要配置Zabbix前端,请按照 配置Zabbix前端 部分中的说明进行以下调整:
- 在 模板 字段中,键入或选择 “MySQL by Zabbix agent” 模板以 链接 到主机。
- 不需要配置 宏 。
配置Zabbix前端后,您可以 查看收集的指标 并 设置问题告警。
若要测试配置,请按照 测试配置 部分中的说明进行以下调整:
- 在 MySQL 服务器主机配置的 继承和主机宏 部分中,单击 {$MYSQL.PORT} 宏值旁边的 更改 并设置一个不同的端口 (例如,”6033”)。
使用ODBC监控MySQL
要使用ODBC监控MySQL,您需要 下载并安装 Zabbix server 和 Zabbix 前端。
成功安装所需的Zabbix组件后,您需要按照 创建MySQL用户 部分所述创建一个MySQL用户。
创建MySQL用户后,需要设置ODBC。 这包括安装最常用的开源 ODBC API 实现之一 - unixODBC - 和unixODBC 驱动程序,以及编辑 ODBC 驱动程序配置文件。
配置ODBC
1. 安装 unixODBC。建议的安装 unixODBC 方法是使用 Linux 操作系统默认的软件包存储库。
apt install unixodbc
2. 安装 MariaDB unixODBC 数据库驱动程序。尽管您有MySQL数据库,但MariaDB unixODBC驱动程序用于解决兼容性问题。
apt install odbc-mariadb
3. 检查 ODBC 配置文件 odbcinst.ini 和 odbc.ini 的位置。
odbcinst -j
执行此命令的结果应类似于以下内容。
unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
...
4. 要配置用于监视 MySQL 数据库的 ODBC 驱动程序,您需要驱动程序名称,该名称位于 odbcinst.ini 文件中。 在以下 odbcinst.ini 文件示例中,驱动程序名称为 “MariaDB Unicode”。
[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1
5. 将以下内容复制到 odbc.ini 文件中 ( <password> 替换为 “zbx_monitor” 用户的密码)。 本指南使用 “127.0.0.1” (localhost) 作为MySQL服务器地址,用于监测与ODBC驱动程序安装在同一台计算机上的MySQL服务器。 注意数据源名称 (DSN) “test”,这是 配置 Zabbix 前端时所必需的。
[test]
Driver=MariaDB Unicode
Server=127.0.0.1
User=zbx_monitor
Password=<password>
Port=3306
Database=zabbix
配置Zabbix前端并测试配置
要配置Zabbix前端,请按照 配置Zabbix前端 部分中的说明进行以下调整:
- 在 模板 字段中,键入或选择 “MySQL by ODBC” 模板将其 链接 到主机。
- 不需要配置 接口 。
- {$MYSQL.DSN} 宏的值在Mysql服务器的 继承和主机宏 部分中,主机配置应设置为 odbc.ini 文件中的 DSN 名称。
配置Zabbix前端后,您可以 查看收集的指标, 设置问题告警 并 测试您的配置。
另请参阅
- 创建监控项 - 如何开始监控其他指标。
- 问题升级 - 如何创建多步骤警报场景(例如,首先向系统管理员发送消息,然后,如果问题在 45 分钟内未解决,则向数据中心经理发送消息)。
- ODBC 监测 - 如何在其他 Linux 发行版上设置 ODBC,以及如何开始使用 ODBC 监测其他与数据库相关的指标。
- 模板 MySQL by Zabbix agent - 有关 MySQL by Zabbix agent 模板的其他信息。
- 模板 MySQL by Zabbix agent 2 - 有关 MySQL by Zabbix agent 2 模板的其他信息。
- 模板 MySQL by ODBC - 有关 MySQL by ODBC 模板的其他信息。