「Zabbix agent is not available」
このエラーメッセージを見て、焦っていませんか?
「昨日まで正常に監視できていたのに…」 「Windowsサーバーの死活監視が全部赤くなってる!」 「ファイアウォールは開けたはずなのに、なぜ繋がらない?」
大丈夫です。このエラーの90%以上は設定ミスか、サービスの停止が原因です。ハードウェア故障ではありません。
実は、このエラーには明確なパターンがあり、順番にチェックしていけば15分以内に解決できることがほとんどです。
この記事では、現場で実際に遭遇する原因と、その解決方法を優先度順に解説します。監視を一刻も早く復旧させましょう!
まず確認!3分で試せる基本チェック

1. Zabbix Agentサービスの状態確認【最重要】
これが原因の50%を占めます!
確認手順:
- services.mscを実行(Windowsキー + R)
- **「Zabbix Agent」または「Zabbix Agent 2」**を探す
- 状態を確認
状態別の対処法:
- 停止 → 右クリック → 「開始」
- 開始済みなのにエラー → 「再起動」を試す
- サービスが存在しない → エージェントの再インストールが必要
PowerShellで確認:
Get-Service "Zabbix Agent*" | Select-Object Name, Status, StartType
サービスが「Running」でない場合:
Start-Service "Zabbix Agent"
# または
Restart-Service "Zabbix Agent"
2. ポート10050の疎通確認
Zabbixサーバーから到達できるか確認します。
エージェント側(Windows)で確認:
# ポートがリッスンしているか
netstat -an | findstr :10050
正常な場合の表示:
TCP 0.0.0.0:10050 0.0.0.0:0 LISTENING
Zabbixサーバー側から確認:
# telnetで接続テスト
telnet [WindowsサーバーIP] 10050
# ncコマンドでも可
nc -zv [WindowsサーバーIP] 10050
繋がらない場合 → ファイアウォールの問題
3. 設定ファイルの基本項目確認
設定ファイルの場所:
- 通常:
C:\Program Files\Zabbix Agent\zabbix_agentd.conf
- または:
C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
必須確認項目:
# Zabbixサーバーのアドレス(必須)
Server=192.168.1.100
# アクティブチェック用(該当する場合)
ServerActive=192.168.1.100
# ホスト名(Zabbixサーバーの設定と一致させる)
Hostname=WIN-SERVER01
# ログファイル(エラー確認用)
LogFile=C:\Program Files\Zabbix Agent\zabbix_agentd.log
よくあるミス:
- ServerにlocalhostやZabbixサーバー自身のIPを書いている
- Hostnameが大文字小文字含めて完全一致していない
- コメントアウト(#)し忘れ
エラーパターン別:詳細な解決方法
パターン1:「Cannot connect to [host:10050]: [113] No route to host」
原因: ネットワーク到達性の問題
解決手順:
- Windowsファイアウォールの確認
# 受信規則を追加
New-NetFirewallRule -DisplayName "Zabbix Agent" `
-Direction Inbound -Protocol TCP -LocalPort 10050 `
-Action Allow
- Windows Defenderファイアウォールで確認
- コントロールパネル → Windows Defender ファイアウォール
- 「詳細設定」→ 受信の規則
- ポート10050が許可されているか確認
- 一時的に無効化してテスト(本番環境では非推奨)
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
# テスト後は必ず有効化
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
パターン2:「Get value from agent failed: ZBX_TCP_READ() failed」
原因: エージェントが応答を返せない
解決方法:
- タイムアウト値を増やす
zabbix_agentd.conf:
Timeout=30 # デフォルト3秒から30秒に
- 同時接続数を確認
StartAgents=5 # 必要に応じて増やす
- メモリ不足の確認
Get-WmiObject Win32_OperatingSystem |
Select-Object TotalVisibleMemorySize, FreePhysicalMemory
パターン3:「Received empty response from Zabbix Agent」
原因: 設定の不一致またはアクセス制限
確認ポイント:
- Server設定の確認
# 複数のZabbixサーバーがある場合
Server=192.168.1.100,192.168.1.101
# セキュリティ注意:以下は避ける
Server=0.0.0.0/0 # 全てのIPを許可(危険)
- ホスト名の完全一致を確認
Windowsで現在のホスト名確認:
hostname
# または
[System.Net.Dns]::GetHostName()
Zabbixサーバー側の設定と完全一致させる(大文字小文字も)
パターン4:「Host [hostname] not found」
原因: Zabbixサーバー側にホストが登録されていない、または名前が違う
解決手順:
- Zabbix Web UIで確認
- 設定 → ホスト
- ホスト名が正確に登録されているか
- エージェント側の設定
# 以下の3つの方法から選択
# 方法1:ホスト名を明示的に指定
Hostname=WIN-SERVER01
# 方法2:システムのホスト名を使用
# Hostname=
# 方法3:ホスト名の代わりにIPを使用
HostnameItem=system.hostname
Windowsファイアウォール完全攻略
GUIでの設定方法
手順詳細:
- Windows Defender ファイアウォール with Advanced Security を開く
- wf.msc を実行
- 受信規則を作成
- 「受信の規則」→ 「新しい規則」
- 規則の種類:「ポート」
- プロトコル:TCP
- 特定のローカルポート:10050
- 接続を許可する
- プロファイル:すべて選択(またはドメインのみ)
- 名前:「Zabbix Agent Inbound」
- 送信規則(アクティブチェック使用時)
- 同様に送信規則でポート10051を許可
PowerShellでの一括設定
# Zabbix Agent用の規則を作成
New-NetFirewallRule -DisplayName "Zabbix Agent Passive" `
-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
セキュリティグループ(AWS/Azure)の設定
AWS EC2の場合:
- インバウンドルール:TCP 10050をZabbixサーバーのIPから許可
- アウトバウンドルール:通常はすべて許可でOK
Azureの場合:
- ネットワークセキュリティグループ(NSG)
- 受信セキュリティ規則でポート10050を追加
ログファイルから原因を特定

ログファイルの場所と確認方法
デフォルトの場所:
C:\Program Files\Zabbix Agent\zabbix_agentd.log
PowerShellで最新ログを確認:
# 最新50行を表示
Get-Content "C:\Program Files\Zabbix Agent\zabbix_agentd.log" -Tail 50
# リアルタイム監視
Get-Content "C:\Program Files\Zabbix Agent\zabbix_agentd.log" -Wait
# エラーのみ抽出
Select-String -Path "C:\Program Files\Zabbix Agent\zabbix_agentd.log" `
-Pattern "ERROR|WARNING" | Select-Object -Last 20
よくあるエラーメッセージと対処法
「cannot bind to port 10050」
- 原因:ポートが既に使用中
- 対処:
netstat -ano | findstr :10050
で確認し、競合プロセスを停止
「cannot open log file」
- 原因:権限不足
- 対処:Zabbix Agentサービスの実行アカウントに書き込み権限を付与
「no active checks on server」
- 原因:アクティブチェックの設定ミス
- 対処:ServerActiveの設定を確認
「permission denied」
- 原因:監視項目へのアクセス権限不足
- 対処:サービスアカウントをLocal Systemに変更
サービスアカウントと権限設定
適切なアカウントの選択
選択肢と特徴:
- Local System(推奨)
- 最も権限が強い
- パフォーマンスカウンター等すべて取得可能
- セキュリティリスクは高い
- Network Service
- 制限付きだが多くの監視は可能
- ドメイン環境では推奨
- 専用サービスアカウント
- 最もセキュア
- 必要な権限のみ付与
サービスアカウントの変更:
- services.msc → Zabbix Agent → プロパティ
- 「ログオン」タブ
- 「ローカルシステムアカウント」を選択
- サービスを再起動
必要な権限の付与
パフォーマンスモニター権限:
# ユーザーをPerformance Monitor Usersグループに追加
Add-LocalGroupMember -Group "Performance Monitor Users" `
-Member "ドメイン\ユーザー名"
イベントログ読み取り権限:
# Event Log Readersグループに追加
Add-LocalGroupMember -Group "Event Log Readers" `
-Member "ドメイン\ユーザー名"
設定ファイルの最適化
パフォーマンス向上設定
# === 基本設定 ===
Server=192.168.1.100
ServerActive=192.168.1.100
Hostname=WIN-SERVER01
# === パフォーマンス設定 ===
StartAgents=5 # 同時処理数(CPU数に応じて調整)
Timeout=30 # タイムアウト(重い処理がある場合)
BufferSize=1000 # バッファサイズ(大量アイテム時)
BufferSend=10 # 送信間隔(秒)
# === ログ設定 ===
LogFile=C:\Program Files\Zabbix Agent\zabbix_agentd.log
LogFileSize=10 # ログローテーション(MB)
DebugLevel=3 # 通常運用は3、トラブル時は4
# === セキュリティ設定 ===
EnableRemoteCommands=0 # リモートコマンド無効(セキュリティ)
UnsafeUserParameters=0 # 安全でないパラメータ拒否
# === Windows固有設定 ===
PerfCounter=\Processor(_Total)\% Processor Time,30
PerfCounter=\Memory\Available MBytes,60
トラブルシューティング用設定
デバッグ時の設定:
DebugLevel=4 # 詳細ログ
LogFileSize=50 # ログサイズを増やす
Timeout=30 # タイムアウトを延ばす
一般的なトラブルと解決策
監視データは取れるがグラフが描画されない
原因と対策:
- 時刻同期のずれ → NTPで同期
- ヒストリ保存期間が短い → Zabbix側で調整
- アイテムの型が不一致 → 数値型に統一
特定のアイテムだけエラーになる
確認方法:
# エージェント側でテスト
"C:\Program Files\Zabbix Agent\zabbix_agentd.exe" -t system.cpu.load[all,avg1]
よくある原因:
- UserParameterの記述ミス
- 実行権限不足
- タイムアウト
CPU使用率が高い
対策:
# 監視間隔を調整
BufferSend=30 # 送信間隔を延ばす
StartAgents=3 # エージェント数を減らす
予防保守とベストプラクティス
定期メンテナンス項目
週次:
- ログファイルのサイズ確認
- エラーログの確認
- CPU/メモリ使用率確認
月次:
- Zabbix Agentのバージョン確認
- Windowsアップデート後の動作確認
- ファイアウォール規則の確認
監視設定のベストプラクティス
推奨設定:
- 暗号化通信の使用(Zabbix Agent 2)
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK001
TLSPSKFile=C:\Program Files\Zabbix Agent\zabbix_agentd.psk
- 監視専用アカウントの作成
- 定期的なバックアップ
- 設定ファイル
- PSKファイル
- UserParameterスクリプト
アップグレード時の注意点
手順:
- 設定ファイルのバックアップ
- サービス停止
- 新バージョンインストール
- 設定ファイルの移行
- サービス開始
- 動作確認
まとめ:「not available」エラーを二度と起こさない!
ここまで読んでいただき、ありがとうございます!
「Zabbix agent is not available」エラーは、適切な手順で確認すれば必ず解決できます。
今すぐ確認すべき3つ:
- サービスが起動しているか
Get-Service "Zabbix Agent*"
- ポート10050が開いているか
Test-NetConnection -ComputerName localhost -Port 10050
- 設定ファイルのServerとHostname
- 特にHostnameの大文字小文字に注意!
トラブルシューティングの順序:
- サービス確認 → 再起動
- ファイアウォール確認 → ポート開放
- 設定ファイル確認 → 修正
- ログ確認 → エラー特定
- 権限確認 → 付与
予防のために:
- 設定変更時は必ずバックアップ
- ログの定期確認を習慣化
- テスト環境で事前検証
最後に、Zabbix Agentのトラブルは焦らず順番に確認することが大切です。この記事をブックマークして、トラブル時のチェックリストとして活用してください。
安定した監視環境の構築・運用を応援しています!
コメント