docker で zabbix_agent をデプロイする方法

docker で zabbix_agent をデプロイする方法

zabbix_agent のデプロイメント:

推奨事項: zabbix_agent は docker-compose を使用して個別にデプロイされます

起動方法:

1. 実行モードで起動する

docker run --rm --network zabbix --name zabbix_agent --link zabbix_server:zabbix-server -e ZBX_HOSTNAME="mythird" -e ZBX_SERVER_PORT="10051" -e ZBX_SERVER_HOST="172.22.0.3" -p 3998:10050 -d zabbix/zabbix-agent:alpine-3.0-latest

2. docker-compose.yml

ディレクトリ構造:

[root@コンテナ1 zabbix_agent]# cat etc/env_agent 
ZBX_SERVER_HOST=172.22.0.3
ZBX_SERVER_PORT=10051
ZBX_HOSTNAME=kgtest
ZBX_LISTENPORT=3050
ZBX_LOGTYPE=ファイル
ZBX_LOGFILE=/tmp/zabbix_agentd.log

a. zabbix_server/zabbix_proxyと同じdocker-compose.ymlにデプロイする場合、唯一の違いはリンクの設定であり、servicename: zabbixの名前の形式です。

  zabbix_エージェント:
    イメージ: zabbix/zabbix-agent:alpine-3.0-latest
    コンテナ名: zabbix_agent
    ポート:
     - 「10050:10050」
    環境:
     ZBX_HOSTNAME: kg
    ボリューム:
     - /etc/localtime:/etc/localtime:ro
    リンク:
     - zabbix_server:zabbixサーバー
    ユーザー: ルート
    特権: true
    再起動: 常に
    ネットワーク:
     - ザビックス

b. 単一展開:

A. Dockerブリッジモード:同じマシン上にある場合は、zabbix_server/zabbix_proxyと同じネットワークを使用する必要があります。

[root@container1 zabbix_agent]# cat docker-compose.yml 
バージョン: "3"
サービス:
  zabbix_エージェント:
    イメージ: zabbix/zabbix-agent:alpine-3.0-latest
    コンテナ名: zabbix_agent3
    ポート:
     - 「3999:3050」
    環境変数:
     - ./etc/env_agent
    ボリューム:
     - /etc/localtime:/etc/localtime:ro
     - ./etc/docker-entrypoint.sh:/usr/bin/docker-entrypoint.sh:ro   
     zabbix_agentd ディレクトリに、以下のディレクトリを作成します。  
     - ./scripts:/data/zabbix/scripts
     - ./ログ:/tmp
    ユーザー: ルート
    特権: true
    再起動: 常に
    ネットワーク:
     - ザビックス
ネットワーク:
  ザビックス:
    外部: 真

B. dockerのホストモードを使用してTCP接続の数を監視する

注: ホスト モードを使用する場合は、ファイアウォール内のローカル マシン上で zabbix_agent がマップするポートを開く必要があります。

[root@kg zabbix_agent]# cat docker-compose.yml 
バージョン: "3"
サービス:
  zabbix_エージェント:
    イメージ: zabbix/zabbix-agent:alpine-3.0-latest
    コンテナ名: zabbix_agent
    ポート:
     - 「3050:3050」
    環境変数:
     - ./etc/env_agent
    ボリューム:
     - /etc/localtime:/etc/localtime:ro
     - ./etc/docker-entrypoint.sh:/usr/bin/docker-entrypoint.sh:ro
     zabbix_agentd ディレクトリに、以下のディレクトリを作成します。
     - ./scripts:/data/zabbix/scripts
     - ./ログ:/tmp
    ユーザー: ルート
    特権: true
    再起動: 常に
    #TCP接続監視を実装するには、ホストネットワークモードnetwork_mode: hostを使用する必要があります

zabbix_agent が正常に動作しているかどうかを確認します。

まず、zabbix_agent を起動した後、サーバー/プロキシ コンテナーでエージェントにアクセスできるかどうかをテストします。

Web インターフェース設定:

a. エージェントが自動的に検出されない場合は、エージェント ホストを手動で追加する必要があります。

エージェントとサーバー/プロキシが同じマシン上にある場合、IP アドレスは Docker によって割り当てられたイントラネット IP アドレスである必要があり、ポートはローカル マシンにマップされたポートではなく、コンテナー内のポートです。

b. エージェントマシンを自動的に検出するように設定する

注意: ホスト グループに追加するように設定する場合は、まずホスト グループを作成する必要があります。

起こりうる問題:

1. エラー: temporarily disabling Zabbix agent checks on host "kgtest": host unavailable

解決:

a. ブリッジ モードの場合は、エージェントの ZBX_HOSTNAME がホスト構成のホスト名と同じかどうかを確認してください。

b. ホスト モードの場合は、ファイアウォールがローカル ポートへのエージェント マッピングを開いているかどうかを確認してください。テスト: telnet ローカル IP ポート

2. エラー: Received empty response from Zabbix Agent at [192.168.5.114]. Assuming that agent dropped connection because of access permissions.

そのうち、192.168.5.114はエージェントの外部/イントラネットIPです。

理由:

a. zabbix_proxy プロキシを使用する: エージェントの ZBX_SERVER_HOST は zabbix_proxy の IP (172.22.0.6) に設定されていますが、Web インターフェイスのホスト構成ではエージェントが選択されていません。

解決:

指定されたエージェントプログラムを使用するには選択してください

b. zabbix_server に直接接続します。

A. エージェントの ZBX_SERVER_HOST は、zabbix_server IP (172.22.0.3) ではなく 127.0.0.1 に設定されています。

解決:

エージェントのZBX_SERVER_HOSTをzabbix_serverのIPアドレスに設定します。

B. zabbix_agent のログにエラーが報告されます: 172.20.0.6 からのメッセージにヘッダーがありません。メッセージは無視されました。

理由: これは、zabbix_agent と zabbix_server のバージョンが異なり、互換性がないためです。zabbix_agent は新しいバージョンを使用しますが、zabbix_server は古いバージョンを使用します。

解決策: zabbix_agentとzabbix_serverのバージョンを確認する

3. 中国語インターフェースで自動検出を実行すると、次のエラー メッセージが表示されます。

英語版インターフェースに切り替えた後は、操作に問題はありません

zabbix_server の mysql の character_set_server のエンコード形式を変更する必要があります。 mysql のオンライン操作では問題を解決できないことがわかりました。zabbix_server の mysql サービス起動スクリプトを変更する必要があります。解決策については、私の別の記事「Docker デプロイメント zabbix_server」を参照してください。

docker で zabbix_agent をデプロイする手順についてはこれで終わりです。docker で zabbix_agent をデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Zabbix 監視 Docker アプリケーション構成
  • Dockerfile をベースに Zabbix 監視システムのコード例を作成する
  • Dockerを使用してZabbixをインストールし、カスタム監視項目を構成するプロセスの詳細な説明

<<:  NavicatがMySQL8.0.11に接続するとエラー2059が発生する

>>:  Vue ページ印刷で自動ページングを実装する 2 つの方法

推薦する

Vueルーティングコンポーネントでパラメータを渡す8つの方法の詳細な説明

シングルページアプリケーションを開発する場合、特定のルートを入力し、パラメータに基づいてサーバーから...

Linux で nginx を起動および再起動する方法

Nginx (エンジン x) は、IMAP/POP3/SMTP サービスも提供する高性能 HTTP ...

CentOS での Docker の詳細なインストール チュートリアル

DockerにはCEとEEがあり、CE版はコミュニティ版(無料)、EE版はセキュリティを重視したエン...

JavaScript 上級プログラミング: 変数とスコープ

目次1. 元の値と参照値2. インスタンス3. 範囲1. 元の値と参照値6 つの単純なデータ型の値は...

MySQL DATE_FORMAT関数の使用

タオバオが、ダブル11に最も多くの注文をした2人のユーザー、ユーザー1:「ショッピングの皇帝、陳哈哈...

docker で nginx+php+mysql を設定する方法

まず、方法を理解します。 docker exec を使用して Docker コンテナに入るDocke...

Uniappの小規模プログラム開発経験

1. 新しいUIプロジェクトを作成するまず、私たちの UI は ColorUI に基づいています。C...

レスポンシブデザインについて知っておくべきこと

レスポンシブデザインとは、ウェブサイトの開発プロセス中に、ユーザーの操作やデバイス環境に応じて対応す...

よく使われるnginxの書き換えルールの詳細な説明

この記事では、Web ページのリンクを美しくするためによく使用される書き換えルールをいくつか紹介しま...

IframeとFRAMEの違いの分析

1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...

コードを通じてHTMLエスケープ文字を識別する方法について説明します

データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...

JavaScript の find() メソッドと filter() メソッドの違いのまとめ

目次序文JavaScript find() メソッドJavaScript filter() メソッド...

MySQL マルチインスタンス構成のアプリケーションシナリオ

目次MySQL 複数インスタンスマルチインスタンスの概要マルチインスタンスとは何ですか?複数のインス...

絵文字と問題解決のためのMySQL/Javaサーバーサポートの詳細な説明

この記事では、絵文字用の MySQL Java サーバーのサポートと問題解決方法について説明します。...

Linuxネットワーク構成ツールの使用

この記事では、RHEL8 のネットワーク サービスとネットワーク構成ツール、およびネットワーク ファ...