このページでは、Red Hat Enterprise Linux 環境において Zabbix Server が PostgreSQL を利用するための設定を整理する。
前のページまでで、PostgreSQL の導入、Zabbix 用データベースの作成、スキーマのインポート、および接続設定は完了している前提で進める。ここでは、Zabbix Server の設定ファイルを編集し、PostgreSQL に接続できるように設定を行う。
また、設定変更後は Zabbix Server を起動し、サービスの状態確認、ログ確認、待受ポートの確認までを行い、監視サーバーとして正常に動作できる状態になっていることを確認する。
なお、本ページは外部公開向けの内容であるため、実際のサーバー名や内部 IP アドレスは記載せず、仮称を用いて説明する。
作業対象サーバー
監視サーバー(仮称)(ZBX-WEB)
OS
Red Hat Enterprise Linux 10
構築対象
Zabbix Server
PostgreSQL 接続設定
Zabbix Server サービス起動
本ページで登場するサーバーは以下のとおりである。
監視サーバー(仮称)(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 設定ファイルの場所を確認する。
ls -l /etc/zabbix/zabbix_server.conf
解説
最初に設定ファイルが想定どおりの場所にあることを確認する。
ファイルが存在しない場合は、パッケージ導入やパスの確認から見直す。
/etc/zabbix/zabbix_server.conf が確認できる
解説
このファイルが確認できれば、設定変更の前提はそろっている。
変更前に、現在の設定ファイルだけがある状態を確認する。
ls -l /etc/zabbix/zabbix_server.conf*
解説
設定変更前の状態を確認しておくと、
バックアップ取得後の差分がわかりやすい。
設定変更前にバックアップを取得する。
cp -p /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf_$(date +%Y%m%d)
解説
cp -p はタイムスタンプや権限をできるだけ保ったままコピーする。
構築手順では、設定変更前のバックアップを残しておくと安心である。
バックアップファイルが作成されたことを確認する。
ls -l /etc/zabbix/zabbix_server.conf*
解説
zabbix_server.conf と
zabbix_server.conf_YYYYMMDD の両方が見えていれば問題ない。
現在の DB 接続設定を確認する。
grep -E "DBHost|DBName|DBUser|DBPassword" /etc/zabbix/zabbix_server.conf
解説
初期状態ではコメントアウトされたままのことが多い。
設定変更前に現状を見ておくことで、編集内容がはっきりする。
設定ファイルを編集する。
vi /etc/zabbix/zabbix_server.conf
解説
このファイルで Zabbix Server の DB 接続先を設定する。
以下の内容を設定する。
変更前
# DBHost=localhost
# DBName=
# DBUser=
# DBPassword=
変更後
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=XXXXXXXXXX
解説
DBHost=127.0.0.1 は、同一サーバー上の PostgreSQL へ接続する設定である。
DBName=zabbix は、前の手順で作成した Zabbix 用データベース名である。
DBUser=zabbix は、Zabbix Server が接続に使うユーザーである。
DBPassword は、Zabbix DB 作成時に設定したパスワードを指定する。
ここでは localhost ではなく 127.0.0.1 を使っている。
これは TCP 接続を明示するためで、前ページの PostgreSQL 接続設定とも揃えやすい。
設定内容を確認する。
grep -E "DBHost|DBName|DBUser|DBPassword" /etc/zabbix/zabbix_server.conf
解説
設定した 4 項目がそのまま表示されればよい。
値が意図どおり入っているかをここで確認しておく。
起動前の状態を確認する。
systemctl status zabbix-server
解説
設定反映前の状態を見ておくと、
起動後の変化やエラー切り分けがしやすい。
Zabbix Server を起動し、自動起動も有効化する。
systemctl enable --now zabbix-server
解説
enable は OS 起動時の自動起動設定である。
--now を付けることで、その場でサービスも起動する。
Zabbix Server が正常に起動していることを確認する。
systemctl status zabbix-server
解説
active (running) が確認できれば、
Zabbix Server 自体は正常に起動している。
起動後のログを確認する。
tail -n 20 /var/log/zabbix/zabbix_server.log
解説
設定ファイルの書式ミスや DB 接続失敗は、systemctl status だけでは見えにくいことがある。
そのため、ログもあわせて確認しておく。
starting Zabbix Server
database is up to date
server started
解説
このような内容が確認できれば、
DB 接続とサーバー起動はおおむね正常である。
補足
環境によっては、使用していない機能に関する not supported メッセージが出る場合がある。
ただし、DB 接続失敗や起動失敗とは別なので、
まずは server started まで到達しているかを優先して確認する。
Zabbix Server が TCP 10051 で待受していることを確認する。
ss -lntp | grep 10051
解説
Zabbix Server は通常 TCP 10051 で待受する。
ここで LISTEN 状態が確認できれば、
サーバープロセスが外部からの接続待受を開始している。
LISTEN 0 128 0.0.0.0:10051
解説
IPv4 もしくは IPv6 を含めて待受していれば問題ない。
表示されない場合は、サービス状態とログを見直す。
この手順が完了すると、以下を満たしている状態になる。
zabbix_server.conf のバックアップが作成されている
DB 接続設定が反映されている
Zabbix Server が起動している
ログ上で DB 接続エラーが発生していない
TCP 10051 で待受している
確認コマンド
ls -l /etc/zabbix/zabbix_server.conf*
grep -E "DBHost|DBName|DBUser|DBPassword" /etc/zabbix/zabbix_server.conf
systemctl status zabbix-server
tail -n 20 /var/log/zabbix/zabbix_server.log
ss -lntp | grep 10051
次の手順では、
Zabbix Web フロントエンドを起動し、ブラウザから初期セットアップを行う。