1 データベースの作成

概要

Zabbixデータベースは、Zabbixサーバーまたはプロキシのインストール時に作成する必要があります。

このセクションでは、Zabbixデータベースを作成するための手順を説明します。 サポートされている各データベースごとに、個別の手順が用意されています。

最小限の権限を持つデータベースロール/ユーザーを作成してデータベースのセキュリティを向上させるには、サポートされている各データベース向けのデータベース作成のベストプラクティスを参照してください:

安全なTLS接続を設定するには、データベースへの安全な接続を参照してください。

UTF-8は、Zabbixでサポートされている唯一のエンコーディングです。 これは、セキュリティ上の欠陥なく動作することが確認されています。 他のエンコーディングの一部を使用する場合、既知のセキュリティ上の問題があることに注意してください。 UTF-8への切り替えについては、Zabbixデータベースの文字セットと照合順序の修復を参照してください。 あわせて、utf8mb4照合順序でのフィルタリングの制限も参照してください。

Zabbix Git repository からインストールする場合は、次の手順に進む前に以下のコマンドを実行する必要があります:

make dbschema

MySQL/MariaDB

Zabbixサーバー/プロキシがMySQLデータベースで正しく動作するために、文字セットutf8(別名utf8mb3)およびutf8mb4がサポートされています(それぞれutf8_binおよびutf8mb4_bin照合順序を使用)。 新規インストールではutf8mb4の使用を推奨します。

決定論的トリガーは、スキーマのインポート時に作成する必要があります。 MySQLおよびMariaDBでは、バイナリログが有効で、スーパーユーザー権限がなく、かつMySQL設定ファイルでlog_bin_trust_function_creators = 1が設定されていない場合、これにはGLOBAL log_bin_trust_function_creators = 1の設定が必要です。

Zabbix パッケージからインストールする場合は、ご利用のプラットフォーム向けの手順に進んでください。

ソースから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;
  • データをデータベースにインポートし、utf8mb4文字セットをデフォルトとして設定します(Zabbixソースのルートディレクトリにいることを前提とします)。 Zabbixプロキシのデータベースでは、schema.sqlのみをインポートしてください(images.sqlおよびdata.sqlは不要です)。
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# Zabbixプロキシ用のデータベースを作成している場合はここで停止
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql

スキーマのインポートが正常に完了した後は、log_bin_trust_function_creatorsを無効にできます。

mysql -uroot -p<password>

mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;

PostgreSQL

データベースオブジェクトを作成する権限を持つデータベースユーザーが必要です。

Zabbix パッケージ からインストールする場合は、ご利用のプラットフォーム向けの手順に進んでください。

ソースからZabbixをインストールする場合:

  • データベースユーザーを作成します。

次のシェルコマンドはユーザー zabbix を作成します。 プロンプトが表示されたらパスワードを指定し、同じパスワードを再入力してください(なお、最初に sudo のパスワードを求められる場合があります)。

sudo -u postgres createuser --pwprompt zabbix
  • データベースを作成します。

次のシェルコマンドは、先ほど作成したユーザーを所有者 (-O zabbix) として、データベース zabbix(最後のパラメータ)を作成します。

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • 初期スキーマとデータをインポートします(Zabbixソースのルートディレクトリにいることを前提としています)。 Zabbixプロキシのデータベースの場合は、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の作成および設定手順は、別のセクションで説明されています。

SQLite

SQLiteの使用は、Zabbixプロキシでのみサポートされています!

データベースは、存在しない場合は自動的に作成されます。

インストールセクションに戻ります。