Home Lab
PR

【Zabbix 7.0】Docker環境で「Connection refused」が出てwebUIの監視ができない時の解決策

pesche
記事内に商品プロモーションを含む場合があります

みなさんこんにちわ。
ペスケです。

Zabbix 7.0 を Docker Compose で構築したあと、WebUI からホストの監視をしようとしたら次のようなエラーが出て困っていませんか?

Get value from agent failed: Cannot establish TCP connection to [127.0.0.1]:10050: [111] Connection refusedCode language: CSS (css)

この記事では、Docker 環境特有の原因と、Zabbix WebUI だけで完結する解決手順をわかりやすく解説します。

原因:Docker ではローカルホスト(127.0.0.1)で通信できない

Zabbix を Docker Compose で起動すると、WebUI のホスト設定のデフォルト値が 127.0.0.1 になっています。
しかし Docker Compose 環境では、各サービス(zabbix-server、zabbix-agent など)はそれぞれ別のコンテナとして動作します。

127.0.0.1 はあくまで「自分自身(Zabbix Server コンテナ)」を指すアドレスです。
そのため、別コンテナで動いている Zabbix Agent には到達できずConnection refused が発生します。

Docker Compose 環境では、コンテナ同士は サービス名(DNS 名) で通信する仕組みになっています。

解決策:IP から DNS 名(zabbix-agent)に変更する

設定変更は Zabbix WebUI 上のホスト設定だけで完結します。docker-compose.yml を触る必要はありません。

手順

  1. Zabbix WebUI にログインする
  2. 左メニューから 「データ収集」→「ホスト」 を開く
  3. 対象ホスト(例:Zabbix server)をクリックして編集画面を開く
  4. 「インターフェース」セクションを確認する
  5. 接続方法を 「IP」→「DNS」 に切り替える
  6. DNS 名に zabbix-agent と入力する
  7. 「更新」 をクリックして保存する

変更前後の設定イメージは以下のとおりです。

項目変更前変更後
接続方法IPDNS
アドレス127.0.0.1zabbix-agent
ポート1005010050(変更不要)

DNS 名は、docker-compose.yml に記載されているサービス名と一致させてください。
サービス名を変更している場合はそちらの名前を入力します。

変更後の確認方法

設定を保存後、しばらく待つと Zabbix WebUI のホスト一覧に表示される ZBX アイコンが緑色になれば、エージェントとの通信が成功しています。

もし緑にならない場合は、以下を確認してみてください。

  • docker-compose.yml の Zabbix Agent サービス名が zabbix-agent になっているか
  • Zabbix Server と Zabbix Agent が同じ Docker ネットワークに属しているか
  • コンテナが正常に起動しているか(docker compose ps で確認)

まとめ

Zabbix 7.0 の Docker 環境で Connection refused が出る原因は、ホスト設定の接続先が 127.0.0.1(ローカルホスト)のままになっているためです。
Docker Compose ではコンテナ間通信に DNS 名を使う必要があるので、zabbix-agent に変更するだけで解決できます。

同じ問題で詰まっている方の参考になれば幸いです。

ABOUT ME
ペスケ
ペスケ
駆け出しブロガー
静岡県出身現在愛知県に住む30歳 グルメと旅行がとても好きで良く遊びに行きます 2026年は、マリオット・ホテルにたくさん宿泊することが目標です
記事URLをコピーしました