2022 Zabbix中国峰会
2022 Zabbix中国峰会

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.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 模板的其他信息。