1 データベースの作成
概要
Zabbixサーバーまたはプロキシのインストール時に、Zabbixデータベースを作成する必要があります。
このセクションでは、Zabbixデータベースの作成手順を説明します。 サポートされている各データベースごとに、個別の手順が用意されています。
最小限の権限を持つデータベースロール/ユーザーを作成してデータベースのセキュリティを向上させるには、各サポートデータベースのデータベース作成ベストプラクティスを参照してください:
安全なTLS接続の設定については、データベースへの安全な接続を参照してください。
Zabbixがサポートする唯一のエンコーディングはUTF-8です。 これは、セキュリティ上の欠陥なく動作することが知られています。 他のエンコーディングを使用する場合、既知のセキュリティ問題があることに注意してください。 UTF-8への切り替えについては、Zabbixデータベースの文字セットと照合順序の修復を参照してください。 また、utf8mb4照合順序によるフィルタリングの制限も参照してください。
Zabbix Git repository からインストールする場合は、次の手順に進む前に以下のコマンドを実行する必要があります:
make dbschema
MySQL/MariaDB
Zabbix サーバー/プロキシが MySQL/MariaDB データベースで正常に動作するには、文字セット utf8(別名 utf8mb3)および utf8mb4(それぞれ utf8_bin および utf8mb4_bin の照合順序)がサポートされています。
将来的な問題を回避するため、新規インストールと既存のインストールの両方で、utf8mb4 文字セットと utf8mb4_bin 照合順序を使用することを強く推奨します。
utf8mb3 文字セットと utf8mb3_bin 照合順序を使用しているデータベースは、Zabbix データベースの文字セットと照合順序の修復で説明されているように、utf8mb4 文字セットと utf8mb4_bin 照合順序に変換することを推奨します。
スキーマのインポート中に決定論的なトリガーを作成する必要があります。
MySQL および MariaDB では、バイナリロギングが有効で、スーパーユーザー権限がなく、MySQL 設定ファイルで log_bin_trust_function_creators = 1 が設定されていない場合、GLOBAL log_bin_trust_function_creators = 1 を設定する必要があります。
Zabbix をパッケージまたはコンテナからインストールする場合は、それぞれの手順を参照してください。
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
SQLite の使用は Zabbixプロキシ でのみサポートされています。
データベースが存在しない場合は、自動的に作成されます。
インストールセクション に戻る。