Linux 環境における Zabbix エージェントの導入とサーバー接続設定

Zabbix アーキテクチャ概要

Zabbix は、分散システムを監視するための包括的なソリューションです。主要な構成要素は以下の通りです。

  • Zabbix Server: システムのコアコンポーネント。データを受信し、アラートをトリガーします。また、収集されたデータをデータベースに保存する役割も担います。
  • Zabbix Agent: モニター対象となる機器にインストールされるクライアントソフト。監視データを実行して収集し、Server に送信します。現在は C 言語で実装された標準版(Agent)と、Go 言語で開発されたバージョン 2(Agent 2)が存在し、後者は高並列処理に対応しています。
  • Zabbix Proxy: Server を介さずにデータを収集・前処理を行い、バッチ転送することで Server 負荷を軽減します。
  • Web フロントエンド: 設定管理、データ表示、アラート設定を行うためのユーザーインターフェース。
  • データベース: 設定情報および時系列データやイベント情報を永続化します。PostgreSQL や MySQL などが利用可能です。

Linux サーバーへの Zabbix Agent インストール手順

ここでは、RHEL/CentOS 系ディストリビューションを対象とし、パッケージマネージャー(Yum/DNF)を使用してエージェントをインストールし、特定の Zabbix Server へ接続する構成を行います。

1. インストールスクリプトの作成

一括インストールと設定を自動化するためのシェルスクリプトを作成します。

vi /opt/scripts/zabbix_agent_setup.sh

2. スクリプトの実装内容

以下のコードをコピーして保存します。このスクリプトはリポジトリの追加、パッケージのインストール、設定ファイルの生成、そしてサービス起動までを一括で実行するように設計されています。

#!/bin/bash
#
# Zabbix Agent Automatic Setup Script
# Target: RHEL/CentOS 7+ / Rocky Linux
#

set -e

# 設定パラメータ
ZABBIX_SERVER_ADDRESS="192.168.10.252"  # メインサーバーの IP または FQDN
ZABBIX_VERSION="latest"                  # バージョン指定(例: latest, 5.4. など)
AGENT_INSTALL_DIR="/var/lib/zabbix"      # データ保管先
CONF_FILE_PATH="/etc/zabbix/zabbix_agentd.conf"
LOG_FILE="/var/log/zabbix/zabbix_agent.log"

echo "--- Starting Zabbix Agent Installation ---"

# 1. Zabbix リポジトリの登録
# 公式リポジトリを有効化
dnf install -y wget
wget https://repo.zabbix.com/zabbix/${ZABBIX_VERSION%/}/rhel/8/$(/usr/bin/arch)/x86_64/zabbix-release-$(pwd | awk -F '/' '{print $NF}')all.rpm -O /tmp/zabbix-release.rpm
if [ $? -ne 0 ]; then
    echo "Warning: Could not download release package automatically. Please ensure manual configuration."
fi

# 2. パッケージのインストール
echo "Installing Zabbix Agent..."
dnf makecache
dnf install -y zabbix-agent zabbix-agent2

# 3. 設定ファイルのカスタマイズ
echo "Configuring Zabbix Agent..."
if [ ! -f "$CONF_FILE_PATH" ]; then
    echo "Error: Configuration file not found at $CONF_FILE_PATH"
    exit 1
fi

# 既存の設定を上書きしてサーバー接続情報を反映
cp $CONF_FILE_PATH $CONF_FILE_PATH.bak

cat > $CONF_FILE_PATH <<EOF
### Zabbix Agent Configuration ###
# Active checks and Passive checks settings
Hostname=auto
ServerActive=${ZABBIX_SERVER_ADDRESS}:10051
Server=${ZABBIX_SERVER_ADDRESS}

# Logging
LogFile=${LOG_FILE}
PidFile=/var/run/zabbix/zabbix_agentd.pid

# Include external scripts
Include=/etc/zabbix/zabbix_agentd.d/*.conf
EOF

# ファイル権限の調整
chown root:zabbix $CONF_FILE_PATH
chmod 644 $CONF_FILE_PATH

# 4. サービスの有効化と起動
echo "Starting and Enabling Zabbix Agent Service..."
systemctl daemon-reload
systemctl enable zabbix-agent
systemctl start zabbix-agent

# 5. ステータス確認
if systemctl is-active --quiet zabbix-agent; then
    echo "SUCCESS: Zabbix Agent is running."
    echo "Server Address: ${ZABBIX_SERVER_ADDRESS}"
else
    echo "FAILED: Service failed to start. Check logs with 'journalctl -u zabbix-agent'"
    exit 1
fi

echo "--- Installation Complete ---"</code>

3. スクリプトの実行と検証

作成したスクリプトに対して実行権限を与え、テスト実行を行います。必要に応じてネットワークファイアウォール(ポート 10051)の確認も併せて行ってください。

chmod +x /opt/scripts/zabbix_agent_setup.sh
/opt/scripts/zabbix_agent_setup.sh

タグ: zabbix linux monitoring Yum system-administration

5月24日 09:41 投稿