このページでは、Red Hat Enterprise Linux 環境において Zabbix の初期スキーマを PostgreSQL に取り込む手順を整理する。
前のページで、Zabbix 用のユーザーおよびデータベースは作成済みであることを前提として進める。この手順では、Zabbix パッケージに含まれている SQL ファイルを使用し、必要なテーブルや初期データを PostgreSQL のデータベースへ取り込む。
作業自体は比較的シンプルであるが、対象のデータベースやユーザーを誤るとやり直しが発生するため、最初に接続先の確認を行ったうえで作業を進める。
なお、本ページは外部公開向けのページであるため、実際のサーバー名や内部 IP アドレスは記載せず、仮称を用いて説明する。
作業対象サーバー
監視サーバー(仮称)(ZBX-WEB)
OS
Red Hat Enterprise Linux 10
構築対象
PostgreSQL 18
Zabbix 初期スキーマ
本ページで登場するサーバーは以下のとおりである。
監視サーバー(仮称)(ZBX-WEB)
Zabbix Server、PostgreSQL、Web フロントエンドを構成するサーバー
証明書管理サーバー(仮称)(CERT-WEB)
後続手順で HTTPS 化を行う際に証明書管理で使用するサーバー
監視対象 Web サーバー(仮称)(MON-WEB01)
Zabbix Agent2 を導入して監視対象とする Web サーバー
監視対象 DB サーバー(仮称)(MON-DB01)
Zabbix Agent2 を導入して監視対象とする DB サーバー
本ページは外部公開向けページである。
ただし、Zabbix の管理画面や監視基盤そのものは外部公開しておらず、内部利用を前提としている。
そのため、本ページでは実際のサーバー名や内部 IP アドレスは記載せず、仮称を用いて構成を説明する。
まず、Zabbix Server パッケージが導入済みであることを確認する。
rpm -qa | grep zabbix-server
解説
スキーマファイルは Zabbix 関連パッケージと一緒に導入される。
そのため、先に Zabbix Server パッケージが入っていることを確認する。
SQL ファイルの配置場所を確認する。
rpm -ql zabbix-server-pgsql | grep sql
解説
この確認は、どこに SQL ファイルがあるかを把握するために行う。
実際に使うファイルは、後続手順で作業ディレクトリへコピーする。
zabbix-server-pgsql パッケージが表示される
SQL 関連ファイルの場所が確認できる
解説
ここで確認できれば、スキーマインポートの前提はそろっている。
作業用ディレクトリが存在するかを確認する。
ls -ld /root/work
解説
作業ディレクトリがまだ無ければ、このあと作成する。
すでに存在する場合は、そのまま使ってよい。
作業ディレクトリを作成する。
mkdir -p /root/work
解説
スキーマファイルを直接システム領域で扱うのではなく、
作業ディレクトリへコピーしてから使う形にしている。
このほうが確認しやすく、扱いも安全である。
SQL ファイルを作業ディレクトリへコピーする。
cp /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz /root/work/
解説
Zabbix の PostgreSQL 用スキーマファイルを
作業ディレクトリへコピーする。
このファイルを展開しながら psql へ流し込む。
コピーできたことを確認する。
ls -l /root/work
解説
server.sql.gz が見えていれば準備完了である。
作業ディレクトリへ移動し、対象ファイルがあることを確認する。
cd /root/work
ls -l
解説
投入するファイルを間違えないため、
作業場所とファイル名をここでも確認しておく。
Zabbix データベースへスキーマをインポートする。
zcat server.sql.gz | psql -h 127.0.0.1 -U zabbix -d zabbix -W
解説
zcat は gzip 圧縮された SQL ファイルを展開して標準出力へ流す。
その出力を psql に渡し、zabbix データベースへ取り込む。
接続先はローカルの PostgreSQL、ユーザーは zabbix、データベース名も zabbix である。
実行時にはパスワード入力を求められる。
インポート完了後、Zabbix データベースへ接続できることを確認する。
psql -h 127.0.0.1 -U zabbix -d zabbix -W
解説
ここでは投入後のデータベースへ実際に接続し、
中身を確認できる状態かを見ていく。
テーブル一覧を確認する。
\dt
解説
Zabbix の初期テーブルが作成されていれば、
スキーマインポートは正常に完了している。
psql を終了する。
\q
解説
確認が終わったら psql を終了する。
Zabbix 用のテーブルが作成されていることを確認する。
psql -h 127.0.0.1 -U zabbix -d zabbix -W
\dt
\q
解説
acknowledges、actions、alerts などの
Zabbix 用テーブルが見えていれば問題ない。
テーブルが何も出ない場合は、インポート先や接続先を見直す。
Zabbix 用のテーブルが複数表示される
所有者が zabbix になっている
解説
この状態になっていれば、
後続の Zabbix Server 設定へ進める。
この手順が完了すると、以下を満たしている状態になる。
Zabbix スキーマファイルの場所が確認できている
作業ディレクトリに server.sql.gz を配置できている
zabbix データベースへスキーマを投入できている
Zabbix 用テーブルが作成されている
確認コマンド
rpm -qa | grep zabbix-server
ls -l /root/work
psql -h 127.0.0.1 -U zabbix -d zabbix -W
\dt
\q
次の手順では、
Zabbix Server が PostgreSQL へ接続するための設定を行う。