1 データベースの作成
概要
Zabbix サーバーまたはプロキシのインストール時に、Zabbix データベースを作成する必要があります。
このセクションでは、Zabbix データベースを作成するための手順を説明します。 サポートされている各データベースごとに、個別の手順が用意されています。
データベースロール/ユーザーを最小権限で作成してデータベースのセキュリティを向上させるには、各サポート対象データベースのデータベース作成ベストプラクティスを参照してください:
安全な TLS 接続の設定については、データベースへの安全な接続を参照してください。
UTF-8 は Zabbix でサポートされている唯一のエンコーディングです。 これは、セキュリティ上の欠陥なく動作することが確認されています。 他の一部のエンコーディングを使用すると、既知のセキュリティ上の問題があることに注意してください。 UTF-8 への切り替えについては、Zabbix データベースの文字セットと照合順序の修復を参照してください。 また、utf8mb4 照合順序でのフィルタリングの制限も参照してください。
Zabbix Gitリポジトリからインストールする場合は、次の手順に進む前に以下のコマンドを実行する必要があります。
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
# Zabbixプロキシ用のデータベースを作成している場合はここで停止してください
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
上記のコマンドは、ほとんどの GNU/Linux 環境で動作する例として示しています。
システムやデータベースの構成に応じて、別のコマンドを使用できます。たとえば、次のようになります。
psql -U <username>
データベースの設定で問題がある場合は、データベース管理者に相談してください。
TimescaleDB
TimescaleDBの作成と設定の手順は、別のセクションで説明しています。
SQLite
ZabbixプロキシでのみSQLiteの使用がサポートされています。
データベースが存在しない場合は自動的に作成されます。
インストールセクションに戻る。