Fargate の Amazon ECS タスクで Splunk ログドライバーを使用する方法はどすればよいですか。
AWS Fargate の Amazon Elastic Container Service (Amazon ECS) タスクで Splunk ログドライバーを使用したい
簡単な説明
Fargate の Docker から Splunk ログドライバー (「ログドライバー」とも呼ばれています) を使用して、コンテナログを エンタープライズ Splunk ログコレクターまたは Splunk クラウドに送信できます。詳細については、Docker ウェブサイトの Splunk ログドライバーを参照してください。
解決方法
Fargate ログを受信するために Splunk Cloud 環境を設定する
1. 無料のSplunk オプションを使用して Splunk クラウドアカウントを作成します。Splunkクラウドアカウントをすでにお持ちの場合は、ステップ 2 に進みます。詳細については、Splunk ウェブサイトの 「無料Splunk」 を参照してください。
2. Splunk Cloud アカウントにログインします。
3. ナビゲーションペインで、[Settings] を選択します。
4. [DATA] (データ)セクションで、[Data inputs] (データ入力)を選択します。
5. [Local inputs] (ローカル入力)セクションの [Actions] (アクション)列で、[Add new] (新規追加)を選択します。
**注:**HTTP および Secure HTTP (HTTPS) プロトコルを介して Splunk デプロイにデータとアプリケーションイベントを送信できるように、HTTP イベントCollector (HEC) トークンを作成します。
6. [Name] にトークンの名前を入力し、[Next] を選択します。
7. セットアップウィザードの残りのページに進み、[Submit] を選択して HEC トークンを作成します。
注: デフォルト値のままにしておくことができます。
8. curl または Docker を使用して、新しいトークンをテストします。
注: デフォルトでは、Splunk はポート 8088 をリッスンし、/services/collector(サービス/collector)パスでイベントを受け入れます。
curl を使用:
curl -k https://prd-p-9l79p.splunkcloud.com:8088/services/collector -H "Authorization: Splunk splunk-token" -d '{"event": "Put this message in Splunk"}'
注: splunk-token (plunk-トークン)は、前に作成した HEC トークンに置き換えます。
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 (plunk-トークン)は、前に作成した HEC トークンに置き換えます。
HEC トークンを使用するために AWS Secrets Manager を設定する
注: AWS Command Line Interface (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
HEC トークンを Secrets Manager に保存して、Fargate がトークンを安全に使用できるようにするには、次のコマンドを実行します。
aws secretsmanager create-secret --name splunk-token --secret-string token-value
注: splunk-token(splunk-トークン) を HEC トークンに置き換えてください。token-value (トークン値)をトークン値に置き換えます。
シークレットにアクセスするためのアクセス許可を持つタスク実行ロールを設定する
1. AWS Identity and Access Management (IAM) コンソールを開きます。
2. ナビゲーションペインで、[ロール] を選択します。
3. ロールのリストから、「ecsTaskExecutionRole」(ecs TaskExecutionロール)を検索して選択します。
4. [Add inline policy] を選択します。
5. エディタの [JSON] タブを選択してから、次のポリシーを入力します。
{ "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>" ] } ] }
注: カスタム AWS Key Management Service (AWS KMS) キーを使用してシークレットを暗号化する場合は、KMS キーの KMS:Decrypt アクセス許可と Amazon リソースネーム (ARN) を指定する必要があります。
6. [ポリシー確認] を選択します。
7. 名前にはポリシーの名前を入力します。
8. [Create policy] を選択します。
Fargate で Amazon ECS タスクのタスク定義を設定する
1. Amazon ECS コンソールを開きます。
2. Amazon ECS コンソールから、ナビゲーションペインで、[タスク定義] を選択します。
3. [新しいタスク定義の作成] を選択します。
4. [Fargate] を選択してから、[次のステップ] をクリックします。
5. [タスクとコンテナ定義の設定] セクションの [タスク定義名] に、タスク定義の名前を入力します。
6. [タスクロール] で、前に設定したロールを選択します。
7. [タスクサイズ] セクションの [タスクメモリ (GB)] と [タスク CPU (vCPU)] に、タスクの適切な値を入力します。
8. [コンテナの定義] セクションで、[コンテナの追加] を選択します。
9. コンテナのニーズに応じて適切なオプションを選択します。
10. [STORAGE AND LOGGING] セクションで、[ログ設定] チェックボックスをオフにします。
11. [ログドライバー] で、[splunk] を選択します。
12. [ログオプション] のキーオプションと値オプションには、次のように入力します。
キー: splunk-url
値: splunk エンドポイント (例: https://prd-p-9l79p.splunkcloud.com:8088/)
キー: splunk-insecureskipverify
値: True
キー: splunk-トークン
valueFrom: 以前に作成したシークレットARN
13. Add(追加)を選択します。
注: Splunk のコードと設定の詳細については、GitHub log driver code(ログドライバーコード)と Docker ウェブサイトの Splunk option(Splunkオプション)を参照してください。
14. タスク定義を作成するには、[作成] を選択します。
15. Amazon ECS サービスを作成するか、前に作成したタスク定義を使用するタスクを実行します。
Splunk Cloud でログを確認する
Splunk クラウドでログを確認する前に、タスクが実行されていることを確認してください。
注: デフォルトでは、ログ設定で splunk-index(splunk-インデックス) を設定しなかったため、main(メイン)インデックスの splunk-index(splunk-インデックス) に移動します。
1. Splunk Cloud アカウントに接続します。
2. ナビゲーションメニューで、[検索] を選択します。
3. 検索ボックスに「index="main"」(インデックス=“メイン”)と入力します。
これで、Splunk ログコレクターにログが表示されます。
注: 上記の手順に従って、Amazon Elastic Compute Cloud (Amazon EC2) 起動タイプのタスク定義を Amazon ECS で作成できます。その後、任意の ECS タスクの Splunk ログドライバーを使用して、Splunk ログコレクターにログを送信できます。
関連情報
関連するコンテンツ
- 質問済み 6年前lg...
- 質問済み 7ヶ月前lg...
- 質問済み 7ヶ月前lg...
- AWS公式更新しました 4年前
- AWS公式更新しました 1年前
- AWS公式更新しました 1年前