1 创建数据库

概述

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

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

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

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

MySQL

Zabbix Server/Proxy 完美适配 MySQL 数据库的重要前提是 MySQL 数据库的字符集必须使用 utf8(又名 utf8mb3)或 utf8mb4(分别使用 utf8_bin 和 utf8mb4_bin 排序规则)。建议全新安装时使用 utf8mb4 。

  1. shell> 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> quit;

如果你是从 Zabbix 安装包 进行安装, 在这里暂停,并继续按照 RHEL/CentOSDebian/Ubuntu 的说明将数据导入数据库。

如果你是从源码安装 Zabbix,请继续按照以下步骤将数据导入数据库。对于 Zabbix Proxy 数据库,只需要导入 schema.sql 即可 (不需要 images.sql 和 data.sql):

  1. shell> cd database/mysql
  2. shell> mysql -uzabbix -p<password> zabbix < schema.sql
  3. # 如果是创建 Zabbix proxy 的数据库,以下两条命令便不需要再执行。
  4. shell> mysql -uzabbix -p<password> zabbix < images.sql
  5. shell> mysql -uzabbix -p<password> zabbix < data.sql

PostgreSQL

需要使用有创建数据库权限的用户进行操作。以下 shell 命令将创建 zabbix 用户。 按照提示输入密码并再次确认(注意,你可能首先被要求输入 sudo 密码):

  1. shell> sudo -u postgres createuser --pwprompt zabbix

接下来将使用先前创建的用户作为数据库所有者(-O zabbix)来创建名为 zabbix 的数据库(最后一个参数)。

shell> sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix

如果您是从 Zabbix 安装包 进行安装,在这里暂停并继续按照 RHEL/CentOSDebian/Ubuntu 的说明将初始的架构和数据导入数据库。

如果从 Zabbix 源码进行安装,请继续按照以下步骤导入初始模式和数据(假设您位于 Zabbix 源码包的根目录中)。对于 Zabbix Proxy 的数据库,只需要导入 schema.sql 即可(不需要 images.sql 和 data.sql)。

  1. shell> cd database/postgresql
  2. shell> cat schema.sql | sudo -u zabbix psql zabbix
  3. # 如果是创建 Zabbix proxy 的数据库,以下两条命令便不需要再执行。
  4. shell> cat images.sql | sudo -u zabbix psql zabbix
  5. shell> cat data.sql | sudo -u zabbix psql zabbix

上述命令仅作为参考示例提供,适用于大多数 GNU/Linux 的安装流程。也可以使用不同的命令,例如 “psql -U <username>” ,具体取决于你的系统/数据库的配置方式。 如果你在创建数据库时遇到问题,请咨询数据库管理员。

TimescaleDB

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

Oracle

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

SQLite

SQLite 数据库只能在 Zabbix proxy 中使用!

如果使用 SQLite 作为 Zabbix proxy 的数据库,创建时如果数据库文件不存在,将自动创建。

  1. shell> cd database/sqlite3
  2. shell> sqlite3 /var/lib/sqlite/zabbix.db < schema.sql

返回 安装部分