• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

インフラ監視用Dockerコンテナ

Linux用インフラストラクチャ監視エージェント は、デフォルトでDocker環境 をサポートしています。コンテナOSを使用している場合、またはエージェントをコンテナとしてデプロイする必要があるという制限がある場合、インフラストラクチャ・モニタリング・エージェントのコンテナ版を実行することができます。これにより、基礎となるホストだけでなく、コンテナ自体のメトリクスを監視することができます。

カスタム(推奨) または 基本セットアップ を使用すると、インフラストラクチャエージェントをコンテナ環境内で実行することができます。ホストは、コンテナ化されたエージェントであれ、コンテナ化されていないバージョンであれ、一度に1つのエージェントのインスタンスしか実行できません。

Linux 用のインフラ監視エージェントを試してみませんか? New Relic アカウントを作成 無料でご利用いただけます。クレジットカードは必要ありません。

必要なこと

インフラストラクチャエージェントのコンテナ版には、Docker 1.12以上が必要です。コンテナは、当社のエージェントがサポートする Linux ディストリビューションおよびバージョン のいずれかを実行する必要があります。コンテナイメージは、AMD64およびARM64アーキテクチャで利用・サポートされています。

ログフォワーダーは、コンテナ化されたエージェントには含まれていません。すべての機能を提供する基盤となるホストにエージェントをインストールすることをお勧めします。

カスタムセットアップ(推奨)

以下は、LinuxでカスタムDockerイメージを作成するための基本的な手順です。これにより、インフラストラクチャエージェントを、基盤となるホストを監視できるコンテナとして展開することができます。

推奨: newrelic/infrastructure イメージ を拡張し、独自の newrelic-infra.yml エージェント 設定ファイル を使用してください。イメージが構築されると、起動時の設定を追加することなく、簡単にコンテナをスピンアップすることができます。Dockerでは環境変数を使ってシークレットを提供しないでください。

Docker CLI

  1. newrelic-infra.yml エージェント 設定ファイル New Relic ライセンスキー を作成します。config オプションの説明については、 configuration settings を参照してください。

    license_key: YOUR_LICENSE_KEY
  2. Dockerfileを作成 extending the newrelic/infrastructure image, and add your config to /etc/newrelic-infra.yml:

    FROM newrelic/infrastructure:latest
    ADD newrelic-infra.yml /etc/newrelic-infra.yml
  3. イメージの構築とタグ付け

    docker build -t YOUR_IMAGE_NAME .
  4. 構築したイメージから、必要な 必要な run フラグ でコンテナを実行します。

    docker run \
        -d \
        --name newrelic-infra \
        --network=host \
        --cap-add=SYS_PTRACE \
        --privileged \
        --pid=host \
        -v "/:/host:ro" \
        -v "/var/run/docker.sock:/var/run/docker.sock" \
        YOUR_IMAGE_NAME
  5. UIでデータを確認する方法など、次のステップの可能性については、 What's next?

Docker Compose

  1. 設定ファイルを保存するフォルダを作成します。

    mkdir ~/newrelic-infra-setup
  2. ディレクトリを先ほど作成したものに変更します。

    cd ~/newrelic-infra-setup
  3. newrelic-infra.yml エージェント 設定ファイル New Relic ライセンスキー を作成します。config オプションの説明については、 configuration settings を参照してください。

    echo "license_key: YOUR_LICENSE_KEY" > newrelic-infra.yml
  4. newrelic-infra.dockerfilenewrelic/infrastructure イメージを拡張して作成し、 /etc/newrelic-infra.yml に設定を追加します。

    touch newrelic-infra.dockerfile
    vim newrelic-infra.dockerfile #you can use any text editor
  5. 以下の内容をファイルに記述してください。

    FROM newrelic/infrastructure:latest
    ADD newrelic-infra.yml /etc/newrelic-infra.yml
  6. 作成 docker-compose.yaml:

    touch docker-compose.yaml
    vim docker-compose.yaml #you can use any text editor

    以下の内容をファイルに記述してください。

    version: '3'
    services:
    agent:
    container_name: newrelic-infra
    build:
    context: .
    dockerfile: newrelic-infra.dockerfile
    cap_add:
    - SYS_PTRACE
    network_mode: host
    pid: host
    privileged: true
    volumes:
    - "/:/host:ro"
    - "/var/run/docker.sock:/var/run/docker.sock"
    restart: unless-stopped
  7. Build and start docker-compose:

    docker-compose -f docker-compose.yaml up -d
  8. UIでデータを確認する方法など、次のステップの可能性については、 What's next?

基本設定

基本的なセットアップをベースのNew Relicインフラストラクチャイメージで使用するには

Docker CLI

  1. required run flags でコンテナを実行します。

    docker run \
       -d \
       --name newrelic-infra \
       --network=host \
       --cap-add=SYS_PTRACE \
       --privileged \
       --pid=host \
       -v "/:/host:ro" \
       -v "/var/run/docker.sock:/var/run/docker.sock" \
       -e NRIA_LICENSE_KEY=YOUR_LICENSE_KEY \
       newrelic/infrastructure:latest
  2. UIでデータを確認する方法など、次のステップの可能性については、 What's next?

Docker Compose

  1. 作成 docker-compose.yaml:

    touch docker-compose.yaml
    vim docker-compose.yaml #you can use any text editor

    以下の内容をファイルに記述してください。

    version: '3'
    
    services:
      agent:
        container_name: newrelic-infra
        image: newrelic/infrastructure:latest
        cap_add:
          - SYS_PTRACE
        network_mode: host
        pid: host
        privileged: true
        volumes:
          - "/:/host:ro"
          - "/var/run/docker.sock:/var/run/docker.sock"
        environment:
          NRIA_LICENSE_KEY: "YOUR_LICENSE_KEY"
        restart: unless-stopped
  2. Build and start docker-compose:

    docker-compose -f docker-compose.yaml up -d
  3. UIでデータを確認する方法など、次のステップの可能性については、 What's next?

必要なコンテナ権限

Linux の名前空間を介してホストや他のコンテナからリソースが隔離されているため、コンテナはデフォルトで、基盤となるホストのリソースを非常に限定的に表示および制御することができます。これらの特別な権限がないと、インフラストラクチャエージェントはホストとそのコンテナを監視することができません。

インフラストラクチャエージェントは、システムファイルとシステムコールを使用して、そのホストに関するデータを収集します。インフラストラクチャエージェントがデータを収集する方法の詳細については、 インフラストラクチャの監視とセキュリティに関するドキュメント を参照してください。必要な権限は以下の通りです。

プリビレッジ

説明

--network=host

コンテナのネットワーク名前空間をホストのネットワーク名前空間に設定します。これにより、エージェントはホストに関するネットワークメトリクスを収集することができます。

-v"/:/host:ro"

Bind は、ホストのルートボリュームをコンテナにマウントします。このホストのルートへの読み取り専用のアクセスにより、エージェントはホストからプロセスやストレージのメトリクス、およびインベントリデータを収集することができます。

--cap-add=SYS_PTRACE

システムプロセスをトレースするLinux機能を追加します。これにより、エージェントはホスト上で実行されているプロセスに関するデータを収集することができます。詳しくはこちら .

--privileged

--pid=host

-v"/var/run/docker.sock:/var/run/docker.sock"

バインドは、ホストの Docker daemon ソケットをコンテナにマウントします。これにより、エージェントはDocker daemonソケットを介してEngine APIに接続し、ホストのコンテナデータを収集することができます。

インストール後の手順

インストール完了後の次のステップについては、 What's next?

回収した在庫

インベントリ は、インフラストラクチャ・エージェントの内蔵データ・コレクターから収集されます。インフラストラクチャエージェントは、コンテナで動作するLinuxシステムのこのデータを収集します。

カテゴリー

ソース

使用して収集したデータ

メタデータ

agent_config

エージェントの完全な設定ファイル

システム

uptime -s, /etc/redhat-release, /proc/cpuinfo, /etc/os-release, /proc/sys/kernel/random/boot_id, /proc/sys/kernel/osrelease, /sys/class/dmi/id/product_uuid, /sys/devices/virtual/dmi/id/sys_vendor, /sys/devices/virtual/dmi/id/product_name

コンテナデータ

インフラストラクチャエージェントがDockerコンテナ内で実行されると、インフラストラクチャエージェントがホスト上でネイティブに実行されているときに収集できるのと同じ ホストコンピュートデータイベントデータ を収集することができます。詳しくは、 あなたのDockerコンテナのデータを見る方法についてのドキュメント をご覧ください。

コンテナ化されたエージェントイメージ

コンテナ化されたエージェントイメージは、アルパインのベースイメージから構築されます。

アルパインはバージョン0.0.55からベースイメージとして使用されています。これは、 latest タグで指定されているものです。それ以前のバージョンでは、CentOS 7がベースイメージとして使われていました。

ソースコードのチェック

この統合は、オープンソース・ソフトウェアです。 そのソースコードを閲覧することができます。 改良点を送ることもできますし、自分でフォークを作ってビルドすることもできます。

Copyright © 2022 New Relic株式会社。