在安装Zabbix server或proxy时,必须创建Zabbix数据库。
本节提供创建Zabbix数据库的指导。 对于每个支持的数据库,都有一套单独的指导说明。
为了通过创建具有最小权限的数据库角色/用户来增强数据库安全性,请参阅每个支持数据库的数据库创建最佳实践:
对于配置安全的TLS连接,请参阅安全连接至数据库。
UTF-8是Zabbix唯一支持的编码。 已知其在没有安全缺陷的情况下运行良好。 用户应注意到,使用某些其他编码时存在已知的安全问题。 关于切换至UTF-8,请参阅修复Zabbix数据库字符集和校对规则。 另请参阅使用utf8mb4校对规则进行过滤的限制。
如果从 Zabbix Git 存储库 安装 Zabbix,在进行下一步操作之前需要执行以下命令:
$ make dbschema
为了使 Zabbix server/proxy能够与 MySQL 数据库正常协作,支持字符集 utf8(又名 utf8mb3)和 utf8mb4(分别使用 utf8_bin 和 utf8mb4_bin 排序规则)。 建议使用 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:
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
# 如果您正在为 Zabbix proxy创建数据库,请在此处停止
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> zabbix < data.sql
成功导入schema后,可以禁用 log_bin_trust_function_creators
:
您需要拥有有权创建数据库对象的数据库用户。
如果您从 Zabbix packages 安装,请继续执行适用于您的平台的 instructions。
如果您从源码安装 Zabbix:
以下 shell 命令将创建用户 zabbix
。 出现提示时指定密码并重复密码(注意,系统可能首先要求您输入 sudo
密码):
以下 shell 命令将创建数据库 zabbix
(最后一个参数),并将先前创建的用户作为所有者(-O zabbix
)。
对于 Zabbix 代理数据库,只应导入 schema.sql
(不导入 images.sql 或 data.sql)。
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# 如果您正在为 Zabbix 代理创建数据库,请在此处停止
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
上面的命令作为示例提供,可以在大多数 GNU/Linux 安装中使用。 您可以使用不同的命令,例如:psql -U <username>
取决于您的系统/数据库的配置方式。 如果您在设置数据库时遇到问题,请咨询您的数据库管理员。
创建和配置 TimescaleDB 的操作在单独的 章节 中说明。
创建和配置 Oracle 数据库的操作在单独的 章节 中说明。
仅 Zabbix proxy 支持使用 SQLite!
如果数据库不存在,将自动创建该数据库。
返回安装部分。