Zabbixの導入とプロキシサーバーによる分散監視環境の構築

Zabbixの基本概念とデータ構造

Zabbixは、ネットワーク、サーバー、アプリケーションの可用性とパフォーマンスを監視するためのエンタープライズ向けソリューションです。監視データは主に以下の2つの形式で保持されます。

  • ヒストリ (History): 収集された個々の監視データの生の値。
  • トレンド (Trends): 1時間ごとの最小値、最大値、平均値を集計した統計データ。

データベースの準備と権限設定

Zabbix ServerおよびProxyは、設定や監視データを保存するためにSQLデータベースを必要とします。以下はMySQL/MariaDBを使用した初期設定の例です。

-- データベースの作成
CREATE DATABASE zabbix_master_db CHARACTER SET utf8 COLLATE utf8_bin;

-- ユーザーの作成と権限付与
CREATE USER 'zbx_admin'@'192.168.1.%' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON zabbix_master_db.* TO 'zbx_admin'@'192.168.1.%';
FLUSH PRIVILEGES;

Zabbix Serverのインストールと構成

Ubuntu環境におけるパッケージを利用したZabbix Serverの基本設定手順を説明します。

# リポジトリの登録とインストール
wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
dpkg -i zabbix-release_4.0-3+bionic_all.deb
apt update
apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-agent

# 設定ファイルの編集
vi /etc/zabbix/zabbix_server.conf

# 以下の項目を修正
DBHost=192.168.1.100
DBName=zabbix_master_db
DBUser=zbx_admin
DBPassword=secure_password

データベースのスキーマをインポートします。

zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzbx_admin -p -h 192.168.1.100 zabbix_master_db

分散監視を実現するZabbix Proxyの活用

Zabbix Proxyは、Serverに代わって監視データを収集し、一括してServerへ送信します。これにより、Serverの負荷軽減や、ネットワーク的に孤立した拠点の監視が可能になります。

Proxyの種類

  • アクティブモード: Proxyが自らServerに接続し、設定情報を取得・データを送信します。
  • パッシブモード: ServerがProxyに接続し、監視指示を送りデータを受け取ります。

Proxyの構成例 (アクティブモード)

# Proxyパッケージのインストール
apt install -y zabbix-proxy-mysql

# 設定の変更
vi /etc/zabbix/zabbix_proxy.conf

ProxyMode=0  # 0はアクティブモード
Server=192.168.1.50
Hostname=Regional-Proxy-A
DBHost=localhost
DBName=zabbix_proxy_local
DBUser=zabbix

JMXによるJavaアプリケーション(Tomcat)の監視

Zabbix Java Gatewayを使用することで、TomcatなどのJMX対応アプリケーションからヒープメモリやスレッド数の情報を取得できます。

Tomcat側のcatalina.shに以下のJMXオプションを追加します。

CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=192.168.1.20"

Zabbix Server/Proxy側でJava Gatewayを有効化します。

# zabbix_server.conf の設定
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5

Zabbix Agentの最適化

監視対象ホスト(Agent)の設定において、Serverからの要求を許可するServerパラメータと、Agent自らデータを送信するServerActiveを適切に設定します。

# /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.50,192.168.1.51  # 接続を許可するServer/Proxy
ServerActive=192.168.1.50         # アクティブチェック送信先
Hostname=Web-App-Server-01

パフォーマンスチューニングのポイント

大規模環境では、zabbix_server.conf内のプロセス数を調整することが重要です。

  • StartPollers: 一般的な監視項目の収集プロセス数。
  • StartDBSyncers: データベースへの書き込みプロセス数。
  • HistoryCacheSize: データベース書き込み前のキャッシュサイズ。

タグ: zabbix monitoring infrastructure MySQL proxy

11月3日 14:16 投稿