Splunk Observability Cloud API を使用して AWS に接続する

API を使用して、Splunk Observability Cloud を AWS に接続し、権限を確認し、インテグレーションを設定し、ログを収集し、CloudWatch Metric Streams を有効にします。

Splunk Observability Cloud を AWS アカウントに接続するには、以下の手順を実行します:

  1. AWS 接続を作成します。利用可能な AWS リージョンを参照してください。

  2. IAM ポリシーを確認します。AWS への接続に必要な権限を指定します。

  3. セットアップ設定します

  4. AWS への接続方法を設定します。ポーリング または Metric Streams を選択します。

  5. CloudFormation をデプロイします

  6. ログを収集します

  7. 次のステップを参照してください。

1. AWS 接続を作成する

Splunk Observability Cloud API を介して Splunk Observability Cloud を AWS に接続するには、以下の手順を実行します:

外部AWS IDの作成

外部AWS IDを作成するには、コマンドラインインターフェイスを開き、以下のコマンドを使用して外部IDを生成するAWS接続を作成します:

curl -X POST 'https://app.<realm>.signalfx.com/v2/integration' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'x-sf-token: <USER_API_ACCESS_TOKEN>' \
  -H 'content-type: application/json' \
  --data-raw '{"name":"AWS-connection-name","type":"AWSCloudWatch","authMethod":"ExternalId","pollRate":300000,"services":[],"regions":["us-east-1", "us-east-2", "us-west-1", "us-west-2"]}'

システム・レスポンスは次のようになります:

{
"authMethod" : "ExternalId",
"enabled" : false,
"externalId" : "<externalId>",
"id" : "<integrationId>",
"importCloudWatch" : false,
"name" : "AWS",
"pollRate" : 300000,
"regions" : [ "us-east-1", "us-east-2", "us-west-1", "us-west-2" ],
"roleArn" : null,
"services" : [ ],
"sfxAwsAccountArn" : "arn:aws:iam::<accountId>:root"
"type" : "AWSCloudWatch"
}

システムレスポンスでは、以下の点に注意してください:

  • id フィールドは、今作成したインテグレーションの ID です。

  • externalIdaccountId は、後でAWSコンソールでIAM(Identity and Access Management)ロールを作成するときに使用されます。

  • CloudWatch Metrics コレクションが設定されていないため、importCloudWatch の値が false に設定されています。

AWSポリシーとIAMロールを作成する

一意の Amazon Resource Name(ARN)を持つ AWS ポリシーと AWS IAM ロールを作成するには、AWS コンソールにアクセスして「外部 ID を使って AWS で認証する(推奨)」の指示を参照してください。前のステップで生成された externalIdaccountId の値を使用します。

2. IAM ポリシーと必要な権限を確認する

これらはAWSのデータを収集するために必要なアクセス許可です:

3. セットアップの設定

Splunk Observability Cloud に ARN ロールを提供します。

また、以下のユースケースをサポートするように接続を設定することもできます:

  • CloudWatch APIを使用して、選択したリージョンとサービスのメトリクスを収集します。

  • CloudWatch APIを使用して、すべてのサービスのメトリクスを収集します。

  • CloudWatch Metric Streamsを単独で、またはログ収集と一緒に使用してメトリクスを収集します。

次の例では、services の値を指定せずに、選択したリージョンとすべてのサービスからメトリクスを収集する方法を示しています。

curl -X PUT 'https://app.<realm>.signalfx.com/v2/integration/<integrationId>' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'x-sf-token: <USER_API_ACCESS_TOKEN>' \
  -H 'content-type: application/json' \
  --data-raw '{
    "authMethod" : "ExternalId",
    "created" : 1690856052734,
    "createdByName" : null,
    "creator" : "FVaMfXTAIAA",
    "customCloudWatchNamespaces" : null,
    "enableAwsUsage" : false,
    "enableCheckLargeVolume" : false,
    "enabled" : true,
    "externalId" : "<externalId>",
    "id" : "<integrationId>",
    "importCloudWatch" : true,
    "largeVolume" : false,
    "lastUpdated" : 1690856052734,
    "lastUpdatedBy" : "FVaMfXTAIAA",
    "lastUpdatedByName" : null,
    "name" : "AWS-connection-name",
    "pollRate" : 300000,
    "regions" : [ "us-east-1", "us-east-2", "us-west-1", "us-west-2" ],
    "roleArn" : "<your-aws-iam-role-arn>",
    "services" : [ ],
    "sfxAwsAccountArn" : "arn:aws:iam::<accountId>:root",
    "syncCustomNamespacesOnly" : false,
    "syncLoadBalancerTargetGroupTags" : false,
    "type" : "AWSCloudWatch"}'

4. AWS への接続方法を設定する

AWSへの接続方法を設定します:APIポーリング経由、または Metric Streams を使用します。

APIポーリングの設定(デフォルト)

CloudWatch API をポーリングして AWS のメトリックを取得する場合、以下の間隔に注意してください。

  • まず、ListMetrics APIで15分ごとにメトリクスのリストを取得します。

  • 次に、GetMetricData API を使用してデータポイントを取得します。 GetMetricStatistics API は廃止されていることに注意してください。詳細については、「GetMetricStatistics API の廃止通知」を参照してください。

    • pollRate を使用して、メトリクスのポーリング間隔を構成します。

    • metadataPollRate 、メタデータのポーリング間隔を設定します。

    • 詳しくは、「API 開発者ポータルの設定方法」を参照してください。

Metric Streams の設定

CloudWatch Metric Streamsを有効にするには、以下の手順に従います:

  1. https://api.<realm>.signalfx.com/v2/integration/<integrationId> に GET リクエストを送信して、現在の設定を取得します。URL は、必ず独自のレルムおよび統合識別子(ID)に置き換えてください。

  2. metricStreamsSyncState フィールドを ENABLED に設定します。

  3. importCloudWatch フィールドを true に設定します。

  4. enabled フィールドを true に設定します。

  5. https://api.<realm>.signalfx.com/v2/integration/<integrationId> エンドポイントに PUT リクエストを送信して、更新した設定を保存します。

注意: CloudWatch Metric Streams は名前空間とメトリクス名によるフィルタリングをサポートしていますが、リソースタグに基づくフィルタリングはサポートしていません。

次に、Metric Streamsのアクティベーションを完了します:

  1. AWS IAM ポリシーに関連の権限をまだ追加していない場合は、追加します。

  2. メトリックをストリーミングしたいすべてのリージョンで、CloudFormation をデプロイします。

これによって次が作成されます:

  • Kinesis Firehose。

  • Kinesis Data Firehoseが指定したHTTPエンドポイントへの送信に失敗したイベントをバックアップするためのS3バケット。

  • Metric Streams が使用するIAMロール。

  • Kinesis FirehoseにS3バケットへの書き込みを許可するIAMロール。

シンタックスの例については、Splunk デベロッパー向けドキュメントの「Create AWS integration using external ID and ARN」を参照してください。

AWSコンソールから Metric Streams を設定する

AWSコンソールから統合する場合は、以下のフィールドが設定されていることを確認します:

"importCloudWatch": true // import metrics
"metricStreamsSyncState": "ENABLED" // Metric Streams is activated
"metricStreamsManagedExternally": true // Metric Streams managed by AWS

Metric Streams を無効にする

Metric Streams を無効にするには、以下の手順に従ってください:

  1. https://api.<realm>.signalfx.com/v2/integration/<integrationId> に GET リクエストを送信して、現在の設定を取得します。URL は、必ず独自のレルムおよび統合識別子(ID)に置き換えてください。

  2. metricStreamsSyncState フィールドを CANCELLING に設定します。

  3. Splunk Observability Cloud がクリーンアップするのを待ちます。開始するまで最大で15分かかることがあります。

  • Splunk Observability Cloud が metricStreamsSyncStateDISABLED に設定した場合、Metric Streams は正常に無効化されました。

  • Splunk Observability Cloud が metricStreamsSyncStateCANCELLATION_FAILED に設定した場合は、もう一度試すか、「Splunk 管理対象 Metric Streams のトラブルシュート」を参照してください。

5. (オプション)CloudFormation をデプロイする

すべてのリージョンでサポートされているすべての AWS サービスから CloudWatch Metric Streams またはログを収集するには、Metric Streams またはログをサポートする CloudFormation テンプレートを選択してデプロイします。テンプレートをデプロイすると、Metric Streams(Kinesis Firehose、S3 バケツ、IAM ロール)とログ(Splunk AWS ログコレクタ Lambda 関数、IAM ロール)の両方で必要な追加のリソースが AWS アカウントに作成されます。

6. ログの収集

ログを収集するには、「AWS ログを Splunk Platform に送信する」を参照してください。

次のステップ

Splunk Observability Cloud と AWS を接続すると、一連のメトリックを追跡し、AWS データをリアルタイムで分析できます。詳細については、「AWS との統合からデータを活用する方法」を参照してください。

注: Splunk Observability Cloud のユーザーインターフェイスから AWS の統合を編集すると、統合 ID がブラウザのアドレスバーに、URL 末尾のコロン(:)の後に引用符(")で囲まれた英数字の文字列として表示されます。