このページでは、Red Hat Enterprise Linux 環境において監視サーバー自身を監視するために Zabbix Agent2 を導入する手順を整理する。
前のページまでで、Zabbix Server、PostgreSQL、Web フロントエンドの初期セットアップは完了している前提で進める。ここでは、監視サーバー(仮称)へ Zabbix Agent2 を導入し、Zabbix Server から監視できる状態を構成する。
あわせて、設定ファイルの確認と必要な設定変更を行い、サービスの起動、firewalld の設定、疎通確認までを実施する。最後に Zabbix Web 上でホスト登録を行い、監視データが取得できることを確認する。
なお、本ページは外部公開向けの内容であるため、実際のサーバー名や内部 IP アドレスは記載せず、仮称を用いて説明する。
作業対象サーバー
監視サーバー(仮称)(ZBX-WEB)
OS
Red Hat Enterprise Linux 10
構築対象
Zabbix Agent2
監視サーバー自身の監視設定
本ページで登場するサーバーは以下のとおりである。
監視サーバー(仮称)(ZBX-WEB)
Zabbix Server、PostgreSQL、Web フロントエンド、Zabbix Agent2 を構成するサーバー
証明書管理サーバー(仮称)(CERT-WEB)
後続手順で HTTPS 化を行う際に証明書管理で使用するサーバー
監視対象 Web サーバー(仮称)(MON-WEB01)
Zabbix Agent2 を導入して監視対象とする Web サーバー
監視対象 DB サーバー(仮称)(MON-DB01)
Zabbix Agent2 を導入して監視対象とする DB サーバー
管理端末(仮称)(ADMIN-PC)
Zabbix Web へアクセスし、ホスト登録や監視状態確認を行う端末
本ページは外部公開向けページである。
ただし、Zabbix の管理画面や監視基盤そのものは外部公開しておらず、内部利用を前提としている。
そのため、本ページでは実際のサーバー名や内部 IP アドレスは記載せず、仮称を用いて構成を説明する。
まず、既存の Zabbix Agent が導入されていないか確認する。
rpm -qa | grep zabbix-agent
解説
監視サーバーには、従来の zabbix-agent が入っている場合がある。
今回は Agent2 を使うため、既存 Agent の有無を先に確認する。
zabbix-agent-7.0.xx
または何も表示されない
解説
既存 Agent が入っていなければ、そのまま次へ進める。
入っている場合は、停止と削除を行ってから Agent2 を導入する。
既存の zabbix-agent サービス状態を確認する。
systemctl status zabbix-agent
解説
既存 Agent が起動している場合は、
Agent2 導入前に停止しておく。
既存の zabbix-agent を停止する。
systemctl stop zabbix-agent
解説
停止してから削除することで、
ポートや設定の競合を避けやすくなる。
既存の zabbix-agent を削除する。
dnf remove zabbix-agent
解説
今回は Agent2 を利用するため、
従来 Agent は削除して構成を揃える。
既存 Agent が削除されたことを確認する。
rpm -qa | grep zabbix-agent
解説
zabbix-agent が表示されなければ、削除は完了している。
Zabbix Agent2 が未導入であることを確認する。
rpm -qa | grep zabbix-agent2
解説
導入前の状態を確認してから進める。
すでに導入済みなら、重複インストールではなく設定確認へ進める。
Zabbix Agent2 をインストールする。
dnf install zabbix-agent2
解説
このコマンドで Agent2 本体を導入する。
監視サーバー自身を監視対象にするため、
ここでは ZBX-WEB 上へ Agent2 を入れる。
Zabbix Agent2 が導入されたことを確認する。
rpm -qa | grep zabbix-agent2
解説
zabbix-agent2-7.0.xx が表示されれば導入完了である。
設定ファイルの存在を確認する。
ls -l /etc/zabbix/zabbix_agent2.conf
解説
設定変更前に、対象ファイルがあることを確認しておく。
設定変更前にバックアップを取得する。
cp -p /etc/zabbix/zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conf_$(date +%Y%m%d)
解説
設定変更前の状態を残しておくことで、
後から比較や切り戻しがしやすくなる。
バックアップが作成されたことを確認する。
ls -l /etc/zabbix/zabbix_agent2.conf*
解説
zabbix_agent2.conf と
zabbix_agent2.conf_YYYYMMDD の両方が確認できれば問題ない。
現在の Agent2 設定を確認する。
grep -E "Server=|ServerActive=|Hostname=" /etc/zabbix/zabbix_agent2.conf
解説
初期状態では Server と ServerActive が 127.0.0.1、
Hostname が Zabbix server のままになっていることがある。
ここで現在値を確認しておく。
設定ファイルを編集する。
vi /etc/zabbix/zabbix_agent2.conf
解説
このファイルで Agent2 が接続を受ける相手と、
自分のホスト名を設定する。
設定内容
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=ZBX-WEB
解説
Server は Zabbix Server からの passive check 接続元を指定する。
今回の構成では同一サーバー上の Zabbix Server から接続するため 127.0.0.1 とする。
ServerActive は Agent2 からの active check 接続先を指定する。
こちらも同一サーバー上の Zabbix Server へ送信するため 127.0.0.1 とする。
Hostname は Zabbix Web に登録するホスト名と一致させる必要がある。
外部公開ページでは仮称を使うため、本ページでは ZBX-WEB としている。
設定内容を確認する。
grep -E "Server=|ServerActive=|Hostname=" /etc/zabbix/zabbix_agent2.conf
解説
設定した 3 項目がそのまま表示されればよい。
特に Hostname は、Zabbix Web に登録するホスト名と一致していることが重要である。
起動前の状態を確認する。
systemctl status zabbix-agent2
解説
導入直後は inactive のことがあるため、
起動前の状態を見ておく。
Zabbix Agent2 を起動し、自動起動も有効化する。
systemctl enable --now zabbix-agent2
解説
enable は OS 起動時に自動起動する設定である。
--now を付けることで、その場でサービスも起動する。
Zabbix Agent2 が正常に起動していることを確認する。
systemctl status zabbix-agent2
解説
active (running) が確認できれば、
Agent2 は正常に動いている。
現在の許可ポートを確認する。
firewall-cmd --list-ports
解説
Agent2 の待受ポート TCP 10050 が許可されているかを確認する。
未許可であれば、このあと追加する。
TCP 10050 を許可する。
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
解説
Zabbix Agent2 は通常 TCP 10050 で待受する。
Zabbix Server から接続されるため、このポートを許可しておく。
許可ポートを再確認する。
firewall-cmd --list-ports
解説
10050/tcp が表示されれば設定は反映されている。
Zabbix Agent2 が TCP 10050 で待受していることを確認する。
ss -lntp | grep 10050
解説
サービスが起動していても、待受していなければ監視はできない。
ここで LISTEN 状態を確認する。
LISTEN 0 128 0.0.0.0:10050
解説
待受が確認できれば、Agent2 は Zabbix Server からの監視要求を受けられる状態である。
Zabbix Server 側に zabbix_get があるか確認する。
which zabbix_get
解説
zabbix_get は Agent への疎通確認に使うツールである。
未導入なら、このタイミングで入れておく。
zabbix_get をインストールする。
dnf install -y zabbix-get
解説
同一サーバー上の Agent2 へ実際に問い合わせできるようにするため、
Zabbix Server 側ツールとして導入する。
インストールされたことを確認する。
which zabbix_get
解説
パスが表示されれば利用できる状態である。
Zabbix Server から Agent2 へ問い合わせできることを確認する。
zabbix_get -s 127.0.0.1 -k system.hostname
解説
今回は同一サーバー構成のため、127.0.0.1 を指定して確認する。
system.hostname は Agent2 からホスト名を取得する代表的なキーである。
ZBX-WEB
解説
ホスト名が返ってくれば、Agent2 は正常に応答している。
値が違う場合は Hostname 設定を見直す。
Zabbix Web へログインできることを確認する。
解説
ホスト登録は Zabbix Web から行う。
先に Web フロントエンドへログインできる状態であることを確認する。
Zabbix Web でホストを作成する。
画面遷移
データ収集
↓
ホスト
↓
ホストの作成
設定内容
ホスト名
ZBX-WEB
グループ
Linux servers
インターフェース
Agent
IP:127.0.0.1
Port:10050
テンプレート
Linux by Zabbix agent
解説
ホスト名は Agent2 の Hostname と一致させる。
テンプレートは Linux by Zabbix agent を適用する。
同一サーバー構成のため、ここでは 127.0.0.1 を使っている。
登録後、ホスト状態を確認する。
解説
ホストが追加され、ZBX アイコンが緑になっていれば、
監視データ取得が始まっている。
少し時間を置くと値が入り始めることがある。
この手順が完了すると、以下を満たしている状態になる。
zabbix-agent2 がインストールされている
設定ファイルのバックアップが作成されている
Server、ServerActive、Hostname が設定されている
zabbix-agent2 が起動している
TCP 10050 が許可されている
TCP 10050 で待受している
zabbix_get による疎通確認ができる
Zabbix Web にホスト登録できる
監視データ取得が始まる
確認コマンド
rpm -qa | grep zabbix-agent2
ls -l /etc/zabbix/zabbix_agent2.conf*
grep -E "Server=|ServerActive=|Hostname=" /etc/zabbix/zabbix_agent2.conf
systemctl status zabbix-agent2
firewall-cmd --list-ports
ss -lntp | grep 10050
which zabbix_get
zabbix_get -s 127.0.0.1 -k system.hostname
次の手順では、
Zabbix Web フロントエンドを HTTPS 化する。