WindowsをZabbixで監視!サーバー管理を自動化する完全ガイド

Windows

「Windowsサーバーが夜中に停止していた…」 「ディスク容量不足に気づかなかった…」 「CPUが100%になっているのを見逃した…」

こんなトラブルを防ぐために必要なのが「監視」です。

Zabbix(ザビックス)は、世界中で使われている無料の監視ツール。 WindowsサーバーのCPU、メモリ、ディスク、サービスなど、あらゆる状態を24時間365日監視して、異常があればすぐに通知してくれます。

大企業のデータセンターから、小規模なオフィスまで、規模を問わず活用できるんです。

この記事では、WindowsをZabbixで監視する方法を、インストールから実践的な活用まで、すべて分かりやすく解説します。 もう深夜の緊急対応に怯える必要はありません!

スポンサーリンク

Zabbixって何?なぜWindows監視に最適なの?

Zabbixの基本概念

Zabbixは、ラトビア発のオープンソース監視ツールです。

主な特徴:

  • 完全無料:エンタープライズ機能も無料
  • 高機能:大規模環境にも対応
  • 柔軟性:カスタマイズ自在
  • 日本語対応:UIも文書も充実

監視の仕組み:

Zabbixサーバー(監視する側)
    ↓↑
Zabbixエージェント(Windowsにインストール)
    ↓
Windows情報を収集・送信

なぜZabbixがWindows監視に適しているのか

Windows専用機能:

  • WMI(Windows Management Instrumentation)対応
  • イベントログ監視
  • パフォーマンスカウンター取得
  • Windowsサービス監視
  • Active Directory連携

他ツールとの比較:

  • Nagios:設定が複雑、GUI劣る
  • PRTG:有料(100センサーまで無料)
  • SolarWinds:高額
  • Azure Monitor:Azure限定、従量課金

Zabbixは無料で高機能、これが最大の魅力です!

監視環境の構成パターン

小規模環境(1-10台)

シンプル構成:

Zabbixサーバー(Linux/Windows)
├── Windows Server 2022
├── Windows Server 2019
└── Windows 10/11 クライアント

仮想マシン1台でZabbixサーバーを構築可能。

中規模環境(10-100台)

標準構成:

Zabbixサーバー(専用サーバー)
├── Zabbixプロキシ(支社)
│   └── Windows群
└── 直接監視
    └── 本社Windows群

プロキシで負荷分散と拠点間通信を最適化。

大規模環境(100台以上)

エンタープライズ構成:

  • 冗長化されたZabbixサーバー
  • 複数のプロキシ
  • 専用データベースサーバー
  • 分散監視

Zabbixエージェントのインストール(Windows側)

エージェントのダウンロード

公式サイトから入手:

  1. https://www.zabbix.com/download_agents
  2. Windows用を選択
  3. バージョンとアーキテクチャ選択
    • 64bit版推奨
    • LTS版が安定

インストール手順

方法1:MSIインストーラー(推奨)

  1. MSIファイルを実行
  2. 設定入力
    • Host name:監視対象の名前
    • Zabbix server IP:サーバーのIPアドレス
    • Server active:アクティブチェック用
    • Listen port:10050(デフォルト)
  3. サービスとして登録
    • 自動的にサービス登録
    • 自動起動設定

方法2:手動インストール

# ファイルを展開
C:\zabbix\

# 設定ファイル編集
notepad C:\zabbix\conf\zabbix_agentd.conf

# サービス登録
C:\zabbix\bin\zabbix_agentd.exe --config C:\zabbix\conf\zabbix_agentd.conf --install

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

設定ファイルの重要パラメータ

zabbix_agentd.conf:

# Zabbixサーバーのアドレス
Server=192.168.1.100

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

# ホスト名(Zabbixサーバーと一致させる)
Hostname=WIN-SERVER-01

# ログファイル
LogFile=C:\zabbix\zabbix_agentd.log

# タイムアウト
Timeout=30

# リモートコマンド許可(注意が必要)
EnableRemoteCommands=1

# PSK暗号化(セキュリティ強化)
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=WIN-01
TLSPSKFile=C:\zabbix\zabbix_agentd.psk

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

ポート開放

PowerShell(管理者)で実行:

# Zabbixエージェント用ポート開放
New-NetFirewallRule -DisplayName "Zabbix Agent" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 10050 `
  -Action Allow

# 特定IPからのみ許可する場合
New-NetFirewallRule -DisplayName "Zabbix Agent Restricted" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 10050 `
  -RemoteAddress 192.168.1.100 `
  -Action Allow

Windows Defenderの除外設定

# Zabbixフォルダを除外
Add-MpPreference -ExclusionPath "C:\zabbix"
Add-MpPreference -ExclusionProcess "zabbix_agentd.exe"

Zabbixサーバー側の設定

ホストの追加

Web UIでの設定:

  1. 設定 → ホスト → ホストの作成
  2. ホストタブ:
    • ホスト名:WIN-SERVER-01
    • 表示名:Windows Server 2022
    • グループ:Windows servers
    • エージェントインターフェース:
      • IPアドレス:192.168.1.10
      • ポート:10050
  3. テンプレートタブ:
    • 「Windows by Zabbix agent」を追加
    • Active Directory用なら専用テンプレート
  4. 保存

テンプレートの種類

Windows用標準テンプレート:

  • Windows by Zabbix agent:基本監視
  • Windows filesystems by Zabbix agent:ファイルシステム
  • Windows CPU by Zabbix agent:CPU詳細
  • Windows memory by Zabbix agent:メモリ詳細
  • Windows network by Zabbix agent:ネットワーク

主要な監視項目の設定

CPU監視

監視項目:

# CPU使用率
system.cpu.util[all,avg5]

# CPU負荷
system.cpu.load[percpu,avg5]

# プロセッサキュー
perf_counter["\System\Processor Queue Length"]

トリガー設定:

  • 警告:CPU使用率 > 80%(5分間)
  • 致命的:CPU使用率 > 95%(3分間)

メモリ監視

監視項目:

# 物理メモリ使用率
vm.memory.size[pused]

# 利用可能メモリ
vm.memory.size[available]

# ページファイル使用率
perf_counter["\Paging File(_Total)\% Usage"]

推奨閾値:

  • メモリ使用率 > 90%で警告
  • ページファイル > 80%で警告

ディスク監視

監視項目:

# ディスク使用率
vfs.fs.size[C:,pused]

# ディスク空き容量
vfs.fs.size[C:,free]

# ディスクI/O
perf_counter["\PhysicalDisk(_Total)\Avg. Disk Queue Length"]

アラート例:

  • C:ドライブ残容量 < 10GB
  • 使用率 > 90%

Windowsサービス監視

重要サービスの監視:

# サービス状態確認
service.info[servicename]

# 例:IISの監視
service.info[W3SVC]

# SQL Serverの監視
service.info[MSSQLSERVER]

# Active Directoryの監視
service.info[NTDS]

自動復旧設定:

# リモートコマンドでサービス再起動
system.run[net start servicename]

イベントログ監視

設定方法

重要イベントの監視:

# エラーイベント監視
eventlog[System,,Error,,,,skip]

# 特定イベントIDの監視
eventlog[Application,,"Warning|Error",,,1001,skip]

# セキュリティログ監視
eventlog[Security,,"Failure Audit",,,,skip]

よく監視するイベントID

システム系:

  • 6008:予期しないシャットダウン
  • 1074:システムシャットダウン
  • 7036:サービスの開始/停止

セキュリティ系:

  • 4625:ログオン失敗
  • 4624:ログオン成功
  • 4720:ユーザーアカウント作成

パフォーマンスカウンター監視

カスタム監視の作成

パフォーマンスカウンター取得:

# IISの接続数
perf_counter["\Web Service(_Total)\Current Connections"]

# SQL Serverのバッファキャッシュ
perf_counter["\SQLServer:Buffer Manager\Buffer cache hit ratio"]

# ネットワーク使用率
perf_counter["\Network Interface(*)\Bytes Total/sec"]

PowerShellスクリプト連携

カスタムスクリプト実行:

# UserParameter設定
UserParameter=custom.check,powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\zabbix\scripts\check.ps1

アラート通知の設定

メール通知

設定手順:

  1. 管理 → メディアタイプ → Email
  2. SMTPサーバー設定
  3. ユーザーにメールアドレス登録
  4. アクション設定

Teams/Slack通知

Webhook設定:

// Teams通知用JavaScript
var params = JSON.parse(value);
var req = new HttpRequest();
req.addHeader('Content-Type: application/json');

var message = {
    "@type": "MessageCard",
    "summary": params.Subject,
    "sections": [{
        "activityTitle": params.Subject,
        "text": params.Message
    }]
};

return req.post(params.URL, JSON.stringify(message));

トラブルシューティング

エージェントが接続できない

確認項目:

  1. サービス状態確認
sc query "Zabbix Agent"
  1. ログ確認
type C:\zabbix\zabbix_agentd.log
  1. ポート確認
netstat -an | findstr 10050
  1. 疎通確認
telnet zabbix-server-ip 10051

データが取得できない

対処法:

  • UAC無効化またはエージェント権限昇格
  • WMIサービス再起動
  • パフォーマンスカウンター再構築
lodctr /R

高負荷時の対処

最適化:

  • 監視間隔を調整(30秒→60秒)
  • 不要な監視項目を無効化
  • アクティブチェックに切り替え

セキュリティ強化

PSK暗号化の設定

事前共有鍵の生成:

# 64文字の16進数文字列生成
-join ((1..32) | ForEach {'{0:X2}' -f (Get-Random -Max 256)})

最小権限の原則

専用ユーザー作成:

# Zabbix用ローカルユーザー
New-LocalUser -Name "zabbix_mon" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)
Add-LocalGroupMember -Group "Performance Monitor Users" -Member "zabbix_mon"

まとめ:24時間365日の安心を手に入れる

ZabbixでのWindows監視環境を構築すれば、システムトラブルを未然に防げます。

導入のステップ:

  1. 小さく始める
    • まず1台から監視
    • 基本的な項目のみ
    • 徐々に拡張
  2. 重要項目から監視
    • CPU、メモリ、ディスク
    • 重要サービス
    • イベントログ
  3. カスタマイズ
    • 業務に合わせた監視
    • 自動復旧設定
    • 通知の最適化

成功のポイント:

  • 過剰な監視は避ける
  • 閾値は環境に合わせて調整
  • 定期的なメンテナンス
  • ドキュメント化

Zabbixは学習コストはありますが、一度構築すれば強力な味方になります。

もう深夜の障害対応に怯える必要はありません。 Zabbixが24時間365日、あなたの代わりに見守ってくれます。

この記事を参考に、安心できる監視環境を構築してください! システムの健康状態を可視化して、トラブルを未然に防ぎましょう!

コメント

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