Splunk Observability Cloud API を使用して AWS に接続する
API を使用して、Splunk Observability Cloud を AWS に接続し、権限を確認し、インテグレーションを設定し、ログを収集し、CloudWatch Metric Streams を有効にします。
Splunk Observability Cloud を AWS アカウントに接続するには、以下の手順を実行します:
-
AWS 接続を作成します。利用可能な AWS リージョンを参照してください。
-
IAM ポリシーを確認します。AWS への接続に必要な権限を指定します。
-
AWS への接続方法を設定します。ポーリング または Metric Streams を選択します。
-
次のステップを参照してください。
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 です。 -
externalIdとaccountIdは、後でAWSコンソールでIAM(Identity and Access Management)ロールを作成するときに使用されます。 -
CloudWatch Metrics コレクションが設定されていないため、
importCloudWatchの値がfalseに設定されています。
AWSポリシーとIAMロールを作成する
一意の Amazon Resource Name(ARN)を持つ AWS ポリシーと AWS IAM ロールを作成するには、AWS コンソールにアクセスして「外部 ID を使って AWS で認証する(推奨)」の指示を参照してください。前のステップで生成された externalId と accountId の値を使用します。
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 のメトリックを取得する場合、以下の間隔に注意してください。
-
まず、
ListMetricsAPIで15分ごとにメトリクスのリストを取得します。 -
次に、
GetMetricDataAPI を使用してデータポイントを取得します。GetMetricStatisticsAPI は廃止されていることに注意してください。詳細については、「GetMetricStatistics API の廃止通知」を参照してください。-
pollRateを使用して、メトリクスのポーリング間隔を構成します。 -
metadataPollRate、メタデータのポーリング間隔を設定します。 -
詳しくは、「API 開発者ポータルの設定方法」を参照してください。
-
Metric Streams の設定
CloudWatch Metric Streamsを有効にするには、以下の手順に従います:
-
https://api.<realm>.signalfx.com/v2/integration/<integrationId>に GET リクエストを送信して、現在の設定を取得します。URL は、必ず独自のレルムおよび統合識別子(ID)に置き換えてください。 -
metricStreamsSyncStateフィールドをENABLEDに設定します。 -
importCloudWatchフィールドをtrueに設定します。 -
enabledフィールドをtrueに設定します。 -
https://api.<realm>.signalfx.com/v2/integration/<integrationId>エンドポイントに PUT リクエストを送信して、更新した設定を保存します。
次に、Metric Streamsのアクティベーションを完了します:
-
AWS IAM ポリシーに関連の権限をまだ追加していない場合は、追加します。
-
メトリックをストリーミングしたいすべてのリージョンで、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 を無効にするには、以下の手順に従ってください:
-
https://api.<realm>.signalfx.com/v2/integration/<integrationId>に GET リクエストを送信して、現在の設定を取得します。URL は、必ず独自のレルムおよび統合識別子(ID)に置き換えてください。 -
metricStreamsSyncStateフィールドをCANCELLINGに設定します。 -
Splunk Observability Cloud がクリーンアップするのを待ちます。開始するまで最大で15分かかることがあります。
-
Splunk Observability Cloud が
metricStreamsSyncStateをDISABLEDに設定した場合、Metric Streams は正常に無効化されました。 -
Splunk Observability Cloud が
metricStreamsSyncStateをCANCELLATION_FAILEDに設定した場合は、もう一度試すか、「Splunk 管理対象 Metric Streams のトラブルシュート」を参照してください。
5. (オプション)CloudFormation をデプロイする
すべてのリージョンでサポートされているすべての AWS サービスから CloudWatch Metric Streams またはログを収集するには、Metric Streams またはログをサポートする CloudFormation テンプレートを選択してデプロイします。テンプレートをデプロイすると、Metric Streams(Kinesis Firehose、S3 バケツ、IAM ロール)とログ(Splunk AWS ログコレクタ Lambda 関数、IAM ロール)の両方で必要な追加のリソースが AWS アカウントに作成されます。
-
詳細については、「CloudFormation テンプレートテーブル」を参照してください。
-
アクセストークンはアカウントのプロフィール設定で確認できます。
6. ログの収集
ログを収集するには、「AWS ログを Splunk Platform に送信する」を参照してください。
次のステップ
Splunk Observability Cloud と AWS を接続すると、一連のメトリックを追跡し、AWS データをリアルタイムで分析できます。詳細については、「AWS との統合からデータを活用する方法」を参照してください。