🐕
CloudWatchのログをFirehoseでNew Relicに転送する
このページについて
Amazon CloudWatch LogsのログをAmazon Kinesis Data Firehoseで、New RelicのLogsに転送する手順をメモしておきます。
以下の記事はAWS Lambdaでしたが、Amazon Kinesis Data Firehoseでも転送可能です。
New Relic Insert API Key確認
New Relicの API Keys
から INGEST - LICENSE
を選択します。
Copy key
からAPI Keyをコピーできます。
USER
タイプのAPIキーではないので注意。
S3作成
Firehoseの配信エラーログ用にS3バケットを作成します。
IAM作成
Firehose用ロール作成
- ポリシー作成
Firehoseの配信エラーログ用にS3のポリシーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::is55-test-newrelic/*",
"arn:aws:s3:::is55-test-newrelic"
]
}
]
}
- ロール作成
FirehoseにアタッチするためのIAMロールを作成します。
ポリシーは作成したS3のポリシーをアタッチします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "firehose.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
CloudWatch Logs用ロール作成
- ポリシー作成
Firehose用のポリシーを作成します。
今回はfirehose:*
で作成しています。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "firehose:ListDeliveryStreams",
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "firehose:*",
"Resource": "arn:aws:firehose:ap-northeast-1:***************:deliverystream/is55-test-newrelic"
}
]
}
- ロール作成
CloudWatch Logsサブスクリプションフィルターを設定する際に使用するIAMロールを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Firehose作成
以下の設定でFirehoseのdelivery streamを作成します。
項目 | 値 | 備考 |
---|---|---|
Source | Direct PUT | |
Destination | New Relic | |
HTTP endpoint URL | New Relic logs - US | https://aws-api.newrelic.com/firehose/v1 |
API Key | 事前に確認した New Relic Insert API Key
|
|
Source record backup in Amazon S3 | Failed data only | 成功ログも格納する場合は All data を選択 |
S3 backup bucket | 事前に作成したS3バケット | |
Permissions | 事前に作成したFirehose用ロール |
Destinationには New Relic
を選択します。
HTTP endpoint URLでは、New Relicのリージョンで分かれていますが、今回はLogsの US
を選択します。
上記設定項目以外は今回はデフォルト値を使用します。
CloudWatch Logs
対象とするロググループのサブスクリプションフィルターから、 Kinesis Firehoseサブスクリプションフィルターを作成
を選択します。
作成したFirehoseやCloudWatch Logs用ロールを選択し、必要なフィルターパターンを作成します。
設定完了。
テスト
該当ロググループにてテスト用のログイベントを作成します。
[TEST] error message test
New Relicコンソールの Logs
に飛んでいればOKです。
GitHubで編集を提案
Discussion