Amazon ECS の Docker コンテナ上で実行され、 サポートされているサービスがある場合は、ECS 統合を通じてそれらの統合を有効にすることができます。これにより、監視対象サービス、ホスト、コンテナーからのデータがレポートされます。
要件
ECS上で動作しているサービスをモニターするには、以下の要件を満たす必要があります。
要件を満たす ECS 上で実行されるサポート対象サービス。サポートされているサービスは次のとおりです。
インフラストラクチャ エージェントの互換性と要件 を満たす、Amazon Linux、CentOS、または RHEL を実行する 自動スケーリング ECS クラスター。
ECSタスクでは、 ネットワークモードを
none
またはbridge
に設定する必要があります(awsvpc
およびhost
はサポートされていません)。
制限事項:
- このインストール方法では、RabbitMQ と Apache の統合はインベントリ データを報告しません。
- AWSファーゲートはサポートされていません。
有効にする方法
ECSで動作しているサービスのモニタリングを有効にする方法を説明する前に、その概要を説明します。
- Amazon EC2を有効にする ECSクラスターに当社のインフラストラクチャエージェントをインストールします。
- サービス固有の設定ファイルを使用して、サービス の監視を可能にします。
ステップ1: EC2にインフラストラクチャ・エージェントをインストールできるようにする
まず、Amazon EC2がECSクラスターに当社のインフラストラクチャ・エージェントをインストールできるようにする必要があります。これを行うには、まず起動時にインフラストラクチャ・エージェントをインストールするために、ユーザー・データを更新する必要があります。
以下は、EC2の起動設定を変更するための手順です(Amazon EC2ドキュメント から引用)。
ナビゲーション ペインのAuto scalingの下で、 Launch configurationsを選択します。
次のページでは、アップデートしたいローンチ構成を選択します。
右クリックしてCopy launch configurationを選択します。
Launch configuration detailsタブで、 Edit detailsをクリックします。
ユーザーデータを以下のいずれかのスニペットに置き換える。
Skip to reviewを選択します。
Create launch configurationを選択します。
次に、オートスケーリンググループの更新を行います。
ナビゲーション ペインの
Auto scaling
の下で、
Auto scaling groups
を選択します。
更新したいオートスケーリンググループを選択します。
Actions
メニューから
Edit
を選択します。
Launch configuration
のドロップダウン メニューで、作成された新しいリリース設定を選択します。
Save
をクリックします。
エージェントがインスタンスを自動的に検出しているかどうかをテストするには、Auto Scaling グループ内のEC2 インスタンスを終了します 。これで、置換インスタンスが新しいユーザー データで起動されます。5 分後、 [ホスト] ページに新しいホストからのデータが表示されます。
次に、サービスの監視を可能にすることに移ります。
ステップ2:サービスの監視を有効にする
EC2がインフラストラクチャエージェントを実行できるようにすると 、エージェントはホスト上で実行されているコンテナの監視を開始します。
次に、ECSにデプロイされたサービスを監視する方法について説明します。例えば、アプリケーション・サーバーの前に配置されたNGINXインスタンスを含むECSタスクを監視することができます。
ここでは、ECS上に展開された サポートされているサービス をどのようにモニターするかについて簡単に説明します。
- 監視するサービスのYAML構成ファイルを作成します。これは最終的に、AWSコンソールを介してEC2ユーザーデータセクションに配置されます。ただし、その前に、EC2のインフラストラクチャエージェントフォルダー(
etc/newrelic-infra/integrations.d
)にそのファイルを配置することで、設定が機能していることをテストできます。その構成ファイルは、コンテナーの自動検出形式を使用する必要があります。これにより、コンテナーを自動的に検索できます。正確な構成オプションは、特定の統合によって異なります。 - サービスからのデータがNew Relicに報告されていることを確認します。
- 表示されたデータに満足したら、EC2コンソールを使用して、その設定を適切な起動設定の
write_files
セクションに追加し、自動スケーリンググループを更新できます。 runcmd
セクションで、yum
コマンドを追加して、適切な起動構成に統合をインストールします。
ここでは、NGINXで上記の手順を行う詳細な例を示します。
サーバーへのSSHアクセス、または AWS Systems Manager Session Manager へのアクセスがあることを確認してください。インフラストラクチャエージェントを実行しているホストにログインします。
コマンドラインで、ディレクトリをintegrations configurationフォルダに変更します。
bash$cd /etc/newrelic-infra/integrations.dnginx-config.yml
というファイルを作成し、次のスニペットを追加します。---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${'${discovery.ip}'}:/statusREMOTE_MONITORING: trueMETRICS: 1この構成により、インフラストラクチャエージェントは
nginx
を含むECS内のコンテナを検索します。コンテナが一致すると、NGINXステータスページに接続します。discovery.ip
スニペットの動作の詳細については、自動検出を参照してください。一般的なNGINX構成の詳細については、 NGINX統合を参照してください。NGINX ステータス ページがポート 80 の
STATUS_URL
からのリクエストを処理するように設定されている場合、インフラストラクチャ エージェントはそれを監視し始めます。 5 分後、NGINX データがインフラストラクチャ UI ( one.newrelic.com > All capabilities > Infrastructure > Third party servicesまたはone.newrelic.com > All capabilities > Infrastructure > Third-party services ) に表示されていることを確認します。設定がうまくいったら、EC2の起動設定に入れます。
ナビゲーション ペインのAuto scalingの下で、 Launch configurationsを選択します。
次のページでは、アップデートしたいローンチ構成を選択します。
右クリックしてCopy launch configurationを選択します。
Launch configuration detailsタブで、 Edit detailsをクリックします。
User dataセクションで、
write_files
セクション (text/cloud-config
でマークされた部分) を編集します。新しいファイル/コンテンツのエントリーを追加します。
- content: |---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${'${discovery.ip}'}:/statusREMOTE_MONITORING: trueMETRICS: 1path: /etc/newrelic-infra/integrations.d/nginx-config.ymlまた、
runcmd
セクションを編集してyum
コマンドを含めてnri-nginx
をインストールします。runcmd:- [ yum, install, newrelic-infra, -y ]- [ yum, install, nri-nginx, -y ]- [ systemctl, daemon-reload ]- [ systemctl, enable, newrelic-infra.service ]- [ systemctl, start, --no-block, newrelic-infra.service ]
Skip to reviewを選択します。
Create launch configurationを選択します。
次に、オートスケーリンググループの更新を行います。
ナビゲーション ペインの
Auto scaling
の下で、
Auto scaling groups
を選択します。
更新したいオートスケーリンググループを選択します。
Actions
メニューから
Edit
を選択します。
Launch configuration
のドロップダウン メニューで、作成された新しいリリース設定を選択します。
Save
をクリックします。
EC2 インスタンスが終了すると、新しい NGINX コンテナを自動的に検索する新しいインスタンスに置き換えられます。