Windows Zabbix Agentインストール完全ガイド:監視設定まで15分で完了!

Windows

「Windowsサーバーの監視を自動化したい」 「Zabbix Agentのインストール手順が分からない」 「ファイアウォールの設定でつまずいている」

その悩み、この記事で完全解決します!

Zabbix Agentは、サーバー監視の定番ツール「Zabbix」のエージェントソフトウェア。 CPU使用率、メモリ、ディスク容量、サービス状態など、Windows サーバーのあらゆる情報を自動収集してくれます。

でも、Windows版のインストールは意外と落とし穴が多いんです。 サービス登録、ファイアウォール設定、設定ファイルの書き方…

この記事では、Zabbix Agent 6.0/6.4のインストールから監視開始まで、画像付きで完全解説! 15分後には、あなたのWindowsサーバーが完璧に監視できるようになりますよ。


スポンサーリンク

1. Zabbix Agentの基礎知識と事前準備

Zabbix Agentとは?

Zabbix Agentの役割:

  • 監視対象サーバーにインストールするエージェント
  • 監視データを収集してZabbixサーバーに送信
  • CPU、メモリ、ディスク、プロセス、ログなどを監視
  • プッシュ型(Agent → Server)とプル型(Server → Agent)の両方対応

動作要件の確認

対応OS:

  • Windows Server 2012/2012 R2
  • Windows Server 2016
  • Windows Server 2019
  • Windows Server 2022
  • Windows 10/11(テスト環境)

必要なリソース:

  • メモリ:最小64MB(推奨128MB以上)
  • ディスク:100MB以上
  • ネットワーク:Zabbixサーバーとの通信可能

バージョンの選択

2024年現在の推奨バージョン:

  • Zabbix 6.0 LTS(長期サポート版)安定重視
  • Zabbix 6.4(最新機能版)
  • Zabbix 5.0 LTS(旧環境との互換性)

重要: Zabbixサーバーとエージェントのメジャーバージョンは合わせる!


2. Zabbix Agentのダウンロードとインストール

公式サイトからダウンロード

ダウンロード手順:

  1. 公式サイトにアクセス https://www.zabbix.com/download_agents
  2. 条件を選択:
    • Zabbix Version: 6.0 LTS または 6.4
    • OS Distribution: Windows
    • OS Version: Any
    • Hardware: amd64(64bit)または i386(32bit)
  3. ダウンロードリンクをクリック 例:zabbix_agent-6.0.0-windows-amd64-openssl.msi

MSIインストーラーでインストール

インストール手順:

  1. MSIファイルを実行(管理者権限で)
  2. インストールウィザード:
    • Welcome → Next
    • License Agreement → I accept → Next
    • Host name: Windowsサーバーのホスト名
    • Zabbix server IP/DNS: ZabbixサーバーのIPアドレス
    • Agent listen port: 10050(デフォルト)
    • Server or Proxy for active checks: Zabbixサーバーと同じ
    • Enable PSK: セキュアな環境では有効化
  3. インストール先: デフォルト:C:\Program Files\Zabbix Agent
  4. Install → Finish

サイレントインストール(自動化)

コマンドラインでの一括インストール:

msiexec /i zabbix_agent-6.0.0-windows-amd64-openssl.msi ^
  /qn ^
  SERVER=192.168.1.100 ^
  SERVERACTIVE=192.168.1.100 ^
  HOSTNAME=WIN-SERVER01 ^
  ENABLEPSK=1 ^
  TLSPSKIDENTITY=PSK001 ^
  TLSPSKVALUE=1234567890abcdef

複数サーバーへの展開に便利!


3. 設定ファイル(zabbix_agentd.conf)の編集

設定ファイルの場所

デフォルトパス:

C:\Program Files\Zabbix Agent\zabbix_agentd.conf

バックアップを取る:

copy "C:\Program Files\Zabbix Agent\zabbix_agentd.conf" ^
     "C:\Program Files\Zabbix Agent\zabbix_agentd.conf.bak"

基本設定項目

最小限の設定:

# Zabbixサーバーのアドレス(パッシブチェック用)
Server=192.168.1.100

# アクティブチェック用サーバー
ServerActive=192.168.1.100

# ホスト名(Zabbixサーバーに登録する名前と一致させる)
Hostname=WIN-SERVER01

# ログファイル
LogFile=C:\Program Files\Zabbix Agent\zabbix_agentd.log

# ログサイズ(MB)
LogFileSize=10

詳細設定

パフォーマンスチューニング:

# タイムアウト(秒)
Timeout=30

# 同時実行数
StartAgents=3

# バッファサイズ
BufferSize=100
BufferSend=5

# デバッグレベル(0-5)
DebugLevel=3

セキュリティ設定:

# 特定のコマンドを許可
EnableRemoteCommands=1
LogRemoteCommands=1

# アクセス制限
AllowKey=system.run[*]
DenyKey=system.run[rm *]

# PSK暗号化(推奨)
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK001
TLSPSKFile=C:\Program Files\Zabbix Agent\zabbix_agentd.psk

4. Windowsサービスの設定と起動

サービスの確認と起動

サービス管理画面から:

  1. services.msc を実行
  2. Zabbix Agent」を探す
  3. 右クリック → 「開始

コマンドラインから:

# サービス状態確認
sc query "Zabbix Agent"

# サービス開始
net start "Zabbix Agent"

# サービス停止
net stop "Zabbix Agent"

# サービス再起動
net stop "Zabbix Agent" && net start "Zabbix Agent"

スタートアップの種類設定

自動起動の設定:

sc config "Zabbix Agent" start=auto

遅延開始の設定(推奨):

sc config "Zabbix Agent" start=delayed-auto

サービスアカウントの変更

特権が必要な監視項目がある場合:

  1. services.msc → Zabbix Agent → プロパティ
  2. 「ログオン」タブ
  3. 「このアカウント」を選択
  4. 管理者権限のあるアカウントを指定

5. Windows ファイアウォールの設定

インバウンドルールの追加

GUIから設定:

  1. Windows Defender ファイアウォール → 詳細設定
  2. 「受信の規則」→ 「新しい規則」
  3. ポート → TCP → 10050
  4. 「接続を許可する」
  5. すべてのプロファイルにチェック
  6. 名前:「Zabbix Agent」

PowerShellで設定:

New-NetFirewallRule -DisplayName "Zabbix Agent" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 10050 `
  -Action Allow `
  -Profile Any

アウトバウンドルール(アクティブチェック用)

New-NetFirewallRule -DisplayName "Zabbix Agent Active" `
  -Direction Outbound `
  -Protocol TCP `
  -RemotePort 10051 `
  -Action Allow `
  -Profile Any

特定IPからのみ許可(セキュア設定)

New-NetFirewallRule -DisplayName "Zabbix Agent Secure" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 10050 `
  -RemoteAddress 192.168.1.100 `
  -Action Allow

6. 動作確認とテスト

ローカルでの動作確認

エージェントの状態確認:

"C:\Program Files\Zabbix Agent\zabbix_agentd.exe" -t "agent.ping"

正常な応答:

agent.ping                                    [u|1]

基本的な監視項目のテスト

よく使うテストコマンド:

# ホスト名確認
zabbix_agentd.exe -t "agent.hostname"

# CPU使用率
zabbix_agentd.exe -t "system.cpu.util"

# メモリ情報
zabbix_agentd.exe -t "vm.memory.size[available]"

# ディスク容量
zabbix_agentd.exe -t "vfs.fs.size[C:,free]"

# サービス状態
zabbix_agentd.exe -t "service.info[Spooler]"

Zabbixサーバーからの接続テスト

Zabbixサーバー側で実行:

# エージェントの応答確認
zabbix_get -s 192.168.1.50 -k agent.ping

# ホスト名取得
zabbix_get -s 192.168.1.50 -k agent.hostname

# バージョン確認
zabbix_get -s 192.168.1.50 -k agent.version

7. ユーザー定義パラメータの設定

カスタム監視項目の追加

設定ファイルに追加:

# Windows Update の状態
UserParameter=windows.update.count,powershell.exe -NoProfile -Command "(Get-WindowsUpdate).Count"

# IISサイトの状態
UserParameter=iis.site.status[*],powershell.exe -NoProfile -Command "Get-WebSite -Name '$1' | Select-Object -ExpandProperty State"

# 特定プロセスのメモリ使用量
UserParameter=process.memory[*],powershell.exe -NoProfile -Command "Get-Process -Name '$1' | Measure-Object WorkingSet -Sum | Select-Object -ExpandProperty Sum"

# イベントログエラー数
UserParameter=eventlog.error.count[*],powershell.exe -NoProfile -Command "Get-EventLog -LogName $1 -EntryType Error -After (Get-Date).AddHours(-1) | Measure-Object | Select-Object -ExpandProperty Count"

PowerShellスクリプトの実行

スクリプトファイルの配置:

C:\Program Files\Zabbix Agent\scripts\check_service.ps1

設定ファイル:

UserParameter=custom.check[*],powershell.exe -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\scripts\$1.ps1" $2 $3

8. ログ監視の設定

Windowsイベントログ監視

設定例:

# イベントログ監視の有効化
UserParameter=eventlog.check[*],powershell.exe -NoProfile -Command "Get-EventLog -LogName '$1' -Newest $2 | ConvertTo-Json"

アプリケーションログ監視

IISログの監視:

UserParameter=iis.log.errors,powershell.exe -NoProfile -Command "Select-String -Path 'C:\inetpub\logs\LogFiles\W3SVC1\*.log' -Pattern ' 500 ' | Measure-Object | Select-Object -ExpandProperty Count"

9. トラブルシューティング

サービスが起動しない

確認事項:

  1. ✅ 設定ファイルの文法エラー zabbix_agentd.exe -c "C:\Program Files\Zabbix Agent\zabbix_agentd.conf" -t "agent.ping"
  2. ✅ ポート競合 netstat -an | findstr :10050
  3. ✅ イベントログ確認
    • イベントビューアー → アプリケーションとサービスログ

接続できない

チェックリスト:

  • ファイアウォール設定
  • ネットワーク到達性(ping確認)
  • Serverパラメータの設定
  • ホスト名の一致

パフォーマンス問題

対策:

# タイムアウトを延長
Timeout=30

# バッファサイズ増加
BufferSize=1000

# 同時実行数を増やす
StartAgents=5

10. セキュリティ強化

PSK暗号化の設定

PSKファイル作成:

# 256ビットのランダムキー生成
$psk = -join ((1..64) | ForEach {'{0:x}' -f (Get-Random -Max 16)})
$psk | Out-File -FilePath "C:\Program Files\Zabbix Agent\zabbix_agentd.psk" -NoNewline -Encoding ASCII

アクセス制限

特定のコマンドのみ許可:

# 危険なコマンドを拒否
DenyKey=system.run[*]
DenyKey=system.run[cmd.exe*]

# 必要なものだけ許可
AllowKey=system.cpu.*
AllowKey=vm.memory.*
AllowKey=vfs.fs.*

まとめ:Windows監視の自動化を実現!

Windows Zabbix Agentのインストールと設定、完璧にマスターできましたか?

インストール手順のおさらい:

  1. 📥 ダウンロード(2分)
    • 公式サイトからMSIファイル
    • バージョンは環境に合わせて
  2. 🔧 インストール(3分)
    • MSIを実行
    • サーバーIPとホスト名を設定
  3. ⚙️ 設定ファイル編集(5分)
    • Server、Hostname設定
    • 必要に応じてカスタマイズ
  4. 🔥 ファイアウォール設定(2分)
    • ポート10050を開放
    • 特定IPのみ許可(推奨)
  5. 動作確認(3分)
    • agent.pingでテスト
    • Zabbixサーバーから接続確認

重要ポイント:

エージェントとサーバーのバージョンを合わせる
ホスト名は必ず一致させる
ファイアウォール設定を忘れない
PSK暗号化でセキュリティ強化
定期的にログを確認

これで、Windowsサーバーの完全自動監視が実現! CPU、メモリ、ディスクの異常を即座に検知できるようになりました。

監視の自動化で、システム管理を効率化しましょう!📊✨

コメント

タイトルとURLをコピーしました