1 数据库创建

概述

Zabbix数据库必须在Zabbix server或proxy安装的时候创建。

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

UTF-8是Zabbix支持的唯一编码。它可以正常工作而没有任何安全漏洞。用户应注意,如果使用其他一些编码,则存在已知的安全问题。

MySQL

字符集utf8和utf8_bin排序规则是Zabbix Server/Proxy与MySQL数据库一起正常工作所必需的。

  1. shell> mysql -uroot -p<password>
  2. mysql> create database zabbix character set utf8 collate utf8_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代理数据库,应仅导入schema.sql( 不是images.sql或data.sql):

  1. shell> cd database/mysql
  2. shell> mysql -uzabbix -p<您的密码> zabbix < schema.sql
  3. # 下面步骤当创建Zabbix proxy数据库时不需要执行
  4. shell> mysql -uzabbix -p<您的密码> zabbix < images.sql
  5. shell> mysql -uzabbix -p<您的密码> zabbix < data.sql

PostgreSQL

需要使用有权限的用户去创建数据库对象。 以下shell命令将创建zabbix用户。在提示下请输入密码并再次确认密码。(注意,可能首先要求输入sudo命令对应的用户密码 ):

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

现在将以先前创建的用户作为数据库所有者(参数:-O zabbix)设置数据库zabbix(最后一个参数)并导入initial schema和数据(假设当前目录位于Zabbix sources的根目录中):

  1. shell> sudo -u postgres createdb -O zabbix zabbix

如果要从Zabbix软件包安装,请在此处停止,并继续说明Debian/UbuntuRHEL/CentOS将初始模式和数据导入数据库。

如果要从源代码安装Zabbix,请继续导入初始架构和数据(假设您位于Zabbix源代码的根目录中)。对于Zabbix代理数据库,应仅导入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 <您的账号>“,这取决于系统/数据库的配置方式。如果在设置数据库时遇到麻烦,请咨询数据库管理员。

TIMESCALEDB

在单独的部分中提供了有关创建和配置TimescaleDB的说明

Oracle

假设在Oracle服务器 host 上存在有权限创建数据库对象的用户(用户名为 zabbix,密码为 password ),并且该用户 具有/tmp目录的写入权限。Zabbix数据库需要使用UTF8字符集。检查当前设置:

  1. sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';

需要将Zabbix数据库安装介质拷贝到Oracle服务器上的/tmp/zabbix_images目录下:

  1. shell> cd /path/to/zabbix-sources
  2. shell> ssh [email protected]_host "mkdir /tmp/zabbix_images"
  3. shell> scp -r misc/images/png_modern [email protected]_host:/tmp/zabbix_images/

现在开始创建数据库:

  1. shell> cd /path/to/zabbix-sources/database/oracle
  2. shell> sqlplus zabbix/[email protected]_host/ORCL
  3. sqlplus> @schema.sql
  4. # 下面步骤当创建Zabbix proxy数据库时不需要执行
  5. sqlplus> @images.sql
  6. sqlplus> @data.sql

请设置初始化参数CURSOR_SHARING = FORCE以获得最佳性能。

然后删掉介质存放的临时目录: Now the temporary directory can be removed:

  1. shell> ssh [email protected]_host "rm -rf /tmp/zabbix_images"

SQLite

只有为Zabbix proxy 创建数据库的时候才能使用SQLite!

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

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

返回 安装部分