Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Fargate の Amazon ECS タスクで Splunk ログドライバーを使用するにはどうすればよいですか?
AWS Fargate の Amazon Elastic Container Service (Amazon ECS) タスクで Splunk ログドライバーを使用したいと考えています。
簡単な説明
Fargate の Docker の Splunk ログドライバー (別称 "logging driver,") を使用すると、コンテナログを Enterprise Splunk ログコレクターまたは Splunk Cloud に送信できます。
解決策
Fargate ログを受信するように Splunk Cloud 環境をセットアップする
- Splunk Cloud アカウントを作成するには、無料の Splunk オプションを使用してください。Splunk Cloud アカウントをすでにお持ちの場合は、ステップ 2 に進んでください。詳細については、Splunk ウェブサイトの「無料 Splunk」を参照してください。
- Splunk Cloud アカウントにサインインします。
**注:**アカウントを作成したら、Splunk Cloud のURL、ユーザー名、パスワードを使用してサインインします。 - ナビゲーションメニューで [設定] を選択します。
- データセクションで、[データ入力] を選択します。
- ローカル入力セクションの「アクション」列で、[新規追加] を選択します。
**注:**HTTP イベントコレクター (HEC) トークンを作成すると、データイベントとアプリケーションイベントを HTTP および Secure HTTP (HTTPS) プロトコルで Splunk デプロイに送信できます。 - 名前にトークンの名前を入力し、[次へ] を選択します。
- セットアップウィザードの残りのページに進み、[送信] を選択して HEC トークンを作成します。
**注:**デフォルト値はそのままにしておくことができます。 - curl または Docker を使用して新しいトークンをテストします。
注:デフォルトでは、Splunk はポート 8088 でリッスンし、/services/collector パス上のイベントを受け入れます。
curl:
注: splunk-token を以前に作成した HEC トークンに置き換えてください。curl -k https://prd-p-9l79p.splunkcloud.com:8088/services/collector -H "Authorization: Splunk splunk-token" -d '{"event": "Put this message in Splunk"}'
Docker:docker run --publish 80:80 --log-driver=splunk --log-opt splunk-token=splunk token --log-opt splunk-url=https://prd-p-u7z1u.splunkcloud.com:8088 --log-opt splunk-insecureskipverify=true --log-opt splunk-sourcetype=docker-test --log-opt splunk-index=main nginx
**注:**splunk-token は、以前に作成した HEC トークンに置き換えてください。
HEC トークンを使用するように AWS Secrets Manager を設定する
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Fargate がトークンを安全に使用できるように、HEC トークンを Secrets Manager に保存するには、次のコマンドを実行します。
aws secretsmanager create-secret --name splunk-token --secret-string token-value
**注:**splunk-token を HEC トークンに置き換えてください。token-value をトークンの値に置き換えてください。
シークレットにアクセスする権限を持つタスク実行ロールの設定
- AWS Identity and Access Management (IAM) コンソールを開きます。
- ナビゲーションペインで、**[ロール]**を選択します。
- ロールのリストから、ecsTaskExecutionRole を検索して選択します。
- [インラインポリシーの追加] を選択します。
- エディターの JSON タブを選択し、次のポリシーを入力します。
**注:**カスタムの AWS Key Management Service (AWS KMS) キーを使用してシークレットを暗号化する場合は、KMS キーの kms:Decrypt 権限と Amazon リソースネーム (ARN) を指定します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] } - **[ポリシーの確認]**を選択します。
- [名前] に、ポリシーの名前を入力します。
- [ポリシーを作成] を選択します。
Fargate で Amazon ECS タスク用のタスク定義を設定します。
- Amazon ECS コンソールを開きます。
- ナビゲーションペインの Amazon ECS セクションで、[タスク定義] を選択します。
- [新しいタスク定義の作成] を選択します。
- [Fargate] を選択し、[次のステップ] を選択します。
- [タスクとコンテナ定義の設定]セクションの、[タスク定義の名前] に、タスク定義の名前を入力します。
- [タスクロール] で、前に設定したロールを選択します。
- [タスクサイズ] セクションの [タスクメモリ (GB)] と [タスク CPU (vCPU)] に、タスクに適した値を入力します。
- 「コンテナ定義」セクションで、[コンテナを追加] を選択します。
- コンテナのニーズに合った適切なオプションを選択してください。
- ドロップダウンメニューの 「ログ」セクションで、[ログを Splunk にエクスポート] を選択します。
- ログオプションのキーと値のオプションには、次のように入力します。
**キー: **splunk-url
値: splunk エンドポイント (例: https://prd-p-9l79p.splunkcloud.com:8088/)
**キー: ** splunk-insecureskipverify
値: True
**キー: ** splunk-token
**valueFrom:**前に作成したシークレット ARN - [追加] を選択します。
**注:**Splunk のコードと構成の詳細については、GitHub の splunk.go と Docker ウェブサイトの Splunk オプションを参照してください。 - タスク定義を作成するには、[作成] を選択します。
- Amazon ECS サービスを作成するか、前に作成したタスク定義を使用するタスクを実行します。
Splunk Cloud でログを確認する
Splunk Cloud でログを確認する前に、タスクが実行中であることを確認してください。
注:ログ設定で splunk-index を指定していないため、ログはデフォルトでメインインデックスの splunk-index に送信されます。
- Splunk Cloud アカウントに接続します。
- ナビゲーションメニューで [検索] を選択します。
- 検索ボックスに index="main" と入力します。
**注:**前のステップに従って、Amazon ElasticCompute クラウド (Amazon EC2) 起動タイプの Amazon ECS のタスク定義を作成できます。その後、任意の ECS タスクから Splunk ログドライバーを使用して、Splunk ログコレクターにログを送信できます。
関連情報
- トピック
- Containers
- 言語
- 日本語

関連するコンテンツ
- 質問済み 2年前