AWS Lambda関数newrelic-log-ingestion
を使用して、New RelicにAmazon CloudWatchログを送信できます。これは、AWSサーバーレスアプリケーションリポジトリから簡単にデプロイできます。
CloudWatchログをNew Relicに転送すると、ログデータの収集、処理、探索、クエリ、アラートを実行するが強化されます。
CloudWatchログでのLambda関数のインストールと設定
次の設定は、環境変数を設定するための1つのアプローチを示しています。関数ページから設定することもできます。
次の項目を完了します。
があることを確認してください。
ブラウザでAWS Serverless Application Repositoryを開きます
newrelic
を検索し、Show apps that create custom IAM roles or resource policiesをチェックしてnewrelic-log-ingestion
を見つけます。newrelic-log-ingestion
の詳細を開き、Deployをクリックします。関数のConfigureメニューで、Environment Variablesに移動し、次の環境変数を使用してログ転送を設定します。
キー
説明
DEBUG_LOGGING_ENABLED
CloudWatchコンソールにデバッグメッセージを出力するかどうかを決定するブール値。 オプション。
デバッグログをオンにするには、これを
true
に設定します。デフォルトはfalse
です。LICENSE_KEY
New Relicへのデータ送信に使用されます。必須。
LOGGING_ENABLED
ログをNew Relicに転送するかどうかを決定します。Required [必須]。ログ記録を有効にするには、これを
true
に設定します。NR_TAGS
すべてのログイベントに追加するタグを指定します。 オプション。
各タグは、コロンで区切られたキーと値で構成されます。複数のキーの値のペアはセミコロンで区切られます(
env:prod;team:myTeam
など)。NR_LAMBDA_LOG_GROUP_PREFIX
Lambdaロググループを
/aws/lambda
以外のパスを使用するように設定している場合は、この変数を使用して指定できます。 オプション。NR_VPC_LOG_GROUP_PREFIX
VPCロググループを
/aws/vpc/flow-log
以外のパスを使用するように設定している場合は、この変数を使用して指定できます。 オプション。アプリがカスタムIAMロールを作成することを確認したら、Deployをクリックします。
処理が完了したら、 Lambdaトリガーを作成して、Lambda関数とCloudWatchログを連携させます。
Lambdaトリガーの作成
取り込み機能では、ログサブスクリプションではなく、必ずトリガーを設定してください。サブスクリプションがLambdaコンソールで設定されていると、一連のログが生成され、New Relicに転送される可能性があります。
ログをNew Relicにストリーミングするには、Lambdaにトリガーをアタッチします。
左側のメニューから
Functions
を選択します。
以前に作成した
newrelic-log-ingestion
関数を見つけて選択しますTriggers
の下で
Add Triggers
をクリックし、ドロップダウンから
CloudWatch Logs
を選択します。
アプリケーションに適切な
Log group
を選択します。
フィルターの名前を入力します。
オプション:フィルターパターンを入力します。
Enable trigger
チェックボックスをオンにし、
Add
をクリックしてトリガーを作成します。
このドキュメントはインストールの役に立ちましたか?
オプション:さまざまなログエンドポイントの設定
必要に応じてカスタムログエンドポイントを設定できます。これにより、たとえば、FedRAMP準拠のエンドポイントを使用できるようになります。
そのためには、上で説明したアプリケーションをデプロイしてから、次のことを行う必要があります。
AWSに最近デプロイされたLambda関数ビューに移動します。
下にスクロールして、
Configuration
タブをクリックします。
Configuration
タブ内の左側のメニューで、
Environment Variables
をクリックします。
ここで、既存の環境変数のリストが表示されます。
Environment Variables
テーブルの右上にある
Edit
をクリックするだけです。
適切なエンドポイントで
NR_LOGGING_ENDPOINT
を更新します。- 米国の場合:
https://log-api.newrelic.com/log/v1
- EUの場合:
https://log-api.eu.newrelic.com/log/v1
- FedRAMPの場合:
https://gov-log-api.newrelic.com/log/v1
- 米国の場合:
Save
をクリックします。
オプション:再試行の設定
通信の問題により関数がデータの送信に失敗した場合に、実行する再試行の回数を設定できます。推奨される再試行回数は3回ですが、以下のパラメーターを変更することで再試行動作を変更できます。
ヒント
再試行の回数が増えると、関数の実行時間が長くなる可能性があります。これにより、Lambdaのコストが高くなる可能性が高くなります。ただし、再試行の回数を減らすと、データ損失の可能性が高まる可能性があります。
MAX_RETRIES = 3 # Defines the number of retries after lambda failure to deliver dataINITIAL_BACKOFF = 1 # Defines the initial wait seconds until next retry is executedBACKOFF_MULTIPLIER = 2 # Time multiplier between the retriesAs an example, in default above configuration, first retry will happen after 1 second, second retry after 2 seconds and third retry will happen after 4 seconds.
SAMテンプレートで作成したリソース
リポジトリからアプリケーションを作成すると、次のリソースも作成されます。
- Lambda関数自体
- CloudWatchログに基づいてLambda関数に実行権限を与えるために使用されるロール
リストされていない他のすべてのLambda設定はデフォルトのままにすることができます。
ログデータの表示
すべてが正しく設定され、データが収集されている場合は、次の両方の場所にログデータが表示されます。
SELECT * FROM Log
ログ管理機能を有効にしてもデータが表示されない場合は、標準のログトラブルシューティング手順に従ってください。
次のステップ
プラットフォーム全体のロギングデータを調べます。
- コンテキスト内のログ機能でログを転送することで、アプリケーションとプラットフォームのパフォーマンスデータをより深く可視化することができます。
- アラートの設定
- データをクエリし、ダッシュボードを作成します。
ログ転送の無効化
ログ転送機能を無効にするには、Amazon CloudWatchドキュメントの標準手順に従ってください。New Relicでは特に何もする必要はありません。