このページでは、Red Hat Enterprise Linux 環境において Zabbix Server が使用する PostgreSQL の導入手順を整理する。
本環境では、監視サーバー(仮称)上に PostgreSQL を導入し、後続の手順で Zabbix 用データベースを作成する構成としている。そのため、このページでは PostgreSQL の導入から基本的な動作確認までを順序立てて整理する。
具体的には、PostgreSQL 公式 Repository の追加から始め、パッケージの導入、データベースの初期化、サービスの起動、そして postgres ユーザーでの接続確認までを順番に実施する。
なお、本ページは外部公開向けのページであるため、実際のサーバー名や内部 IP アドレスは記載せず、仮称を用いて説明する。
作業対象サーバー
監視サーバー(仮称)(ZBX-WEB)
OS
Red Hat Enterprise Linux 10
構築対象
PostgreSQL 18
本ページで登場するサーバーは以下のとおりである。
監視サーバー(仮称)(ZBX-WEB)
Zabbix Server、PostgreSQL、Web フロントエンドを構成するサーバー
証明書管理サーバー(仮称)(CERT-WEB)
後続手順で HTTPS 化を行う際に証明書管理で使用するサーバー
監視対象 Web サーバー(仮称)(MON-WEB01)
Zabbix Agent2 を導入して監視対象とする Web サーバー
監視対象 DB サーバー(仮称)(MON-DB01)
Zabbix Agent2 を導入して監視対象とする DB サーバー
本ページは外部公開向けページである。
ただし、Zabbix の管理画面や監視基盤そのものは外部公開しておらず、内部利用を前提としている。
そのため、本ページでは実際のサーバー名や内部 IP アドレスは記載せず、仮称を用いて構成を説明する。
最初に、PostgreSQL 公式 Repository が未追加であることを確認する。
dnf repolist | grep -i postgres
解説
RHEL 10 標準では PostgreSQL 16 系が利用される。
この構成では PostgreSQL 18 を使用するため、
標準パッケージではなく PostgreSQL 公式 Repository を利用する。
PostgreSQL 公式 Repository を追加する。
dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-10-x86_64/pgdg-redhat-repo-latest.noarch.rpm
解説
このコマンドは PostgreSQL 公式のリポジトリ定義パッケージを導入する。
以降は PostgreSQL 18 系のパッケージを取得できるようになる。
Repository が追加されたことを確認する。
dnf repolist | grep -i postgres
解説
PostgreSQL 公式 Repository が表示されれば追加完了である。
PostgreSQL 18 サーバーパッケージが未導入であることを確認する。
rpm -qa | grep postgresql18-server
解説
導入前であれば何も表示されない。
この確認を入れておくことで、再実行時にも状態を判断しやすくなる。
PostgreSQL 18 サーバーパッケージをインストールする。
dnf install postgresql18-server
解説
このパッケージには PostgreSQL サーバー本体と
初期化に必要な関連ファイルが含まれる。
PostgreSQL 18 サーバーパッケージが導入されたことを確認する。
rpm -qa | grep postgresql18-server
解説
パッケージ名が表示されればインストールは完了している。
まだ DB クラスタが初期化されていないことを確認する。
ls -l /var/lib/pgsql/18/data/
解説
初期化前は必要なデータファイルが揃っていないか、
空に近い状態である。
初期化済み環境で再実行しないよう、事前確認として実施する。
PostgreSQL のデータベースクラスタを初期化する。
/usr/pgsql-18/bin/postgresql-18-setup initdb
解説
このコマンドにより、PostgreSQL が使用する
データディレクトリ一式が作成される。
初期化が完了すると、サービス起動が可能になる。
初期化が完了したことを確認する。
ls -l /var/lib/pgsql/18/data/
解説
postgresql.conf や pg_hba.conf などの設定ファイルが作成されていれば、初期化は正常に完了している。
PostgreSQL サービスがまだ起動していないことを確認する。
systemctl status postgresql-18
解説
導入直後は inactive や disabled の状態である場合がある。
起動前の状態を確認してから設定を行う。
PostgreSQL サービスを起動し、自動起動も有効化する。
systemctl enable --now postgresql-18
解説
enable は OS 起動時の自動起動設定である。
--now を付けることで、その場でサービスも起動する。
PostgreSQL が正常に起動していることを確認する。
systemctl status postgresql-18
解説
active (running) が確認できれば、PostgreSQL サービスは正常に起動している。
postgres ユーザーが利用できることを確認する。
id postgres
解説
PostgreSQL の管理作業では postgres ユーザーを利用する。
この確認でユーザーが存在することを確認する。
postgres ユーザーへ切り替える。
su - postgres
解説
以降のデータベース管理作業では、postgres ユーザーで操作する場面が多い。
ここでは接続確認のために切り替える。
PostgreSQL に接続する。
psql
解説
psql は PostgreSQL の対話型クライアントである。
接続に成功すると、SQL 実行待ちのプロンプトが表示される。
接続確認後、psql を終了する。
\q
解説
\q は psql を終了するためのコマンドである。
接続確認のみであればここで終了してよい。
postgres ユーザーで PostgreSQL に接続できることを確認する。
su - postgres
psql
\q
exit
解説
psql のプロンプトが表示され、終了できれば、ローカルでの基本動作確認は完了である。
この手順が完了すると、以下を満たしている状態になる。
PostgreSQL 公式 Repository が追加されている
PostgreSQL 18 がインストールされている
DB クラスタが初期化されている
PostgreSQL サービスが起動している
postgres ユーザーで PostgreSQL に接続できる
確認コマンド
rpm -qa | grep postgresql18-server
systemctl status postgresql-18
su - postgres
psql
\q
次の手順では、Zabbix Server が使用するデータベースとユーザーを作成する。