翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
シンク宣言
シンク宣言は、ログ、イベント、メトリクスがさまざまな AWS サービスに送信される場所と形式を指定します。以下のセクションでは、Microsoft Windows の Amazon Kinesis Agent で使用可能な組み込みシンクタイプの設定について説明します。Windows 用 Kinesis Agent は拡張可能であるため、カスタムのシンクタイプを追加できます。通常、各シンクタイプには、そのシンクタイプに関連する、設定宣言の一意のキーと値のペアが必要です。
すべてのシンク宣言には、次のキーと値のペアを含めることができます。
Id
-
設定ファイル内で特定のシンクを識別する一意の文字列 (必須)。
SinkType
-
このシンクのシンクタイプの名前 (必須)。シンクタイプは、このシンクによってストリーミングされるログ、イベント、またはメトリクスのデータの送信先を指定します。
AccessKey
-
シンクタイプに関連付けられている AWS サービスへのアクセスを許可するときに使用する AWS アクセスキーを指定します。このキーと値のペアはオプションです。詳細については、「シンクセキュリティの設定」を参照してください。
SecretKey
-
シンクタイプに関連付けられている AWS サービスへのアクセスを許可するときに使用する AWS シークレットキーを指定します。このキーと値のペアはオプションです。詳細については、「シンクセキュリティの設定」を参照してください。
Region
-
ストリーミングの送信先リソースが含まれる AWS リージョンを指定します。このキーと値のペアはオプションです。
ProfileName
-
認証に使用する AWS プロファイルを指定します。このキーと値のペアはオプションですが、指定した場合は、その値のペアが指定したアクセスキーとシークレットキーよりも優先されます。詳細については、「シンクセキュリティの設定」を参照してください。
RoleARN
-
シンクタイプに関連付けられている AWS サービスにアクセスするときに使用する IAM ロールを指定します。このオプションは、EC2 インスタンスで実行されている Kinesis Agent for Windows が EC2 インスタンスで実行されている場合に役立ちますが、インスタンスプロファイルによって参照されるロールよりも別のロールの方が適切です。たとえば、クロスアカウントロールを使用して、EC2 インスタンスと同じ AWS アカウントにないリソースを対象にすることができます。このキーと値のペアはオプションです。
Format
-
ストリーミングの前にログおよびイベントデータに適用されるシリアル化の種類を指定します。有効な値は、
json
およびxml
です。このオプションは、データパイプラインのダウンストリーム分析で特別の形式のデータが必要であるか、特別の形式のデータの使用が好ましい場合に役立ちます。このキーと値のペアはオプションです。指定しない場合は、ソースの通常のテキストがシンクからシンクタイプに関連付けられている AWS サービスにストリーミングされます。 TextDecoration
-
Format
を指定しない場合、TextDecoration
はログレコードまたはイベントレコードのストリーミング時に含まれる追加のテキストを指定します。詳細については、「シンクデコレーションの設定」を参照してください。このキーと値のペアはオプションです。 ObjectDecoration
-
Format
を指定した場合、ObjectDecoration
はシリアル化およびストリーミングの前にログレコードまたはイベントレコードに含まれる追加のデータを指定します。詳細については、「シンクデコレーションの設定」を参照してください。このキーと値のペアはオプションです。 BufferInterval
-
シンクタイプに関連付けられている AWS サービスの API コールを最小限に抑えるために、Kinesis Agent for Windows では、ストリーミングの前にログ、イベント、またはメトリクスの複数のレコードをバッファします。これにより、API コールあたりのサービス料金を節約することができます。
BufferInterval
は AWS サービスにストリーミングする前にレコードをバッファする必要がある最大時間 (秒) を指定します。このキーと値のペアはオプションです。指定する場合、値を表す文字列を使用します。 BufferSize
-
シンクタイプに関連付けられている AWS サービスの API コールを最小限に抑えるために、Kinesis Agent for Windows では、ストリーミングの前にログ、イベント、またはメトリクスの複数のレコードをバッファします。これにより、API コールあたりのサービス料金を節約することができます。
BufferSize
は AWS サービスにストリーミングする前にバッファするレコードの最大数を指定します。このキーと値のペアはオプションです。指定する場合、値を表す文字列を使用します。 MaxAttempts
-
ストリーミングが何度も失敗する場合に Kinesis Agent for Windows が AWS サービスにログ、イベント、およびメトリクスの一連のレコードをストリーミングする最大試行回数を指定します。このキーと値のペアはオプションです。指定する場合、値を表す文字列を使用します。デフォルト値は
3
です。
さまざまな種類のシンクを使用する完全な設定ファイルの例については、Windows アプリケーションイベントログからシンクへのストリーミングを参照してください。
トピック
- KinesisStream シンクの設定
- KinesisFirehose シンクの設定
- CloudWatch シンクの設定
- CloudWatchLogs シンクの設定
- ローカルFileSystemシンクの設定
- シンクセキュリティの設定
- の設定ProfileRefreshingAWSCredentialProviderAWS 認証情報の更新
- シンクデコレーションの設定
- シンク変数の置換の設定
- シンクのキューイングの設定
- シンクのプロキシの設定
- より多くのシンク属性での変数の解決の設定
- AWS シンクで RoleARN プロパティを使用する場合の AWS STS リージョンエンドポイントの設定
- AWS シンク用の VPC エンドポイントの設定
- プロキシの代替手段の設定
KinesisStream
シンクの設定
-KinesisStream
シンクタイプは、Kinesis Data Streams サービスにレコードおよびイベントをログします。通常、Kinesis Data Streams にストリーミングされるデータは、さまざまな AWS サービスを使用して実行する 1 つ以上のカスタムアプリケーションによって処理されます。データは、Kinesis Data Streams を使用して設定された名前付きストリームにストリーミングされます。詳細については、「」を参照してください。Amazon Kinesis Data Streams 開発者ガイド。
次に、Kinesis Data Streams のシンク宣言の例を示します。
{ "Id": "TestKinesisStreamSink", "SinkType": "KinesisStream", "StreamName": "MyTestStream", "Region": "us-west-2" }
KinesisStream
のすべてのシンク宣言には、次の追加のキーと値のペアを含めることができます。
SinkType
-
このペアを指定する必要があります。値はリテラル文字列
KinesisStream
にする必要があります。 StreamName
-
ストリーミングされたデータを受信する Kinesis データストリームの名前を指定します。
KinesisStream
シンクタイプ (必須)。データをストリーミングする前に、または Kinesis Data Streams API を使用したアプリケーションを介してストリームを設定します。 RecordsPerSecond
-
1 秒あたりに Kinesis Data Streams にストリーミングされるレコードの最大数を指定します。このキーと値のペアはオプションです。指定する場合、値を表す整数を使用します。デフォルト値は 1000 レコードです。
BytesPerSecond
-
1 秒あたりに Kinesis Data Streams にストリーミングされる最大バイト数を指定します。このキーと値のペアはオプションです。指定する場合、値を表す整数を使用します。デフォルト値は 1 MB です。
このシンクタイプのデフォルトの BufferInterval
は 1 秒で、デフォルトの BufferSize
は 500 レコードです。
KinesisFirehose
シンクの設定
-KinesisFirehose
シンクタイプは、ログレコードおよびイベントを Kinesis Data Firehose サービスにストリーミングします。Kinesis Data Firehose は、ストリーミングされたデータをストレージ用にその他のサービスにストリーミングします。通常、保存されたデータは、データパイプラインのその後のステージで分析されます。データは、Kinesis Data Firehose を使用して設定された名前付き配信ストリームにストリーミングされます。詳細については、「」を参照してください。Amazon Kinesis Data Firehose 開発者ガイド。
次に、Kinesis Data Firehose シンク宣言の例を示します。
{ "Id": "TestKinesisFirehoseSink", "SinkType": "KinesisFirehose", "StreamName": "MyTestFirehoseDeliveryStream", "Region": "
us-east-1
", "CombineRecords": "true" }
KinesisFirehose
のすべてのシンク宣言には、次の追加のキーと値のペアを含めることができます。
SinkType
-
このペアを指定する必要があります。値はリテラル文字列
KinesisFirehose
にする必要があります。 StreamName
-
ストリーミングされたデータを受信する Kinesis Data Firehose 配信ストリームの名前を指定します。
KinesisStream
シンクタイプ (必須)。データをストリーミングする前に、あるいは Kinesis Data Firehose AWS を使用したアプリケーションを介して配信ストリームを設定します。 CombineRecords
に設定した場合
true
の場合、複数の小さなレコードを、最大サイズが 5 KB の大きいレコードに結合することを指定します。このキーと値のペアはオプションです。この関数を使用して結合されたレコードは\n
。AWS Lambda を使用して Kinesis Data Firehose レコードを変換する場合、Lambda 関数で区切り文字を考慮する必要があります。RecordsPerSecond
-
1 秒あたりに Kinesis Data Streams にストリーミングされるレコードの最大数を指定します。このキーと値のペアはオプションです。指定する場合、値を表す整数を使用します。デフォルト値は 5000 レコードです。
BytesPerSecond
-
1 秒あたりに Kinesis Data Streams にストリーミングされる最大バイト数を指定します。このキーと値のペアはオプションです。指定する場合、値を表す整数を使用します。デフォルト値は 5 MB です。
このシンクタイプのデフォルトの BufferInterval
は 1 秒で、デフォルトの BufferSize
は 500 レコードです。
CloudWatch シンクの設定
-CloudWatch
シンクタイプは、メトリクスを CloudWatch サービスにストリーミングします。AWS マネジメントコンソールでメトリクスを表示できます。詳細については、Amazon CloudWatch ユーザーガイドを参照してください。
次に、CloudWatch
のシンク宣言の例を示します。
{ "Id": "CloudWatchSink", "SinkType": "CloudWatch" }
CloudWatch
のすべてのシンク宣言には、次の追加のキーと値のペアを含めることができます。
SinkType
-
このペアを指定する必要があります。値はリテラル文字列
CloudWatch
にする必要があります。 Interval
-
Windows 用 Kinesis Agent for Windows が CloudWatch サービスにメトリクスをレポートする頻度 (秒) を指定します。このキーと値のペアはオプションです。指定する場合、値を表す整数を使用します。デフォルト値は 60 秒です。高解像度の CloudWatch メトリクスが必要な場合は 1 秒を指定します。
Namespace
-
メトリクスデータがレポートされる CloudWatch 名前空間を指定します。CloudWatch 名前空間により、一連のメトリクスがグループ化されます。このキーと値のペアはオプションです。デフォルト値は
KinesisTap
です。 Dimensions
-
名前空間内のメトリクスセットの分離に使用する CloudWatch ディメンションを指定します。これは、たとえばデスクトップまたはサーバーごとに個別のメトリクスセットを提供する上で有益です。このキーと値のペアはオプションです。指定する場合、値は
"
key1=
value1;key2=
value2..."
の形式に準拠する必要があります。デフォルト値は"ComputerName={computername};InstanceId={instance_id}"
です。この値はシンク変数の置換をサポートしています。詳細については、「シンク変数の置換の設定」を参照してください。 MetricsFilter
-
組み込み Kinesis Agent for Windows メトリクスソースから CloudWatch にストリーミングされるメトリクスを指定します。組み込みの Kinesis Agent for Windows メトリクスソースの詳細 (このキーと値のペアの値の構文の詳細など) については、Windows 組み込みメトリクスソース Kinesis エージェント。
CloudWatchLogs
シンクの設定
-CloudWatchLogs
シンクタイプは、ログレコードおよびイベントを Amazon CloudWatch Logs にストリーミングします。AWS マネジメントコンソールでログを表示したり、データパイプラインの追加のステージでログを処理したりすることができます。データは、CloudWatch Logs で設定された名前付きログストリームにストリーミングされます。ログストリームは名前付きロググループにまとめられます。詳細については、 Amazon CloudWatch ログユーザーガイドを参照してください。
CloudWatch Logs シンク宣言の例を以下に示します。
{ "Id": "MyCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "BufferInterval": "60", "BufferSize": "100", "Region": "us-west-2", "LogGroup": "MyTestLogGroup", "LogStream": "MyTestStream" }
CloudWatchLogs
のすべてのシンク宣言には、次の追加のキーと値のペアを入力する必要があります。
SinkType
-
リテラル文字列
CloudWatchLogs
である必要があります。 LogGroup
-
によってストリーミングされたログレコードおよびイベントレコードを受信するログストリームを含む CloudWatch Logs ロググループの名前を指定します。
CloudWatchLogs
シンクタイプ。指定されたロググループが存在しない場合は、Kinesis Agent for Windows によってその作成が試行されます。 LogStream
-
によってログレコードおよびイベントレコードストリームを受信する CloudWatch Logs ログストリームの名前を指定します。
CloudWatchLogs
シンクタイプ。この値はシンク変数の置換をサポートしています。詳細については、「シンク変数の置換の設定」を参照してください。指定されたログストリームが存在しない場合は、Kinesis Agent for Windows によってその作成が試行されます。
このシンクタイプのデフォルトの BufferInterval
は 1 秒で、デフォルトの BufferSize
は 500 レコードです。最大バッファサイズは 10,000 レコードです。
ローカルFileSystem
シンクの設定
シンクのタイプFileSystem
は、ログおよびイベントレコードを AWS サービスにストリーミングするのではなく、ローカルファイルシステム上のファイルに保存します。FileSystem
シンクは、テストや診断に役立ちます。たとえば、このシンクタイプを使用して、レコードを AWS に送信する前に調べることができます。
とFileSystem
シンクでは、設定パラメーターを使用して、バッチ処理、スロットリング、再試行をシミュレートして、実際の AWS シンクの動作を模倣することもできます。
接続されているすべてのソースからのすべてのレコードFileSystem
シンクは、FilePath
。もしFilePath
が指定されなかった場合、レコードは
()SinkId
.txt%TEMP%
ディレクトリーです。通常はC:\Users\
ここで、とします。UserName
\AppData\Local\Temp
シンクの一意の識別子であり、SinkId
は、アクティブなユーザーの Windows ユーザー名です。UserName
このシンクタイプは、テキストの装飾属性をサポートします。詳細については、「シンクデコレーションの設定」を参照してください。
例FileSystem
シンクタイプの設定を以下の例で示します。
{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "Format": "json", "TextDecoration": "", "ObjectDecoration": "" }
-FileSystem
設定は、以下のキーと値のペアで構成されます。
SinkType
リテラル文字列
FileSystem
である必要があります。FilePath
レコードを保存するパスとファイルを指定します。このキーと値のペアはオプションです。指定されなかった場合、デフォルト値は
ここで、とします。TempPath
\\SinkId
.txt
に格納されているフォルダです。TempPath
%TEMP%
変数と変数
シンクの一意の識別子です。SinkId
Format
イベントの形式を指定します
json
またはxml
。このキー値のペアはオプションで、大文字と小文字は区別されません。省略すると、イベントはプレーンテキストでファイルに書き込まれます。TextDecoration
プレーンテキストで記述されたイベントにのみ適用されます。このキーと値のペアはオプションです。
ObjectDecoration
次のイベントにのみ適用されます。
Format
は、 に設定されます。json
。このキーと値のペアはオプションです。
高度な使用法 — 記録スロットリングと障害シミュレーション
FileSystem
は、レコードスロットリングをシミュレートすることで、AWS シンクの動作を模倣できます。次のキーと値のペアを使用して、レコードスロットルおよび障害シミュレーション属性を指定できます。
宛先ファイルのロックを取得し、そのファイルへの書き込みを防止することで、FileSystem
シンクを使用して、ネットワークに障害が発生したときの AWS シンクの動作をシミュレートし、調べます。
以下の例は、以下を示していますFileSystem
構成をシミュレーション属性で設定します。
{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "TextDecoration": "", "RequestsPerSecond": "100", "BufferSize": "10", "MaxBatchSize": "1024" }
RequestsPerSecond
オプションで、文字列型として指定します。省略した場合、デフォルト値は
"5"
。レコード数ではなく、シンクが処理する要求 (ファイルへの書き込み) のレートを制御します。Kinesis Agent for Windows は AWS エンドポイントに対してバッチリクエストを行うため、リクエストに複数のレコードが含まれる場合があります。BufferSize
オプションで、文字列型として指定します。ファイルに保存する前にシンクがバッチ処理するイベントレコードの最大数を指定します。
MaxBatchSize
オプションで、文字列型として指定します。ファイルに保存する前にシンクがバッチ処理するイベントレコードデータの最大量をバイト単位で指定します。
最大レコードレート制限は、BufferSize
リクエストあたりの最大レコード数を決定し、RequestsPerSecond
。次の式を使用して、1 秒あたりの記録レート制限を計算できます。
レコードレート=BufferSize
*RequestsPerSecond
上記の例の設定値を指定すると、最大レコードレートは 1000 レコード/秒です。
シンクセキュリティの設定
認証の設定
Kinesis Agent for Windows が AWS サービスにログ、イベント、およびメトリクスをストリーミングする場合、アクセスの認証が必要です。Windows 用 Kinesis Agent に認証を提供するには、いくつかの方法があります。認証を提供する方法は、Kinesis Agent for Windows が実行されている状況と特定の組織の特定のセキュリティ要件によって異なります。
-
Kinesis Agent for Windows が Amazon EC2 ホストで実行されている場合、認証を提供する安全で簡単な方法は、必要な AWS サービスで必要なオペレーションへの十分なアクセス権限がある IAM ロールとそのロールを参照する EC2 インスタンスプロファイルを作成することです。インスタンスプロファイルの作成については、「インスタンスプロファイルの使用」を参照してください。IAM ロールにアタッチするポリシーについては、「」を参照してください。認可の設定。
インスタンスプロファイルを作成した後、Kinesis Agent for Windows を使用するすべての EC2 インスタンスにそれを関連付けることができます。関連付けられたインスタンスプロファイルがすでにインスタンスにある場合は、そのインスタンスプロファイルに関連付けられているロールに適切なポリシーをアタッチすることができます。
-
Kinesis Agent for Windows が 1 つのアカウントの EC2 ホストで実行されていても、シンクのターゲットであるリソースが別のアカウントに存在する場合、クロスアカウントアクセスで IAM ロールを作成することができます。詳細については、「」を参照してください。チュートリアル: IAM ロールを使用した AWS アカウント間のアクセスの委任。クロスアカウントロールを作成した後、そのクロスアカウントロールの Amazon リソースネーム (ARN) を
RoleARN
シンク宣言でキーと値のペア。その後、そのシンクのシンクタイプに関連付けられている AWS リソースにアクセスしたときに Kinesis Agent for Windows によって指定したクロスアカウントロールの引き受けが試行されます。 -
Windows の Kinesis Agent が Amazon EC2 の外部で実行されている場合 (たとえば、オンプレミス)、以下のいくつかのオプションがあります。
-
オンプレミスサーバーまたはデスクトップマシンを Amazon EC2 Systems Manager マネージドインスタンスとして登録できる場合は、以下のプロセスを使用して認証を設定します。
-
「ハイブリッド環境での AWS Systems Manager の設定」で説明されているプロセスを使用して、サービスロールを作成してマネージドインスタンスのアクティベーションを作成し、SSM エージェントをインストールします。
-
適切なポリシーをサービスロールにアタッチして、Kinesis Agent for Windows が設定されたシンクからデータをストリーミングするために必要なリソースにアクセスできるようにします。IAM ロールにアタッチするポリシーについては、「」を参照してください。認可の設定。
で説明されているプロセスを使用します。の設定ProfileRefreshingAWSCredentialProviderAWS 認証情報の更新をクリックして AWS 認証情報を更新します。
認証情報は SSM および AWS によって管理されるため、この方法が EC2 以外のインスタンスに推奨されます。
-
-
デフォルトシステムアカウントではなく特定のユーザーで Kinesis Agent for Windows の AWSKinesisTAP サービスを実行することが許容できる場合は、以下のプロセスを使用します。
-
AWS サービスを使用する AWS アカウントで IAM ユーザーを作成します。作成プロセス時にこのユーザーのアクセスキーとシークレットキーをキャプチャします。この情報は、このプロセスの後のステップで必要です。
-
必要なサービスの必要なオペレーションへのアクセスを認証する IAM ユーザーにポリシーをアタッチします。IAM ユーザーにアタッチするポリシーについては、「」を参照してください。認可の設定。
-
各デスクトップまたはサーバーで AWSKinesisTap サービスを変更して、デフォルトシステムアカウントではなく特定のユーザーでそのサービスが実行されるようにします。
-
前のステップで記録したアクセスキーとシークレットキーを使用して SDK ストアでプロファイルを作成します。詳細については、「AWS 認証情報の設定」を参照してください。
-
%PROGRAMFILES%\Amazon\AWSKinesisTap
ディレクトリのAWSKinesisTap.exe.config
ファイルを更新して、前のステップで作成したプロファイルの名前を指定します。詳細については、「AWS 認証情報の設定」を参照してください。
認証情報が特定のホストおよび特定のユーザーに対して暗号化されるため、この方法がマネージドインスタンスにすることができない EC2 以外のホストに推奨されます。
-
-
デフォルトシステムアカウントで Kinesis Agent for Windows の AWSKinesisTAP サービスを実行する必要がある場合、共有認証情報ファイルを使用する必要があります。これは、SDK ストアを有効にするための Windows ユーザープロファイルがシステムアカウントにないためです。共有認証情報ファイルが暗号化されないため、この方法は推奨されません。共有構成ファイルの使用方法については、「」を参照してください。AWS 認証情報の設定()AWS SDK for .NET。この方法を使用する場合、NTFS 暗号化と、共有設定ファイルに制限されたファイルアクセスを使用することをお勧めします。キーは管理プラットフォームによって更新される必要があり、キーの更新が発生したときに共有設定ファイルを更新する必要があります。
-
シンク宣言でアクセスキーとシークレットを直接指定できますが、その宣言が暗号化されないため、この方法は推奨されません。
認可の設定
以下の適切なポリシーを、Kinesis Agent for Windows が AWS サービスにデータをストリーミングするために使用する IAM ユーザーまたはロールにアタッチします。
Kinesis Data Streams
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:*:*:stream/*" } ] }
特定のリージョン、アカウント、またはストリーム名への認可を制限するには、ARN で該当するアスタリスクを特定の値に置き換えます。詳細については、「Amazon Kinesis Data Streams による IAM リソースに対するアクセスの制御」の「Kinesis Data Streams 用の Amazon リソースネーム (ARN)」を参照してください。
Kinesis Data Firehose
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:*:*:deliverystream/*" } ] }
特定のリージョン、アカウント、または配信ストリーム名への認可を制限するには、ARN で該当するアスタリスクを特定の値に置き換えます。詳細については、「」を参照してください。Amazon Kinesis Data Firehose によるアクセスの制御()Amazon Kinesis Data Firehose 開発者ガイド。
CloudWatch
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }
詳細については、「」を参照してください。CloudWatch リソースに対するアクセス許可の管理の概要()Amazon CloudWatch Logs ユーザーガイド。
既存のロググループとログストリームを使用した CloudWatch Logs
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor3", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor4", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" } ] }
特定のリージョン、アカウント、ロググループ、またはログストリームへのアクセスを制限するには、ARN で該当するアスタリスクを適切な値に置き換えます。詳細については、「」を参照してください。CloudWatch Logs リソースに対するアクセス許可の管理の概要()Amazon CloudWatch Logs ユーザーガイド。
Kinesis Agent for Windows がロググループとログストリームを作成するための追加のアクセス許可を持つ CloudWatch Logs
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor5", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor6", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" }, { "Sid": "VisualEditor7", "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "*" } ] }
特定のリージョン、アカウント、ロググループ、またはログストリームへのアクセスを制限するには、ARN で該当するアスタリスクを適切な値に置き換えます。詳細については、「」を参照してください。CloudWatch Logs リソースに対するアクセス許可の管理の概要()Amazon CloudWatch Logs ユーザーガイド。
EC2 タグ変数の展開に必要なアクセス許可
ec2tag
変数プレフィックスでの変数の展開の使用には、ec2:Describe*
アクセス許可が必要です。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "VisualEditor8", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" } ] }
注記
各ステートメントの Sid
が 1 つのポリシー内で一意である限り、複数のステートメントをそのポリシーに結合することができます。ポリシーの作成の詳細については、「」を参照してください。IAM ポリシーの作成()IAM ユーザーガイド。
の設定ProfileRefreshingAWSCredentialProvider
AWS 認証情報の更新
ハイブリッド環境に AWS Systems Manager を使用して AWS 認証情報を管理する場合、Systems Manager はc:\Windows\System32\config\systemprofile\.aws\credentials
。ハイブリッド環境用のSystems Manager の詳細については、「」を参照してください。ハイブリッド環境用の AWS Systems Manager のセットアップ()AWS Systems Manager ユーザーガイド。
AWS .net SDK は新しい認証情報を自動的に取得しないため、ProfileRefreshingAWSCredentialProvider
プラグインを使用して認証情報を更新します。
「」を使用できます。CredentialRef
属性を使用して、すべての AWS 同期設定のCredentials
定義ここで、CredentialType
属性はに設定していますProfileRefreshingAWSCredentialProvider
次の例に示すように、とします。
{ "Sinks": [{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "CredentialRef": "ssmcred", "Region": "
us-west-2
", "LogGroup": "myLogGroup", "LogStream": "myLogStream" }], "Credentials": [{ "Id": "ssmcred", "CredentialType": "ProfileRefreshingAWSCredentialProvider", "Profile": "default", "FilePath": "%USERPROFILE%//.aws//credentials
", "RefreshingInterval":300
}] }
認証情報の定義は、以下の属性をキーと値のペアとして構成します。
Id
シンク定義が使用して指定できる文字列を定義します
CredentialRef
を使用して、この資格情報構成を参照します。CredentialType
リテラル文字列
ProfileRefreshingAWSCredentialProvider
。Profile
省略可能。デフォルト:
default
。FilePath
省略可能。AWS 認証情報ファイルのパスを指定します。省略すると、デフォルトの
%USERPROFILE%/.aws/credentials
が使用されます。RefreshingInterval
省略可能。認証情報が更新される頻度(秒単位)。省略すると、デフォルトの
300
が使用されます。
シンクデコレーションの設定
シンク宣言には、ソースから収集されたレコードを拡張するためにさまざまな AWS サービスにストリーミングするための追加のデータを指定するキーと値のペアをオプションで含めることができます。
TextDecoration
-
シンク宣言で
Format
が指定されていない場合にこのキーと値のペアを使用します。この値は、変数の置換が発生する特殊な形式の文字列です。たとえば、シンクに対して"{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}"
のTextDecoration
が指定されているとします。ソースからテキストThe system has resumed from sleep.
が含まれているログレコードが送信され、そのソースがパイプを介してシンクに接続されると、テキストMyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep.
が、シンクタイプに関連付けられている AWS サービスにストリーミングされます。{_record}
変数はソースによって配信される元のテキストレコードを参照します。 ObjectDecoration
-
シンク宣言で
Format
が指定されている場合にこのキーと値のペアを使用して、レコードシリアル化の前にデータを追加します。たとえば、JSONFormat
を指定するシンクに対して"ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"
のObjectDecoration
が指定されているとします。その結果、シンクタイプに関連付けられている AWS サービスにストリーミングされた JSON にソースの元のデータに加え、以下のキーと値のペアが含まれます。{ ComputerName: "MyComputer2", DT: "2017-10-17 21:09:04" }
ObjectDecoration
の使用例については、「チュートリアル: Windows 用 Kinesis エージェントを使用して JSON ログファイルを Amazon S3 にストリーミング」を参照してください。 ObjectDecorationEx
より柔軟なデータ抽出と書式設定を可能にする式を指定します。
ObjectDecoration
。このフィールドは、シンクの形式がjson
。式の構文を以下に示します。"ObjectDecorationEx": "
attribute1
={expression1
};attribute2
={expression2
};attribute3
={expression3
}(;...)"たとえば、次の
ObjectDecorationEx
属性:"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"
リテラルレコードを変換します。
System log message
式によって返される値を使用して、次のように JSON オブジェクトを作成します。
{ "host": "
EC2AMAZ-1234
", "message": "SYSTEM LOG MESSAGE", "time": "20210201
" }式の式の作成の詳細については、「」を参照してください。式の記述に関するヒント。ほとんどの
ObjectDecoration
宣言は、タイムスタンプ変数を除いて、新しい構文を使用して動作するはずです。A{timestamp:yyyyMMdd}
のフィールドObjectDecoration
と表されます。{format(_timestamp,'yyyyMMdd')}
がObjectDecorationEx
。TextDecorationEx
より柔軟なデータ抽出と書式設定を可能にする式を指定します。
TextDecoration
次の例に示すように、とします。"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"
「」を使用できます。
TextDecorationEx
を使用して JSON オブジェクトを作成します。次の例に示すように、開いた中括弧をエスケープするには '@ {' を使用します。"TextDecorationEx": "@{ \"var\": \"{upper($myvar1)}\" }"
シンクに接続されたソースのソースタイプが DirectorySource
である場合、シンクでは次の追加の 3 つの変数を使用できます。
_FilePath
-
ログファイルの完全パス。
_FileName
-
ファイルのファイル名およびファイル名の拡張子。
_Position
-
レコードがログファイルのどこにあるかを表す整数。
これらの変数は、すべてのレコードを単一のストリームにストリーミングするシンクに接続された複数のファイルからログレコードを収集するソースを使用する場合に便利です。これらの変数の値をストリーミングレコードに挿入すると、データパイプラインのダウンストリーム分析でファイル別と各ファイルの場所別にレコードを並べ替えることができるようになります。
式の記述に関するヒント
式には、次のいずれかを指定できます。
変数の式。
定数式。たとえば、
'hello'
,1
,1.21
,null
,true
,false
。次の例に示すように、関数を呼び出す呼び出し式。
regexp_extract('Info: MID 118667291 ICID 197973259 RID 0 To: <jd@acme.com>', 'To: (\\\\S+)', 1)
特殊文字
特殊文字をエスケープするには、2 つのバックスラッシュが必要です。
Nesting
次の例に示すように、関数の呼び出しをネストすることができます。
format(date(2018, 11, 28), 'MMddyyyy')
Variables
変数には、ローカル、メタ、およびグローバルの 3 種類があります。
ローカル変数で始まります
$
など$message
。これらは、イベントオブジェクトのプロパティ、イベントがディクショナリである場合はエントリ、イベントが JSON オブジェクトの場合は属性を解決するために使用されます。ローカル変数にスペースや特殊文字が含まれている場合は、引用符で囲まれたローカル変数 ($'date created'
。メタ変数アンダースコア (
_
) であり、イベントのメタデータに解決するために使用されます。すべてのイベントタイプで、次のメタ変数がサポートされます。_timestamp
イベントのタイムスタンプ。
_record
イベントの生のテキスト表現。
ログイベントでは、次の追加のメタ変数がサポートされます。
_filepath
_filename
_position
_linenumber
グローバル変数は、環境変数、EC2 インスタンスメタデータ、または EC2Tag に解決されます。パフォーマンスを向上させるため、プレフィクスを使用して、検索範囲を制限することをお勧めします。
{env:ComputerName}
,{ec2:InstanceId}
, および{ec2tag:Name}
。
組み込み関数
Windows 用 Kinesis Agent でサポートされる組み込み関数は以下のとおりです。引数のいずれかがNULL
を処理するように設計されていませんNULL
、NULL
オブジェクトが返されます。
//string functions int length(string input) string lower(string input) string lpad(string input, int size, string padstring) string ltrim(string input) string rpad(string input, int size, string padstring) string rtrim(string input) string substr(string input, int start) string substr(string input, int start, int length) string trim(string input) string upper(string str) //regular expression functions string regexp_extract(string input, string pattern) string regexp_extract(string input, string pattern, int group) //date functions DateTime date(int year, int month, int day) DateTime date(int year, int month, int day, int hour, int minute, int second) DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond) //conversion functions int? parse_int(string input) decimal? parse_decimal(string input) DateTime? parse_date(string input, string format) string format(object o, string format) //coalesce functions object coalesce(object obj1, object obj2) object coalesce(object obj1, object obj2, object obj3) object coalesce(object obj1, object obj2, object obj3, object obj4) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)
シンク変数の置換の設定
KinesisStream
、KinesisFirehose
、および CloudWatchLogs
のシンク宣言では、LogStream
または StreamName
のキーと値のペアが必要です。これらのキー値の値には、Windows の Kinesis Agent によって自動的に解決される変数参照を含めることができます。を使用する場合CloudWatchLogs
とすると、LogGroup
キーと値のペアも必要です。このキーと値のペアには、Kinesis Agent for Windows によって自動的に解決される変数参照を含めることができます。変数は、テンプレート {
prefix
:
variablename
}
を使用して指定します。ここで、prefix
:
はオプションです。サポートされているプレフィックスは次のとおりです。
-
env
— 変数参照は同じ名前の環境変数の値に解決されます。 -
ec2
— 変数参照は同じ名前の EC2 インスタンスメタデータに解決されます。 -
ec2tag
— 変数参照は同じ名前の EC2 インスタンスタグの値に解決されます。インスタンスタグにアクセスするには、ec2:Describe*
アクセス許可が必要です。詳細については、「EC2 タグ変数の展開に必要なアクセス許可」を参照してください。
プレフィックスが指定されていない場合に variablename
と同じ名前の環境変数があると、変数参照は環境変数の値に解決されます。それ以外の場合で、variablename
が instance_id
または hostname
である場合、変数参照は同じ名前の EC2 メタデータの値に解決されます。それ以外の場合、変数参照は解決されません。
変数参照を使用した有効なキーと値のペアの例を次に示します。
"LogStream": "LogStream_{instance_id}" "LogStream": "LogStream_{hostname}" "LogStream": "LogStream_{ec2:local-hostname}" "LogStream": "LogStream_{computername}" "LogStream": "LogStream_{env:computername}"
CloudWatchLogs
シンク宣言では、特殊な形式のタイムスタンプ変数をサポートしています。この変数により、ソースからの元のログレコードまたはイベントレコードのタイムスタンプでログストリームの名前の変更が可能になります。形式は次のとおりです。{timestamp:
timeformat
}
次の例を参照してください。
"LogStream": "LogStream_{timestamp:yyyyMMdd}"
ログレコードまたはイベントレコードが 2017 年 6 月 5 日に生成された場合、前の例の LogStream
のキーと値のペアの値は "LogStream_20170605"
に解決されます。
承認されている場合、CloudWatchLogs
シンクタイプは、必要に応じて生成された名前に基づいて新しいログストリームを自動的に作成できます。その他のシンクタイプでは、ストリームの名前以外の追加の設定が必要であるため、これを行うことはできません。
テキストおよびオブジェクトのデコレーションで発生する特殊な変数の置換があります。詳細については、「シンクデコレーションの設定」を参照してください。
シンクのキューイングの設定
KinesisStream
、KinesisFirehose
、および CloudWatchLogs
のシンク宣言では、一時的な接続の問題が原因でそれらのシンクタイプに関連付けられている AWS サービスにストリーミングできなかったレコードのキューイングをオプションで有効にすることができます。接続が回復されたときにキューイングと自動ストリーミングの再試行を有効にするには、シンク宣言で次のキーと値のペアを使用します。
QueueType
-
使用するキューイングメカニズムの種類を指定します。サポートされている値は
file
だけです。これはレコードがファイルにキューイングされることを示します。Windows 用 Kinesis Agent for Windows のキューイング機能を有効にするには、このキーと値のペアが必要です。指定しない場合、デフォルトでは、メモリのみにキューイングして、メモリ内のキューイングの制限に達するとストリーミングに失敗します。 QueuePath
-
キュー内のレコードのファイルが格納されているフォルダのパスを指定します。このキーと値のペアはオプションです。デフォルト値は
%PROGRAMDATA%\KinesisTap\Queue\
SinkId です。ここで SinkId はシンク宣言でId
の値として割り当てた識別子です。 QueueMaxBatches
-
ストリーミング用にレコードをキューイングするときに Kinesis Agent for Windows で消費可能な容量の合計量を制限します。容量は、このキーと値のペアにバッチあたりの最大バイト数を乗算した値に制限されます。
KinesisStream
、KinesisFirehose
、およびCloudWatchLogs
のシンクタイプのバッチあたりの最大バイト数はそれぞれ、5 MB、4 MB、および 1 MB です。この制限に達すると、ストリーミング障害はキューに入れられず、回復不可能な障害としてレポートされます。このキーと値のペアはオプションです。デフォルト値は 10,000 個のバッチです。
シンクのプロキシの設定
AWS サービスにアクセスするすべての Kinesis Agent for Windows シンクタイプでプロキシを設定するには、以下の場所にある Kinesis Agent for Windows 設定ファイルを編集します。%Program
Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config
。手順については、以下を参照してください。proxy
のセクションに追加します。AWS SDK for .NET の設定ファイルリファレンス().NET 用 AWS SDK 開発者ガイド。
より多くのシンク属性での変数の解決の設定
以下の例では、使用するシンクの設定を示しています。Region
の値について、環境変数Region
属性キーと値のペア。を使用する場合RoleARN
では、EC2 タグキーを指定します。MyRoleARN
そのキーに関連付けられた値に評価されます。
"Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}" "Region": "{env:Region}" "RoleARN": "{ec2tag:MyRoleARN}"
AWS シンクで RoleARN プロパティを使用する場合の AWS STS リージョンエンドポイントの設定
この機能は、Amazon EC2 で KinesiStap を使用し、RoleARN
プロパティを使用して、送信先の AWS サービスで認証する外部 IAM ロールを引き受けることができます。
設定によるUseSTSRegionalEndpoints
~true
では、エージェントがリージョンのエンドポイントを使用するように指定できます (たとえば、https://sts.us-east-1.amazonaws.com
) ではなく、グローバルエンドポイント (たとえば、https://sts.amazonaws.com
). Regional STS エンドポイントを使用すると、オペレーションのラウンドトリップ待ち時間が短縮され、グローバルエンドポイントサービスの障害の影響が制限されます。
AWS シンク用の VPC エンドポイントの設定
シンク設定で VPC エンドポイントをCloudWatchLogs
,CloudWatch
,KinesisStreams
, およびKinesisFirehose
シンクタイプ。VPC エンドポイントでは、AWS PrivateLink を使用する AWS のサービスや VPC エンドポイントサービスに VPC をプライベートに接続できます。インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続は必要ありません。VPC のインスタンスは、サービスのリソースと通信するためにパブリック IP アドレスを必要としません。VPC と他のサービス間のトラフィックは、Amazon ネットワークを離れません。詳細については、「」を参照してください。VPC エンドポイント()Amazon VPC ユーザーガイド。
VPC エンドポイントを指定するには、ServiceURL
次の例に示すように、プロパティCloudWatchLogs
シンク構成。の値を設定します。ServiceURL
に表示される値にVPC エンドポイントの詳細Amazon VPC コンソールを使用して、タブに追加します。
{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "ServiceURL":"
https://vpce-ab1c234de56-ab7cdefg.logs.us-east-1.vpce.amazonaws.com
" }
プロキシの代替手段の設定
この機能を使用すると、.NET ではなく AWS SDK に組み込まれているプロキシサポートを使用して、シンク設定でプロキシサーバーを設定できます。以前は、プロキシを使用するようにエージェントを設定する唯一の方法は、.NET のネイティブ機能を使用することでした。これにより、プロキシファイルで定義されたプロキシを介してすべての HTTP/S 要求が自動的にルーティングされます。
現在プロキシ・サーバでエージェントを使用している場合は、この方法を使用するために変更する必要はありません。
「」を使用できます。ProxyHost
およびProxyPort
プロパティを使用して、次の例のように代替プロキシを設定します。
{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "Region": "
us-west-2
", "ProxyHost": "myproxy.mydnsdomain.com
", "ProxyPort": "8080
" }