1 创建数据库

概述

在部署 Zabbix server 或 proxy 时必须要创建数据库。

本节提供创建 Zabbix 数据库的说明。 每个受支持的数据库都有对应的创建说明。

Zabbix 唯一支持的编码是 UTF-8 。使用此编码没有已知的任何安全漏洞。应注意如果使用其他的编码,则存在已知的安全问题。

如果从 Zabbix Git 存储库 安装 Zabbix,在进行下一步操作之前需要执行以下命令:

$ make dbschema

MySQL

支持字符集 utf8(又名 utf8mb3)和 utf8mb4(分别使用 utf8_bin 和 utf8mb4_bin 排序规则)以便 Zabbix 服务器/代理与 MySQL 数据库正常工作。 建议使用 utf8mb4 进行新安装。

对于 Zabbix 6.0.11 及更新版本,需要在导入模式期间创建确定性触发器。 在 MySQL 和 MariaDB 上,如果启用了二进制日志记录并且没有超级用户权限同时未在MySQL配置文件中配置 log_bin_trust_function_creators = 1 ,则需要设置 GLOBAL log_bin_trust_function_creators = 1。

如果您从 Zabbix packages 安装,请继续执行适用于您的平台的 instructions

如果您从源码安装 Zabbix:

  • 创建和配置数据库和用户。
  1. mysql -uroot -p<password>
  2. mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
  3. mysql> create user 'zabbix'@'localhost' identified by '<password>';
  4. mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
  5. mysql> SET GLOBAL log_bin_trust_function_creators = 1;
  6. mysql> quit;
  • 将数据导入数据库。 对于 Zabbix 代理数据库,只应导入 schema.sql(不导入 images.sql 或 data.sql)。
  1. cd database/mysql
  2. mysql -uzabbix -p<password> zabbix < schema.sql
  3. # 如果您正在为 Zabbix 代理创建数据库,请在此处停止
  4. mysql -uzabbix -p<password> zabbix < images.sql
  5. mysql -uzabbix -p<password> zabbix < data.sql

成功导入schema后,可以禁用 log_bin_trust_function_creators

  1. mysql -uroot -p<password>
  2. mysql> SET GLOBAL log_bin_trust_function_creators = 0;
  3. mysql> quit;

PostgreSQL

您需要拥有有权创建数据库对象的数据库用户。

如果您从 Zabbix packages 安装,请继续执行适用于您的平台的 instructions

如果您从源码安装 Zabbix:

  • 创建数据库用户。

以下 shell 命令将创建用户 zabbix。 出现提示时指定密码并重复密码(注意,系统可能首先要求您输入 sudo 密码):

  1. sudo -u postgres createuser --pwprompt zabbix
  • 创建数据库。

以下 shell 命令将创建数据库 zabbix(最后一个参数),并将先前创建的用户作为所有者(-O zabbix)。

  1. sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • 导入初始模式和数据(假设您在 Zabbix 源码的根目录中)。

对于 Zabbix 代理数据库,只应导入 schema.sql(不导入 images.sql 或 data.sql)。

  1. cd database/postgresql
  2. cat schema.sql | sudo -u zabbix psql zabbix
  3. # 如果您正在为 Zabbix 代理创建数据库,请在此处停止
  4. cat images.sql | sudo -u zabbix psql zabbix
  5. cat data.sql | sudo -u zabbix psql zabbix

上面的命令作为示例提供,可以在大多数 GNU/Linux 安装中使用。 您可以使用不同的命令,例如:

psql -U <username>

取决于您的系统/数据库的配置方式。 如果您在设置数据库时遇到问题,请咨询您的数据库管理员。

TimescaleDB

创建和配置 TimescaleDB 的操作在单独的 章节 中说明。

Oracle

创建和配置 Oracle 数据库的操作在单独的 章节 中说明。

SQLite

Zabbix proxy 支持使用 SQLite!

如果数据库不存在,将自动创建该数据库。

返回安装部分