在安装 Zabbix server 或 proxy 期间,必须创建一个 Zabbix 数据库。
本节提供有关创建 Zabbix 数据库的说明。对于每个受支持的数据库,均有单独的一组说明。
通过创建具有最小权限的数据库角色/用户来提高数据库安全性,请参阅每个受支持数据库的最佳实践:
有关配置安全的 TLS 连接,请参阅 Secure connection to the database。
UTF-8 是 Zabbix 唯一支持的编码方式。已知其运行没有任何安全漏洞。 用户应注意,如果使用其他某些编码方式,则可能存在已知的安全 问题。 有关切换到 UTF-8,请参阅 Repairing Zabbix database character set and collation。 另请参阅 使用utf8mb4排序规则过滤的限制。
如果从Zabbix Git repository安装,则在继续下一步之前需要run以下命令:
make dbschema
支持使用字符集utf8(又名utf8mb3)和utf8mb4(分别使用utf8_bin和utf8mb4_bin排序规则),以便与MySQL数据库配合使用时Zabbix server/proxy能够正常工作。建议在新安装时使用utf8mb4。
在import模式期间需要创建确定性触发器。在MySQL和mariadb上,如果启用了二进制日志记录且没有超级用户权限,并且MySQL配置文件中未设置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;
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> --default-character-set=utf8mb4 zabbix < data.sql
在模式成功导入后,可以禁用log_bin_trust_function_creators
:
你需要拥有一个具有权限的数据库用户来访问 create 数据库 objects。
如果你是从 Zabbix 软件包安装,请前往你的平台对应的 instructions。
如果你是从源码安装 Zabbix:
以下 shell 命令将为 create 创建用户 zabbix
。当提示时,请输入密码并重复输入(注意,你可能首先会被要求输入 sudo
的密码):
以下 shell 命令将使用之前创建的用户作为所有者(-O zabbix
),来为数据库 zabbix
(最后一个参数)执行 create 操作:
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 的说明在单独的 section 中提供。
创建和配置 Oracle 数据库的说明在单独的 section 中提供。
仅支持将 SQLite 用于 Zabbix proxy!
如果数据库不存在,系统将会自动创建。