AWS Lambdaの監視を有効にした後 AWSのログデータを報告するために使用されるLambda関数を時々更新する必要があります: newrelic-log-ingestion
。
これには2つの方法があります。
- CLIによるアップデート: CLIツールを使ってLambdaのモニタリングを有効にした場合に使用します.
- AWS Serverless Application Repository経由でのアップデート: 手動での手順を有効にした場合に使用します.
重要
これらの更新手順は、当社の AWS Lambda 用サーバーレス監視 に適用され、当社の AWS Lambda 統合用インフラ監視 には適用されません。
CLIによるLambdaインテグレーションの更新
このセクションでは、弊社推奨の CLIツール を使用してLambdaモニタリングが有効になっている場合のアップデート方法について説明します。
最新版のCLIを使用してください。
pip install --upgrade newrelic-lambda-clinewrelic-log-ingestion
関数をインストールした各地域で、次のコマンドを実行します。 YOUR_REGION を地域の識別子に置き換えます(例えば、us-west-2
)。newrelic-lambda integrations update \ --aws-region YOUR_REGION
また、弊社のログを有効にしていない場合は、以下のコマンドでAmazon CloudWatchのログ購読フィルターを更新する必要があります。
newrelic-lambda subscriptions install \ --function installed \ --aws-region YOUR_REGION
CLIによるレイヤーの更新
このセクションでは、弊社の CLIツール でインストールした場合に、機能のLayerをアップデートする方法について説明します。
最新版のCLIを使用してください。
pip install --upgrade newrelic-lambda-cliインストールコマンドに
--upgrade
フラグを渡します。newrelic-lambda layers install \ --function installed \ --nr-account-id NR_ACCOUNT_ID \ --upgrade
手動のServerlessアプリケーションリポジトリのインストールを更新する
AWS Serverless Application Repository からインジェスト機能を手動でインストールした場合( CLI を使用しなかった場合)、この手順でアップデートしてください。
YOUR_REGION を自分の地域に置き換えて以下を実行します(例:
us-west-2
)。aws serverlessrepo create-cloud-formation-change-set \ --application-id arn:aws:serverlessrepo:us-east-1:463657938898:applications/NewRelic-log-ingestion \ --stack-name NewRelic-log-ingestion \ --capabilities CAPABILITY_RESOURCE_POLICY \ --region YOUR_REGION
このコマンドはいくつかのフィールドを出力しますが、そのうちの1つがChangeSetId:今作成した変更セットのARNです。そのARNをコピーします。
変更セットを実行するこのコマンドにARNを使用します。
aws cloudformation execute-change-set --change-set-name YOUR_CHANGE_SET_ARN
ログ管理の有効化
現在、New Relicのログ管理を有効にしていないが、有効にしたいと考えている方。
最新版のCLIを使用してください。
pip install --upgrade newrelic-lambda-clinewrelic-log-ingestion
関数をインストールした各地域で、次のコマンドを実行し、 YOUR_REGION を自分の地域に置き換えます(例えば、us-west-2
)。newrelic-lambda integrations update \ --enable-logs \ --aws-region YOUR_REGION
その後、以下のいずれかを行ってください。
以下のコマンドで、各リージョンのAmazon CloudWatchのログ購読フィルターを更新します。
newrelic-lambda subscriptions install \ --function installed \ --filter-pattern "" \ --aws-region YOUR_REGION
あるいは、CloudWatch や
newrelic-log-ingestion
Lambda をバイパスして、関数のログを New Relic に直接送信することもできます。そのためには、Lambda関数の設定で、環境変数NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS=true
を設定します。その後、このコマンドを使用して、その機能に対する既存のNew Relicログサブスクリプションを必ず削除してください。
newrelic-lambda subscriptions uninstall \ --function FUNCTION_NAME \ --aws-region YOUR_REGION
拡張機能がログを送信しているときにログサブスクリプションが存在すると、ログが2回送信され、New Relicのログレコードが重複してしまいます。
オプションとして、CloudWatch Log取り込みのためのAmazonの料金 を避けたい場合は、関数の 実行ロール を変更して、CloudWatch Logのパーミッションを付与しないようにすることもできます。これにより、関数がCloudWatchにロギングされなくなります。
注意
CloudWatch ログの取り込み料金はかなりの額になりますが、このステップは慎重に行う必要があります。CloudWatchログを無効にする前に、New Relicのログ取り込み統合がうまく機能しており、ニーズを満たしていることを確認してください。