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 つの方法

推薦する

純粋なCSSで立体的な画像配置効果を実現するサンプルコード

1. 要素の幅/高さ/パディング/マージンのパーセンテージ基準要素の幅/高さ/パディング/マージンの...

Linux 脆弱性スキャンツール lynis の使用分析

はじめに: Lynis は、徹底的なセキュリティ スキャンを実行できる Unix システム用のセキュ...

フロントエンドJavaScriptは関数のカリー化を完全に理解している

目次1. カレーとは何か2. カレーの用途3. カリー化ユーティリティ関数をカプセル化する方法 1....

CSS インライン スタイル、埋め込みスタイル、外部参照スタイルを使用する 3 つの方法

3 つの方法を使用する簡単な例は次のとおりです。インラインスタイル: <!doctypehtm...

HTML 基本コントロール入門_PowerNode Java アカデミー

<input> タグ<input> タグはユーザー情報を収集するために使用さ...

Apache をインストールした後、サービスを開始できません (サービスを開始するとエラー コード 1 が表示されます)

目次1. エラーメッセージ2. エラーの原因3. 解決策1. エラーメッセージ1. インストール後、...

MySQL で単一のフィールド内の複数の値を分割および結合する方法

複数の値を組み合わせて表示これで、図1から図2に示す要件が揃いました。 どうやってやるんですか?次の...

HTMLは正規表現を使用してテーブルの例をテストします

以下は、HTML で正規表現を使用してテーブルをチェックするサンプル コードです。具体的なコードの内...

ドラッグ効果を実現するための js オブジェクト指向メソッド

この記事では、ドラッグアンドドロップをJSオブジェクト指向で実装するための具体的なコードを参考までに...

ボタンをクリックしてテキストを入力ボックスに変換し、保存をクリックしてテキスト実装コードに変換します。

ボタンをクリックしてテキストを入力ボックスに変換し、保存をクリックしてテキスト実装コードに変換します...

HTML 形式の JSON 出力の例 (テスト インターフェース)

JSON データを美しいインデント形式で表示するには、最も単純な JSON.stringify 関...

MySQL でテーブルを作成するときの NULL と NOT NULL の使用方法の詳細な説明

MySQL の仕様によっては、テーブル作成仕様にすべてのフィールドが空であってはならないという要件を...

Linux でのマルチスレッドプログラミング例の分析

1 はじめにスレッド技術は 1960 年代にすでに提案されていましたが、マルチスレッドがオペレーティ...

ウェブサイトのカラースキーム ウェブサイトに適した色の選択

色はウェブサイト訪問者に影響を与えますか?数年前までは、ウェブサイトはまだ贅沢品でしたが、今ではほと...

MySQLクエリキャッシュの簡単な使い方の詳細な説明

目次1. クエリキャッシュの実装プロセス2. クエリキャッシュを構成する3. クエリキャッシュを有効...