1 データベースの作成
概要
Zabbixサーバーまたはプロキシのインストール時に、Zabbixデータベースを作成する必要があります。
このセクションでは、Zabbixデータベースの作成手順を説明します。 サポートされている各データベースごとに、個別の手順が用意されています。
最小限の権限を持つデータベースロール/ユーザーを作成してデータベースのセキュリティを向上させるには、各サポートデータベースのデータベース作成ベストプラクティスを参照してください:
安全なTLS接続の設定については、データベースへの安全な接続を参照してください。
Zabbixがサポートする唯一のエンコーディングはUTF-8です。 これは、セキュリティ上の欠陥なく動作することが知られています。 他のエンコーディングを使用する場合、既知のセキュリティ問題があることに注意してください。 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の使用がサポートされています。
データベースが存在しない場合は自動的に作成されます。
インストールセクションに戻る。