サポートセンターホーム


AWS LogsIngestionの設定

アマゾンウェブサービス(AWS)の統合 LMログ ログイベントを転送するように設定されたLambda関数を使用して、AmazonCloudWatchログをLogicMonitorに送信します。 LogicMonitorは、このプロセスを自動化するためのXNUMXつの方法を提供します。 AWSCloudFormationスタックテンプレートTerraform構成.

必須条件

AWSCloudFormationを使用してデプロイする

LMログ用のCloudFormationスタックテンプレートを使用してLambda関数をデプロイするには:

1。 上の LMLogsリポジトリのAWS統合、 "クリック発射スタック"

2. スタックオプションを構成する テンプレート内。

スタックを作成すると、Lambda関数がデプロイされ、特定のCloudWatch Logsグループにサブスクライブされて、ログがLogicMonitorに転送されます。

注意: FunctionName のデフォルト値は LMLogsForwarder。 新しい関数が作成されると、CloudWatch ログ グループが同じ名前 (LMLogsForwarder この場合)と /aws/ラムダ/ プレフィックス。 関数の作成時に別の FunctionName を指定すると、ログ グループは同じ名前で作成されます (aws/ラムダ/私の関数名)

3.を参照してください AWSログの転送 転送するログがまだ含まれていない場合にCloudWatchロググループにログを送信するためのサービス固有の手順については(含まれている場合は、以下の情報をスキップできます)。

ログが適切なCloudWatchLogsグループに送信されると、Lambda関数はログをログ取り込みAPIに自動的に転送します。 その後すぐに、ログとログの異常がUI([ログ]ページと[アラート]ページの両方)に表示されます。

CloudFormationスタックオプション

パラメーター 製品説明
FunctionName (必須)ログ転送Lambda関数の名前。 デフォルトは LMLogsForwarder.
LMIngestEndpoint (必須)LogicMonitorアカウントのURL: https://<account>.logicmonitor.com
どこLogicMonitorサンドボックスアカウントまたは会社名です。
LMAccessId (必須)LogicMonitorAPIトークンのアクセスID。 APIのみのユーザーを作成することをお勧めします。
LMAccessKey (必須)LogicMonitorAPIトークンアクセスキー。
LMRegexScrub (オプション)ログメッセージから一致するテキストを削除するための正規表現パターン。

このパラメーターを使用して、機密情報を含むログをフィルターで除外し、それらのログがLogicMonitorに送信されないようにすることをお勧めします。
FunctionMemorySize (オプション)ログ転送ラムダ関数のメモリサイズ。
FunctionTimeoutInSeconds (オプション)ログ転送ラムダ関数のタイムアウト。
LogRetentionInDays (オプション)指定されたロググループに送信されたログのCloudWatchログ保持

CloudFormationの権限

CloudFormationスタックをデフォルトのオプションでデプロイするには、LogicMonitor認証情報をシークレットとして保存し、フォワーダーのコード(zipファイル)を保存するS3バケットを作成し、Lambda関数(実行ロールとログを含む)を作成するための以下の権限が必要です。グループ)。

{
           "Effect": "Allow",
           "Action": [
               "cloudformation:*",
               "secretsmanager:CreateSecret",
               "secretsmanager:TagResource",
               "secretsmanager:DeleteSecret",
               "s3:CreateBucket",
               "s3:GetObject",
               "s3:PutEncryptionConfiguration",
               "s3:PutBucketPublicAccessBlock",
               "s3:DeleteBucket",
               "iam:CreateRole",
               "iam:GetRole",
               "iam:PassRole",
               "iam:PutRolePolicy",
               "iam:AttachRolePolicy",
               "iam:DetachRolePolicy",
               "iam:DeleteRolePolicy",
               "iam:DeleteRole",
               "lambda:CreateFunction",
               "lambda:GetFunction",
               "lambda:GetFunctionConfiguration",
               "lambda:GetLayerVersion",
               "lambda:InvokeFunction",
               "lambda:PutFunctionConcurrency",
               "lambda:AddPermission",
               "lambda:RemovePermission",
               "logs:CreateLogGroup",
               "logs:DescribeLogGroups",
               "logs:PutRetentionPolicy",
               "logs:PutSubscriptionFilter",
               "logs:DeleteSubscriptionFilter"
           ],
           "Resource": "*"
}

CloudFormationスタックを作成するには、次の機能が必要です。

  • CAPABILITY_AUTO_EXPAND、フォワーダーテンプレートはマクロを使用するためです。
  • CAPABILTY_IAM, CAPABILITY_NAMED_IAM、フォワーダーがIAMロールを作成するためです。

Terraformを使用してデプロイする

以下を実行します terraform Lambda関数をデプロイするコマンド(必要な変数を入力):

# terraform apply --var 'lm_access_id=<lm_access_id>' --var 'lm_access_key=<lm_access_key>' --var 'lm_company_name=<lm_company_name>'

詳細については、以下を参照してください LMログフォワーダーの構成例.

AWSログの転送

Lambda関数をデプロイした後、ログをLambda関数に送信するように個々のAWSサービスを設定する必要があります。 サポートされているAWSサービスの手順は以下にあります。

EC2インスタンスログを送信する

EC2インスタンスログをLMログに転送する前に、CloudWatchログに収集する必要があります。 詳細については、を参照してください。 CloudWatchAgentのインストール.

注意: EC2ログをLogicMonitorに送信する場合、ログストリーム名は インスタンスID (通常、これがデフォルトです)。

CloudWatchロググループでEC2ログの受信を開始した後: 

1. CloudWatchで、ロググループ(EC2ログの転送元)を選択します。

2。 下 アクション> Lambdaサブスクリプションフィルターを作成する、「Lambda関数」を選択し、「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択します。

3。 クリック ストリーミングを開始する.

ELBアクセスログを送信する

Amazon ELBアクセスログをLMログに送信するには:

1. EC2ナビゲーションページで、 ロードバランサー ロードバランサーを選択します。

2。 下 属性>アクセスログ、 "クリックアクセスログを構成する"

3。 」を選択しますアクセスログを有効にする」と入力し、ログを保存するS3バケットを指定します。 (バケットが存在しない場合は作成できます。)

4. S3バケット(ステップ3から)に移動し、 詳細設定>イベント、「の通知を追加しますすべてのオブジェクト作成イベント"

5.「ラムダ関数"を選択し、LMLogsフォワーダー」(またはスタック作成時にLambda関数に名前を付けたもの)。

6。 クリック ストリーミングを開始する.

S3バケットアクセスログを送信する

AmazonアクセスログをS3バケットからLMログに送信するには:

1.ソースバケットの下 プロパティ、イネーブル サーバーアクセスログ.

を選択する必要があります ターゲットバケット アクセスログが保存される場所。 このターゲットバケットが存在しない場合は、作成する必要があります。 (これはソースバケットとは異なります。)

2.ターゲットバケットに移動し、 詳細設定>イベント、「の通知を追加しますすべてのオブジェクト作成イベント"

3.「ラムダ関数"を選択し、LMLogsフォワーダー」(またはスタック作成時にLambda関数に名前を付けたもの)。

4。 クリック 変更を保存します.

RDSからログを送信する

Amazon RDSログをLMログに送信するには:

1.ログをCloudWatchに送信するようにRDSインスタンスを設定します。

2. CloudWatchで、ロググループ(RDSログの転送元)を選択します。

3。 下 アクション> Lambdaサブスクリプションフィルターを作成する、「Lambda関数」を選択し、「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択します。

4。 クリック 変更を保存します.

ラムダログを送信する

LambdaログをLMログに送信するには:

1. CloudWatchで、Lambdaのロググループ(ログの転送元)を選択します。

2。 下 アクション> Lambdaサブスクリプションフィルターを作成する、「Lambda関数」を選択し、「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択します。

3。 クリック 変更を保存します。

LambdaログはロググループからLogicMonitorに転送する必要があります。

EC2からフローログを送信する

EC2フローログをLMログに送信するには:

1.Lambdaのロールポリシーの権限に次の行を追加します。

"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"

2. [信頼関係]の下の[サービスタグの役割]に次の行を追加します。

"vpc-flow-logs.amazonaws.com"

3.CloudWatchのロググループは次の名前で作成する必要があります /aws/ec2/networkInterface

4. [ネットワークインターフェイス]ページでEC2インスタンスIDを検索します。 そのネットワークインターフェイス行を選択し、次の設定でフローログを作成します。

  • 宛先ロググループ: /aws/ec2/networkInterface
  • IAMロール:ステップ1と2で作成したロール。

5.ログレコード形式で、[カスタム形式]を選択します。 ログ形式の最初の値は次のようになります instance-id。 要件に応じて他の値を設定します。 詳細については、を参照してください。 フローログに使用できるフィールド.

6. / aws / ec2 / networkInterfaceロググループに移動します。 [アクション]> [サブスクリプションフィルター]> [Lambdaサブスクリプションフィルターの作成]で、「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択し、サブスクリプションフィルター名を指定します。 [ストリーミングの開始]をクリックします。

ログはLambdaを介してLogIngestionAPIに伝播し始めます。

NATゲートウェイからフローログを送信する

NATゲートウェイフローログをLMログに送信するには:

1.Lambdaのロールポリシーの権限に次の行を追加します。

"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"

2. [信頼関係]の下の[サービスタグの役割]に次の行を追加します。

"vpc-flow-logs.amazonaws.com"

3.CloudWatchのロググループは次の名前で作成する必要があります /aws/natGateway/networkInterface

4. [ネットワークインターフェイス]ページでNATゲートウェイIDを検索します。 そのネットワークインターフェイス行を選択し、次の設定でフローログを作成します。

  • 宛先ロググループ: /aws/natGateway/networkInterface
  • IAMロール:ステップ1と2で作成したロール。

5. / aws / ec2 / networkInterfaceロググループに移動します。 [アクション]> [サブスクリプションフィルター]> [Lambdaサブスクリプションフィルターの作成]で、「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択し、サブスクリプションフィルター名を指定します。 [ストリーミングの開始]をクリックします。

ログはLambdaを介してLogIngestionAPIに伝播し始めます。

CloudTrailからログを送信する

AWS CloudTrailからLMログにログを送信するには:

1. AWSポータルのCloudTrailページで、[ トレイルを作成する.

2.提供する トレイル名.

3.ログファイルをSSE-KMSで暗号化しない場合は、「ログファイルSSE-KMS暗号化」のチェックを外します。

4.「CloudWatchLogsEnabled」をチェックし、ロググループ名を次のように指定します。 / aws / cloudtrail

5.既存のIAMロールCloudTrail権限がある場合は、IAMロールボックスに入力として指定します。 それ以外の場合は、新しい役割を作成することもできます。必ず新しい役割の名前を指定してください。

6.次のページで、収集するログのタイプを選択します。 サポートされているログには、Kinesis Data Streamログ、Kinesis Firehose APIログ、およびECSログが含まれます。

7.次のページで、提供された構成を確認し、をクリックします トレイルを作成する.

8. CloudWatchのロググループページに移動し、 / aws / cloudtrail ロググループ。

9. [アクション]> [サブスクリプションフィルター]> [ラムダサブスクリプションフィルターを作成]で。 ラムダ関数で「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択し、サブスクリプションフィルター名を指定します。 [ストリーミングの開始]をクリックします。

ログはLMログへの伝播を開始します。 AWSアカウント名リソースでログを確認できます。

CloudFrontからログを送信する

AWS CloudFrontからLMログにログを送信するには:

1. AWSポータルのCloudFrontページで、ログを収集するディストリビューションを選択します。

2.「オン」を選択します 標準ロギング.

3.ログのS3バケットで、ログを保存するバケットを選択します。

4. [ディストリビューションの作成]をクリックします。

5番目のステップで選択したS3バケットに移動します。

6。 に行く プロパティ >イベント通知 をクリックし イベント通知を作成する.

7.提供する イベント名.

8。 で 宛先のラムダ関数 タブで、「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択します。

9。 クリック 変更を保存します.

S3バケットのログをLMログで確認できます。

Kinesisデータストリームからログを送信する

Amazon Kinesis DataStreamsからのログはAWSCloudTrailからフィルタリングされるため、 CloudTrailの説明 これらのログを取り込むため。

Kinesis DataFirehoseからログを送信する

Amazon Kinesis Data Firehoseは、APIログとエラーログのXNUMX種類のログで構成されています。 APIログはCloudTrailから収集され、次のことができます。 CloudTrailの説明 これらのログを取り込むため。

エラーログを取り込むには:

1. [配信システムの作成]> [システムの構成]で、[有効]を選択します。 エラーログ.

これにより、CloudWatchに配信システムの名前が/ aws / kinesisfirehose /の形式でロググループが作成されます。

2. [アクション]> [サブスクリプションフィルター]> [ラムダサブスクリプションフィルターを作成]で。 ラムダ関数で「LMLogsForwarder」(またはスタック作成時にLambda関数に名前を付けたもの)を選択し、サブスクリプションフィルター名を指定します。 [ストリーミングの開始]をクリックします。

ログはラムダを介してLogIngestに伝播し始めます。 KinesisFirehose配信システムの名前が付いたログを表示できます。

ECSからログを送信する

AmazonECSからのログはAWSCloudTrailからフィルタリングされるため、 CloudTrailの説明 これらのログを取り込むため。

トラブルシューティング

Amazon CloudWatchから転送されたログのトラブルシューティングを支援するには、Lambdaログでデバッグログを有効にします。

1. AWSコンソールで、 AWSLambda>関数 そして「LMLogsForwarder」(またはセットアップ中にログ転送Lambda関数に名前を付けたもの)。

2.キーを使用して環境変数を追加します DEBUG と価値 true.

記事上で