• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

オンホスト統合のためのコンテナ自動発見機能

コンテナ自動検出機能では、複数のコンテナで実行されるサービスを自動的に監視するように統合を構成することができます。統合の構成ファイルで、コンテナのマッチング基準を設定すると、エージェントは基準に合致する各ローカルコンテナに対して統合を実行します。

統合は、ディスカバリー要素を見つけた回数だけ実行されます。ディスカバリーでコンテナが見つからなかった場合、統合は実行されません。

ヒント

現在、 インフラストラクチャエージェント は、ローカルのDockerコンテナを発見することができます。

設定にプレースホルダーを追加

統合構成で、 ${discovery.<property>}プレースホルダーを作成する必要があります。これらは、特定のコンテナー情報に自動的に置き換えられます。

これらの例 (Docker のみの環境および Kubernetes の場合) は 、NGINX 統合を 構成して、イメージ名に nginxが含まれ、ラベルが env=productionであるすべてのローカル コンテナーを監視する方法を示しています。各サービスは異なる IP とポートを介して利用できるため、それらは変数である必要があります。

ディスカバリー・プロパティの追加

検出を構成するには、次のプロパティを使用して、統合構成 YAML でdiscoveryエントリを設定します。すべてのプロパティが定義された値と一致すると、コンテナが一致します。

発見キー名

説明

ttl

タイプ文字列

検出プロセスの数を最小限に抑えるために使用される、キャッシュされた検出結果の Time-To-Live。数値の後に時間単位 ( smまたはh ) を付けて定義します。

例: 30s10m1h0

デフォルト:1m

docker

タイプYAMLプロパティ

定義に一致する Docker コンテナー。これは、次のマップを含むmatchプロパティで構成されます:

  • 各キーは以下のプロパティのいずれかです。

  • 値は、返されたコンテナに対する与えられたプロパティの期待値です。

  • コンテナは、すべてのプロパティが一致した場合にマッチします(AND演算)。

    利用可能なYAMLキーは以下の通りです。

  • ip: コンテナーの外部 IP アドレス (存在する場合)

  • private.ip: コンテナのプライベート IP アドレス

  • port:コンテナ外部ポート番号

  • private.port: コンテナのプライベートポート番号

  • image:画像名

  • name:コンテナ名

  • label.<label name>: 名前でアクセスできる任意のコンテナ ラベル

発見例

次の例は、イメージがhttpd: (正規表現として提供) で始まり、 scrapable=yesというラベルが付いているすべての Docker コンテナーに一致します。結果は 5 分の Time-To-Live でキャッシュされます。

discovery:
ttl: 5m
docker:
match:
image: /^httpd:/
label.scrapable: yes

利用可能なコンテナ情報

ディスカバリー機能は現在、以下の変数を発信しており、これらは統合の設定に使用できます。インフラストラクチャエージェントは、これらの変数を、検出されたコンテナの対応する値に置き換えます。

重要

必ずdiscovery.プレフィックスを追加してください。

変数

説明

${discovery.ip}

コンテナのパブリックIPアドレス(ある場合

${discovery.private.ip}

コンテナのプライベートIPアドレス

${discovery.port}

コンテナのパブリックポート番号

${discovery.private.port}

コンテナのプライベートポート番号

${discovery.image}

画像名

${discovery.name}

コンテナ名

${discovery.label.<label name>}

任意の容器のラベル、その名前でアクセス可能

複数のポートのマッピング

コンテナが多くのプライベート ポートまたはパブリック ポートを公開している場合、 discovery.private.ports.またはdiscovery.ports.の後に 0 から始まるインデックスを使用してアクセスできます。ポートは、プライベート ポートの値が小さいものから大きいものへとインデックス付けされます。

例えば、80番と443番のプライベートポートを、それぞれ2345番と1111番のパブリックポートを介して公開するコンテナでは、以下の変数にそれぞれの値を指定します。

変数

価値

${discovery.private.ports.0}

80 (最下位のプライベート ポート)

${discovery.private.ports.1}

443 (最高のプライベート ポート)

${discovery.ports.0}

2345 (プライベート ポート 0 へのパブリック ポート マッピング)

${discovery.ports.1}

1111 (プライベート ポート 1 へのパブリック ポート マッピング)

${discovery.private.port}

80 ( ${discovery.private.ports.0}と同じ)

${discovery.port}

2345 ( ${discovery.ports.0}と同じ)

重要

portという単語は、インデックスのない変数では単数形であり、インデックスのある変数では複数形であることに注意してください。

プロトコル名によるポートのマッピング

前のセクションのインデックスに加えて、ポートはそのプロトコル名 ( tcpudpなど) で参照することもできます。たとえば、 ${discovery.ports.tcp}または${discovery.ports.udp}です。

複数のポートが同じプロトコルに一致する場合、前のセクションのルールによってインデックスを作成することもできます: ${discovery.ports.tcp.0}${discovery.ports.tcp.1}など。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.