4 使用 Zabbix agent 2 监控MySQL

介绍

本页将指导您完成启用MySQL服务器基本监控所需的步骤。

要监控MySQL服务器,有几种方法:Zabbix agent、Zabbix agent 2或开放数据库连接(ODBC)标准。 本指南的主要重点是使用 Zabbix agent 2 监控 MySQL 服务器,这是 推荐 的方法,因为它可以在各种设置中无缝配置。 但是,此页面也提供了其他方法的说明, 因此请随意选择最适合您要求的方法。

本指南适用于谁

本指南专为Zabbix新用户设计,包含启用MySQL服务器基本监控所需的最少步骤集。 如果您正在寻找深度自定义选项或需要更高级的配置,请参阅Zabbix手册的 配置 部分。

先决条件

在继续本指南之前,您需要根据适用于您的操作系统的说明,下载并安装 Zabbix 服务器、Zabbix 前端和 Zabbix agent 2。

根据您的环境,本指南中的某些步骤可能会略有不同。
本指南基于运行 Ubuntu 的环境。

创建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。推荐使用 Linux 操作系统默认的软件包仓库来安装 unixODBC。

apt install unixodbc

2. 安装 MariaDB 的 unixODBC 数据库驱动。即使您使用的是 MySQL 数据库,出于兼容性原因,也应使用 MariaDB 的 unixODBC 驱动。

apt install odbc-mariadb

3. 检查 ODBC 配置文件 odbcinst.iniodbc.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 模板的其他信息。