Amazon ECS EC2 でCollectorをデプロイする 🔗
ガイド付きセットアップを使用して、Amazon ECS EC2クラスターにサイドカーとしてCollectorをデプロイします。
AWSインテグレーションのガイド付きセットアップにアクセスするには、以下の手順を実行します:
Splunk Observability Cloud にログインします。
ナビゲーションメニューで、Data Management を選択します。
Available integrations タブにアクセスするか、Deployed integrations タブで Add Integration を選択します。
Amazon ECS EC2 のタイルを選択します。
セットアップガイドの手順に従ってください。Collector の JSON タスク定義が記載されています。
以下のCollector 構成オプションのいずれかを選択します:
デフォルト: Collectorイメージの/etc/otel/collector/ecs_ec2_config.yamlファイルがCollector設定に使用されます。
File: Collector 設定に使用するファイルを指定します。カスタム設定を使用して Collector をデプロイする を参照してください。
AWSパラメータストア: Collector構成に使用するAWSパラメータストアのキーまたはARNを指定します。AWSパラメータストアを使用して Collector をデプロイする を参照してください。
Collectorをサイドカーとして追加する 🔗
注釈
このオプションを使用するには、Amazon ECS EC2 ローンチに精通している必要があります。Amazon EC2 を使用してクラシックコンソールで開始する を参照してください。
Collector サイドカーを追加する ECS タスク定義を開きます:
リポジトリ から Collector のタスク定義を探します。
Collectorの定義を既存のECSタスク定義にマージします。
MY_SPLUNK_ACCESS_TOKEN
とMY_SPLUNK_REALM
を有効な値に置き換えてください。自動アップグレードの問題を避けたい場合は、latest
の代わりに、イメージのバージョンを特定のバージョンに固定できます。
Collector は、デフォルトのコンフィギュレーションファイル /etc/otel/collector/ecs_ec2_config.yaml
を使用するように設定されています。CollectorイメージDockerfileは Dockerfile から入手でき、デフォルトの構成ファイルの内容は ECS EC2 構成 で見ることができます。
備考:
トレースするだけであれば、デフォルト構成ファイルの
awsecscontainermetrics
レシーバーは必要ありません。デフォルトの設定を使用し、レシーバーを削除し、カスタム設定を使用して Collector をデプロイする の指示に従ってカスタム設定で設定を使用することができます。メトリクスを除外するには、文字列化された配列として環境変数
METRICS_TO_EXCLUDE
に割り当てます。環境変数
memory_limiter
を使用して、SPLUNK_MEMORY_LIMIT_MIB
プロセッサーのメモリ制限を設定できます。デフォルトのメモリ制限は512MiBです。
カスタム設定を使用して Collector をデプロイする 🔗
カスタム構成ファイルを使用するには、Collectorタスク定義で SPLUNK_CONFIG
環境変数の値をカスタム構成ファイルのファイルパスに置き換えます。
あるいは、 Amazon Elastic Container Service オブザーバーエクステンションを設定する で説明されているように、SPLUNK_CONFIG_YAML
環境変数を使用してカスタム設定 YAML を直接指定することもできます。
Amazon Elastic Container Service オブザーバーエクステンションを設定する 🔗
カスタム設定で Amazon Elastic Container Service Observer ( ecs_observer
) エクステンションを使用すると、サービス名、タスク定義、コンテナラベルでフィルタリングされた、実行中のタスクのメトリクスターゲットを検出できます。
前提条件 🔗
以下が該当します:
Collector は ECS デーモンとして実行する必要があります。ECS コンソールから Collectorをデーモンとして実行する を参照してください。
ECS オブザーバーは現在、Prometheus のターゲットに限定されています。
ECS Observer には、以下の読み取り専用権限が必要です。タスクロールにアタッチされている顧客管理ポリシーに追加してください。
ecs:List*
ecs:Describe*
ECS コンソールから Collectorをデーモンとして実行する 🔗
Amazon ECSコンソールでCollectorを起動するには:
コンソールでクラスターに移動し、Services を選択します。
Create を選択し、以下のオプションを定義します:
起動タイプ:EC2
タスク定義 (ファミリー): splunk-otel-collector
タスクの定義(リビジョン):1 (またはその場合で最新のもの)
サービス名:splunk-otel-collector
サービスタイプ:DAEMON
次のページにあるその他すべての項目をデフォルトのままにして、サービスの作成を要求されるまで、Next step に進みます。
Create Service を選択して、ECSクラスターの各ノードにCollectorをデプロイします。インフラとDockerのメトリクスがすぐに表示されるはずです。
設定例 🔗
以下の設定例では、ecs_observer
クラスターと lorem-ipsum-cluster
地域で Prometheus ターゲットを検索するように us-west-2
を設定します。ここで、タスク 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]
AWSパラメータストアを使用して Collector をデプロイする 🔗
AWSパラメータストアを使用するには、SPLUNK_CONFIG_YAML
を使用する代わりに、SPLUNK_CONFIG
環境変数で設定 YAML を直接指定することもできます。
注釈
パラメータストアへの読み取りアクセスを持つためには、タスクのロールにポリシー AmazonSSMReadOnlyAccess
を追加します。詳細については、Systems manager parameter store を参照してください。
以下の手順に従ってください:
Amazon Elastic Container Service オブザーバーエクステンションを設定する のカスタム設定を AWS Systems Manager Parameter Store の
splunk-otel-collector-config
というパラメータに格納します。次に、以下の例に示すように、
splunk-otel-collector-config
オプションを使用して、SPLUNK_CONFIG_YAML
にvalueFrom
パラメータを割り当てます:
{
"valueFrom": "splunk-otel-collector-config",
"name": "SPLUNK_CONFIG_YAML"
}
注意
AWS Parameter Storeは、設定ファイルのサイズを 4096 バイトに制限しています。