Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » Other Collector deployment tools and options: ECS/EC2, Fargate, Nomad, PCF » Amazon ECS EC2 でCollectorをデプロイする

Amazon ECS EC2 でCollectorをデプロイする 🔗

Use the guided setup to deploy the Collector as a Sidecar in an Amazon ECS EC2 cluster. The guided setup provides a JSON task definition for the Collector.

以下のCollector 構成オプションのいずれかを選択します:

  • デフォルト: Collectorイメージの/etc/otel/collector/ecs_ec2_config.yamlファイルがCollector設定に使用されます。

  • File: Collector 設定に使用するファイルを指定します。カスタム設定を使用する を参照してください。

  • AWSパラメータストア: Collector構成に使用するAWSパラメータストアのキーまたはARNを指定します。カスタム設定を使用する を参照してください。

AWSインテグレーションのガイド付きセットアップにアクセスするには、以下の手順を実行します:

  1. Splunk Observability Cloud にログインします。

  2. ナビゲーションメニューで、Data Management を選択します。

  3. Go to the Available integrations tab, or select Add Integration in the Deployed integrations tab.

  4. Select the tile for Amazon ECS EC2.

  5. セットアップガイドの手順に従ってください。

はじめに 🔗

以下のセクションでは、タスク定義の作成方法とCollectorの起動方法について説明します。Amazon ECSでDockerコンテナを実行するには、タスク定義が必要です。タスク定義を作成したら、Collectorを起動する必要があります。

Add the Collector as a Sidecar 🔗

注釈

To use this option you need to be familiar with Amazon ECS EC2 launch type. See Getting started with the classic console using Amazon EC2 for further reading.

Open the ECS task definition to which the Collector Sidecar is going to be added:

  1. リポジトリ から Collector のタスク定義を探します。

  2. Merge the definitions of the Collector with the existing ECS task definition.

  3. Replace MY_SPLUNK_ACCESS_TOKEN and MY_SPLUNK_REALM with valid values. You can pin the image version to a specific version instead of latest if you want to avoid automatic upgrades.

Collector は、デフォルトのコンフィギュレーションファイル /etc/otel/collector/ecs_ec2_config.yaml を使用するように設定されています。CollectorイメージDockerfileは Dockerfile から入手でき、デフォルトの構成ファイルの内容は ECS EC2 構成 で見ることができます。

備考:

  • You do not need the awsecscontainermetrics receiver in the default configuration file if all you want is tracing. You can take the default configuration, remove the receiver, then use the configuration in a custom configuration following the directions in カスタム設定を使用する.

  • To exclude metrics assign them as a stringified array to environment variable METRICS_TO_EXCLUDE.

  • You can set the memory limit for the memory_limiter processor using environment variable SPLUNK_MEMORY_LIMIT_MIB. The default memory limit is 512 MiB.

カスタム設定を使用する 🔗

カスタム構成ファイルを使用するには、Collectorタスク定義で SPLUNK_CONFIG 環境変数の値をカスタム構成ファイルのファイルパスに置き換えます。

あるいは、Configure ecs_observer で説明されているように、SPLUNK_CONFIG_YAML 環境変数を使用してカスタムコンフィギュレーション YAML を直接指定することもできます。

Configure ecs_observer 🔗

Use extension Amazon Elastic Container Service Observer (ecs_observer) in your custom configuration to discover metrics targets in running tasks, filtered by service names, task definitions, and container labels. ecs_observer is currently limited to Prometheus targets and requires the read-only permissions below. The Collector should be configured to run as an ECS Daemon. You can add the permissions to the task role by adding them to a customer-managed policy that is attached to the task role.

ecs:List*
ecs:Describe*

以下のカスタム設定例は、lorem-ipsum-cluster クラスターと us-west-2 地域で Prometheus ターゲットを検索するように設定された ecs_observer を示しています。タスク ARN パターンは ^arn:aws:ecs:us-west-2:906383545488:task-definition/lorem-ipsum-task:[0-9]+$ です。

結果は /etc/ecs_sd_targets.yaml に書き込まれます。prometheus レシーバーは、結果ファイルからターゲットを読み込むように構成されています。access_tokenrealm の値は、SPLUNK_ACCESS_TOKENSPLUNK_REALM 環境変数から読み取られます。これは、コンテナ定義で指定する必要があります。

extensions:
  ecs_observer:
    refresh_interval: 10s
    cluster_name: 'lorem-ipsum-cluster'
    cluster_region: 'us-west-2'
    result_file: '/etc/ecs_sd_targets.yaml'
    task_definitions:
      - arn_pattern: "^arn:aws:ecs:us-west-2:906383545488:task-definition/lorem-ipsum-task:[0-9]+$"
       metrics_ports: [9113]
       metrics_path: /metrics
receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'lorem-ipsum-nginx'
          scrape_interval: 10s
          file_sd_configs:
            - files:
                - '/etc/ecs_sd_targets.yaml'
processors:
  batch:
  resourcedetection:
    detectors: [ecs]
    override: false
exporters:
  signalfx:
    access_token: ${SPLUNK_ACCESS_TOKEN}
    realm: ${SPLUNK_REALM}
service:
  extensions: [ecs_observer]
  pipelines:
    metrics:
      receivers: [prometheus]
      processors: [batch, resourcedetection]
      exporters: [signalfx]

Launch the Collector as a Daemon 🔗

To launch the Collector from the Amazon ECS console:

  1. コンソールでクラスターに移動します。

  2. Services を選択します。

  3. Create を選択します。

  4. 以下のオプションを選択してください:#.起動タイプ:EC2 #.タスク定義 (ファミリー): splunk-otel-collector #.タスク定義 (リビジョン):1 (または最新) #.サービス名: splunk-otel-collector #.サービスタイプDAEMON #.他のすべてはデフォルトのままにしてください。

  5. Next step を選択します。

  6. 次のページにあるすべての項目をデフォルトのままにして、Next step を選択します。

  7. 次のページにあるすべての項目をデフォルトのままにして、Next step を選択します。

  8. Create Service を選択して、ECSクラスターの各ノードにCollectorをデプロイします。インフラとDockerのメトリクスがすぐに表示されるはずです。

AWSパラメータストアを使用する 🔗

コンフィギュレーションYAMLを直接指定するには、 SPLUNK_CONFIG_YAML 環境変数を使用します。SPLUNK_CONFIG の代わりに SPLUNK_CONFIG_YAML を使用してください。

例えば、まず、Configure ecs_observer のカスタム設定を AWS Systems Manager Parameter Store の splunk-otel-collector-config というパラメータに格納します。次に、次の例に示すように、valueFrom オプションを使用して、SPLUNK_CONFIG_YAML にパラメータを割り当てます:

{
         "name": "lorem-ipsum-cluster",
         "valueFrom": "^arn:aws:ecs:us-west-2:906383545488:task-definition/lorem-ipsum-task:[0-9]+$""
     }

注釈

タスクがパラメータストアへの読み取りアクセスを持つためには、タスクのロールにポリシー AmazonSSMReadOnlyAccess を追加する必要があります。詳しくは Systems manager parameter store を参照してください。

This page was last updated on 2024年10月23日.