Linux 用のインフラストラクチャエージェントは、デフォルトでContainer 環境をサポートします。 コンテナ OS を実行している場合、またはエージェントをコンテナとしてデプロイする必要がある制限がある場合は、インフラストラクチャエージェントのコンテナ化されたバージョンを実行できます。 これにより、コンテナー自体だけでなく、基盤となるホストのメトリックも監視できます。
カスタム(推奨) または 基本セットアップ を使用すると、インフラストラクチャエージェントをコンテナ環境内で実行することができます。ホストは、コンテナ化されたエージェントであれ、コンテナ化されていないバージョンであれ、一度に1つのエージェントのインスタンスしか実行できません。
何が必要
インフラストラクチャ エージェントのコンテナ化バージョンには、Docker 1.12 以降が必要です。
バージョン 1.42 以降、インフラストラクチャ エージェントは containerd
をサポートするため、Dockershim またはその他の containerd
ベースのソリューションのサポートが削除された Kubernetes v1.24 以降で使用できるようになりました。 containerd
と dockerd
両方のランタイム ソケットが使用可能な場合、インフラストラクチャ エージェントは containerd
ランタイム ソケットで動作します。コンテナーは、インフラストラクチャ エージェントによってサポートされている Linux ディストリビューションおよびバージョン 上で実行する必要があります。コンテナー イメージは、AMD64 および ARM64 アーキテクチャで利用可能であり、サポートされています。
ログフォワーダーは、コンテナ化されたエージェントには含まれていません。すべての機能を提供する基盤となるホストにエージェントをインストールすることをお勧めします。
カスタムセットアップ(推奨)
以下は、LinuxでカスタムDockerイメージを作成するための基本的な手順です。これにより、インフラストラクチャエージェントを、基盤となるホストを監視できるコンテナとして展開することができます。
推奨事項: newrelic/infrastructure
イメージを拡張し、独自のnewrelic-infra.yml
エージェント構成ファイルを使用します。 イメージが構築されたら、さらにリリース時間を設定しなくても、コンテナを簡単にスピンアップできます。 dockerで環境変数を使用してシークレットを提供しないでください。
Docker CLI
New Relic を使用して
newrelic-infra.yml
エージェント構成ファイルを作成します。 設定オプションの説明については、 構成設定を参照してください。license_key: YOUR_LICENSE_KEYnewrelic/infrastructure
イメージを拡張するDockerfile
を作成し、構成を/etc/newrelic-infra.yml
に追加します。FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.ymlイメージの構築とタグ付け
bash$docker build -t YOUR_IMAGE_NAME .構築したイメージから、必要な 必要な run フラグ でコンテナを実行します。
bash$docker run \>-d \>--name newrelic-infra \>--network=host \>--cap-add=SYS_PTRACE \>--privileged \>--pid=host \>--cgroupns=host # required on cgroup v2 \>-v "/:/host:ro" \>-v "/var/run/docker.sock:/var/run/docker.sock" \>YOUR_IMAGE_NAMEUIでデータを確認する方法など、次のステップの可能性については、 What's next?
Docker Compose
設定ファイルを保存するフォルダを作成します。
bash$mkdir ~/newrelic-infra-setupディレクトリを先ほど作成したものに変更します。
bash$cd ~/newrelic-infra-setupNew Relic を使用して
newrelic-infra.yml
エージェント構成ファイルを作成します。 設定オプションの説明については、 構成設定を参照してください。bash$echo "license_key: YOUR_LICENSE_KEY" > newrelic-infra.ymlnewrelic/infrastructure
イメージを拡張するnewrelic-infra.dockerfile
を作成し、構成を/etc/newrelic-infra.yml
に追加します。bash$touch newrelic-infra.dockerfilebash$vim newrelic-infra.dockerfile # you can use any text editor以下の内容をファイルに記述してください。
FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.ymldocker-compose.yaml
を作成します:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editor以下の内容をファイルに記述してください。
version: '3'services:agent:container_name: newrelic-infrabuild:context: .dockerfile: newrelic-infra.dockerfilecap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"restart: unless-stoppeddocker-compose
をビルドして開始します:bash$docker-compose -f docker-compose.yaml up -dUIでデータを確認する方法など、次のステップの可能性については、 What's next?
基本設定
基本的なセットアップをベースのNew Relicインフラストラクチャイメージで使用するには
Docker CLI
required run flags でコンテナを実行します。
bash$docker run \>-d \>--name newrelic-infra \>--network=host \>--cap-add=SYS_PTRACE \>--privileged \>--pid=host \>--cgroupns=host # required on cgroup v2 \>-v "/:/host:ro" \>-v "/var/run/docker.sock:/var/run/docker.sock" \>-e NRIA_LICENSE_KEY=YOUR_LICENSE_KEY \>newrelic/infrastructure:latestUIでデータを確認する方法など、次のステップの可能性については、 What's next?
Docker Compose
docker-compose.yaml
を作成します:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editor以下の内容をファイルに記述してください。
version: '3'services:agent:container_name: newrelic-infraimage: newrelic/infrastructure:latestcap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"environment:NRIA_LICENSE_KEY: "YOUR_LICENSE_KEY"restart: unless-stoppeddocker-compose
をビルドして開始します:bash$docker-compose -f docker-compose.yaml up -dUIでデータを確認する方法など、次のステップの可能性については、 What's next?
必要なコンテナ権限
Linux の名前空間を介してホストや他のコンテナからリソースが隔離されているため、コンテナはデフォルトで、基盤となるホストのリソースを非常に限定的に表示および制御することができます。これらの特別な権限がないと、インフラストラクチャエージェントはホストとそのコンテナを監視することができません。
インフラストラクチャエージェントは、システムファイルとシステムコールを使用して、そのホストに関するデータを収集します。インフラストラクチャエージェントがデータを収集する方法の詳細については、 インフラストラクチャの監視とセキュリティに関するドキュメント を参照してください。必要な権限は以下の通りです。
デフォルトではプライベートであるため、cgroupv2でdockerを使用する場合に必要です。これにより、エージェントはコンテナメトリックを収集できます。 Docker EngineAPIv1.41以降で使用できます。
このドキュメントはインストールの役に立ちましたか?
インストール後の手順
インストール完了後の次のステップについては、 What's next?
回収した在庫
インベントリ は、インフラストラクチャ・エージェントの内蔵データ・コレクターから収集されます。インフラストラクチャエージェントは、コンテナで動作するLinuxシステムのこのデータを収集します。
カテゴリー | ソース | 使用して収集したデータ |
---|---|---|
|
| エージェントの完全な設定ファイル |
|
|
コンテナデータ
インフラストラクチャ エージェントが Docker コンテナ内で実行されると、インフラストラクチャ エージェントがホスト上でネイティブに実行されているときに収集できるものと同じ ホスト コンピューティング データ および イベント データ を収集できます。詳細については、 Docker コンテナ データの表示方法に関するドキュメントを参照してください。
コンテナ化されたエージェントイメージ
コンテナ化されたエージェントイメージは、アルパインのベースイメージから構築されます。
ソースコードを確認してください
この統合はオープン ソース ソフトウェアです。そのソース コードを参照して改善を送信するか、独自のフォークを作成してビルドすることができます。