1 数据库创建
概述
Zabbix数据库必须在Zabbix server或proxy安装的时候创建。
本节提供有关创建Zabbix数据库的说明。 每个受支持的数据库都有对应的创建命令。
UTF-8是Zabbix支持的唯一编码。它可以正常工作而没有任何安全漏洞。用户应注意,如果使用其他一些编码,则存在已知的安全问题。
MySQL
字符集utf8和utf8_bin排序规则是Zabbix Server/Proxy与MySQL数据库一起正常工作所必需的。
shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by '<password>';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> quit;
如果要从Zabbix软件包安装,请在此处停止,并继续说明RHEL/CentOS或Debian/Ubuntu将数据导入数据库。
如果要从源代码安装Zabbix,请继续将数据导入数据库。对于Zabbix代理数据库,应仅导入schema.sql
( 不是images.sql或data.sql):
shell> cd database/mysql
shell> mysql -uzabbix -p<您的密码> zabbix < schema.sql
# 下面步骤当创建Zabbix proxy数据库时不需要执行
shell> mysql -uzabbix -p<您的密码> zabbix < images.sql
shell> mysql -uzabbix -p<您的密码> zabbix < data.sql
PostgreSQL
需要使用有权限的用户去创建数据库对象。 以下shell命令将创建zabbix
用户。在提示下请输入密码并再次确认密码。(注意,可能首先要求输入sudo
命令对应的用户密码 ):
shell> sudo -u postgres createuser --pwprompt zabbix
现在将以先前创建的用户作为数据库所有者(参数:-O zabbix
)设置数据库zabbix
(最后一个参数)并导入initial schema和数据(假设当前目录位于Zabbix sources的根目录中):
shell> sudo -u postgres createdb -O zabbix zabbix
如果要从Zabbix软件包安装,请在此处停止,并继续说明Debian/Ubuntu 或 RHEL/CentOS将初始模式和数据导入数据库。
如果要从源代码安装Zabbix,请继续导入初始架构和数据(假设您位于Zabbix源代码的根目录中)。对于Zabbix代理数据库,应仅导入schema.sql(不是images.sql或data.sql)。
shell> cd database/postgresql
shell> cat schema.sql | sudo -u zabbix psql zabbix
# 下面步骤当创建Zabbix proxy数据库时不需要执行
shell> cat images.sql | sudo -u zabbix psql zabbix
shell> cat data.sql | sudo -u zabbix psql zabbix
上面的命令仅作为例子提供参考,它可以在大多数GNU / Linux安装中使用。 可以使用不同的命令,例如:“psql -U <您的账号>“,这取决于系统/数据库的配置方式。如果在设置数据库时遇到麻烦,请咨询数据库管理员。
TIMESCALEDB
在单独的部分中提供了有关创建和配置TimescaleDB的说明
Oracle
假设在Oracle服务器 host 上存在有权限创建数据库对象的用户(用户名为 zabbix,密码为 password ),并且该用户 具有/tmp目录的写入权限。Zabbix数据库需要使用UTF8
字符集。检查当前设置:
sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';
需要将Zabbix数据库安装介质拷贝到Oracle服务器上的/tmp/zabbix_images目录下:
shell> cd /path/to/zabbix-sources
shell> ssh [email protected]_host "mkdir /tmp/zabbix_images"
shell> scp -r misc/images/png_modern [email protected]_host:/tmp/zabbix_images/
现在开始创建数据库:
shell> cd /path/to/zabbix-sources/database/oracle
shell> sqlplus zabbix/[email protected]_host/ORCL
sqlplus> @schema.sql
# 下面步骤当创建Zabbix proxy数据库时不需要执行
sqlplus> @images.sql
sqlplus> @data.sql
请设置初始化参数CURSOR_SHARING = FORCE以获得最佳性能。
然后删掉介质存放的临时目录: Now the temporary directory can be removed:
shell> ssh [email protected]_host "rm -rf /tmp/zabbix_images"
SQLite
只有为Zabbix proxy 创建数据库的时候才能使用SQLite!
如果使用SQLite作为Zabbix proxy的数据库,创建时如果数据库不存在,将自动创建。
shell> cd database/sqlite3
shell> sqlite3 /var/lib/sqlite/zabbix.db < schema.sql
返回 安装部分。