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インテグレーションのガイド付きセットアップにアクセスするには、以下の手順を実行します:
Splunk Observability Cloud にログインします。
ナビゲーションメニューで、Data Management を選択します。
Go to the Available integrations tab, or select Add Integration in the Deployed integrations tab.
Select the tile for Amazon ECS EC2.
セットアップガイドの手順に従ってください。
はじめに 🔗
以下のセクションでは、タスク定義の作成方法と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:
リポジトリ から Collector のタスク定義を探します。
Merge the definitions of the Collector with the existing ECS task definition.
Replace
MY_SPLUNK_ACCESS_TOKEN
andMY_SPLUNK_REALM
with valid values. You can pin the image version to a specific version instead oflatest
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 variableSPLUNK_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_token
と realm
の値は、SPLUNK_ACCESS_TOKEN
と SPLUNK_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:
コンソールでクラスターに移動します。
Services を選択します。
Create を選択します。
以下のオプションを選択してください:#.起動タイプ:EC2 #.タスク定義 (ファミリー): splunk-otel-collector #.タスク定義 (リビジョン):1 (または最新) #.サービス名: splunk-otel-collector #.サービスタイプDAEMON #.他のすべてはデフォルトのままにしてください。
Next step を選択します。
次のページにあるすべての項目をデフォルトのままにして、Next step を選択します。
次のページにあるすべての項目をデフォルトのままにして、Next step を選択します。
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 を参照してください。