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プロキシでのみサポートされています!
データベースは、存在しない場合は自動的に作成されます。
インストールセクションに戻ります。