1 数据库创建

概述

在安装Zabbix时必须创建Zabbix数据库server 或 proxy.

本节提供创建Zabbix数据库的指导说明. 针对每个支持的数据库都有单独的说明集.

UTF-8是Zabbix唯一支持的编码格式. 已知该编码不存在任何安全缺陷. 用户应注意,如果使用某些其他编码格式会存在已知的安全问题. 另请参阅使用utf8mb4排序规则过滤的限制.

如果从Zabbix Git repository安装,您需要先run以下命令才能继续后续步骤:

make dbschema

MySQL/MariaDB

为确保Zabbix server/proxy在MySQL数据库中正常运行,支持字符集utf8(即utf8mb3)和utf8mb4(分别对应utf8_bin和utf8mb4_bin排序规则)。新安装建议使用utf8mb4。

对于Zabbix 6.0.11及更高版本,在import模式时需要创建确定性触发器。在MySQL和mariadb上,若启用了二进制日志且没有超级用户权限,且MySQL配置file中未设置log_bin_trust_function_creators=1,则需设置GLOBAL log_bin_trust_function_creators = 1

若通过Zabbix软件包安装,请转至对应平台的instructions

若从源码安装Zabbix:

  • 创建并配置数据库及用户
mysql -uroot -p<password>
       
       mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
       mysql> create user 'zabbix'@'localhost' identified by '<password>';
       mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
       mysql> SET GLOBAL log_bin_trust_function_creators = 1;
       mysql> quit;
  • 将数据导入数据库。对于Zabbix proxy数据库,只需导入schema.sql(无需images.sql和data.sql)。
cd database/mysql
       mysql -uzabbix -p<password> zabbix < schema.sql
       # stop here if you are creating database for Zabbix proxy
       mysql -uzabbix -p<password> zabbix < images.sql
       mysql -uzabbix -p<password> zabbix < data.sql

成功导入模式后可禁用log_bin_trust_function_creators

mysql -uroot -p<password>
       
       mysql> SET GLOBAL log_bin_trust_function_creators = 0;
       mysql> quit;

PostgreSQL

您需要一个对数据库create拥有权限的用户 objects.

如果通过Zabbix软件包安装,请转至对应平台的instructions.

如果从源码安装Zabbix:

  • 创建数据库用户.

以下shell命令将create用户zabbix. 根据提示输入密码并重复确认(注意,系统可能首先要求输入sudo密码):

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

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

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • 导入初始表结构和数据(假设当前位于Zabbix源码根目录).

对于Zabbix proxy数据库,只需导入schema.sql(无需导入images.sql和data.sql).

cd database/postgresql
       cat schema.sql | sudo -u zabbix psql zabbix
       # stop here if you are creating database for Zabbix proxy
       cat images.sql | sudo -u zabbix psql zabbix
       cat data.sql | sudo -u zabbix psql zabbix

以上命令适用于大多数GNU/Linux安装环境. 根据系统/数据库配置的不同,您可能需要使用其他命令,例如:

psql -U <username>

若在数据库设置过程中遇到问题,请咨询数据库管理员.

TimescaleDB

关于创建和配置TimescaleDB的说明请参阅单独的section

Oracle

创建和配置Oracle数据库的说明在单独的section中提供。

SQLite

SQLite仅支持Zabbix proxy使用!

若数据库不存在 将自动创建

返回installation section