はじめに
AWS Serverless Application RepositoryにNew Relicのメソッドが追加されました。
AWS Serverless Application Repositoryとは、ユーザが作成したLambda Functionをパブリックに共有したり、すでにAWS Serverless Application Repositoryに公開されているLambda Functionの中から、ユーザが自由に選択して使用することができるサービスです。
New Relicでは、INFRASTRUCTUREのAWS Integration機能を使用することで、多くのAWSサービスのモニタリングを簡単に始めることができますが、RDSの拡張モニタリングによるメトリクスなどは取得することができません。
今回New Relicは、AWS Serverless Application Repository上に「NewRelic-log-ingestion」を公開しました。このLambda関数を使用することによって、VPCのFlow LogsやRDSの拡張モニタリングで取得可能なメトリクスをモニタリングできるようになります。
NewRelic-log-ingestion機能概要
"NewRelic-log-ingestion"は、RDSの拡張モニタリングのメトリクスやVPC Flow Logsといった、デフォルトのAWS Integration機能では取得できない値を取得するためのLambda関数です。仕組みとしては、CloudWatch Logsにたまる上記のメトリクスをLmabda経由でNew Relic INFRASTRUCTUREに送る形となります。
それでは、設定方法をご説明します。
設定手順
1. 必要情報
あらかじめ、設定に必要な下記2点の情報を取得します。KMSキーは、New Relicライセンスキーを暗号化するために必要ですので、発行するようにしてください。
- New Relicのライセンスキー
- KMS暗号化キー(New Relicライセンスキーの暗号化に使用)
2. Lambda関数の作成
『関数の作成』画面で[サーバーレスアプリケーションのレポジトリ]を選択します。検索窓に「NewRelic-log-ingestion」と入力し、表示されたアプリケーションを選択します。
『設定とデプロイ』画面で[Configure application parameters]のKmsKeyidにあらかじめ作成したKMSのKey ID(ARNの末尾)を入力します。
入力後、[Deploy]を実行します。
3. New Relicライセンスキーの設定
作成したLambda関数を開き、[環境変数]の「LICENSE_KEY」に自身のNew Relic License Keyを入力します。
次に[暗号化の設定]を開き、「伝送中の暗号化のためのヘルパーの有効化」を選択します。
伝送中に暗号化するKMSキーは、1で作成したKMSを指定します。その後、[環境変数]の「LICENSE_KEY」の横に表示された[暗号化]ボタンを押下します。
4. トリガーの設定
最後に、メトリクスが保存されているAWSサービスをトリガーとして設定します。今回はRDSの拡張モニタリングメトリクスをCloudWatch Logsに保存しているため、これをトリガーとして設定します。
作成したLambda関数の[設定]から、[トリガーの追加]二表示されているサービス一覧から「[CloudWatch Logs]」を選択します。
次に[ロググループ]から、RDSの拡張モニタリングメトリクスの保存先に指定したグループを指定し、[フィルターの名前]に任意の値を入力、右下の[追加]を押します。
最後に画面上部の[保存]を押下します。
これで、Lambda関数を介して、New RelicにRDSの拡張メトリクスを飛ばす準備が整いました。
5. New Relic Insightsで確認
New RelicのInsightsを開き、『RDS enhanced monitoring』というダッシュボードを開きます。
ダッシュボード画面にRDSの拡張モニタリングで取得可能なRDS OS部分のメトリクスが表示されることを確認します。
おわりに
AWS Serverless Application RepositoryのNew Relicメソッドを使用することで、Lambda経由でRDSの拡張メトリクスを送るようになりました。同じ手順でVPC Flow LogsについてもNew Relicに飛ばすことができますので、是非試して見てください。