Amazon CloudWatchLogs のログを NewRelic へ送信する

# はじめに
NewRelic で用意されている **AWS Serverless Application** を利用して NewRelic へログを送信する設定を行います。

# 設定

# 事前作業
本作業を行う際に API ライセンスキーを利用します。
以下に記事書きましたのでよかったら参考にして発行しておいてください。

https://qiita.com/kooohei/items/00da439f280adc44cdca

## AWS Lambdaアプリケーションのデプロイ
- [AWS Serverless Application Repository](https://serverlessrepo.aws.amazon.com/applications)へアクセスします。
- 検索ボックスで **NewRelic-log-ingestion** を入力し、 **Show apps that create custom IAM roles or resource policies** のチェックボックにチェックを入れます。
すると、**NewRelic-log-ingestion** が表示されるのでそのリンクをクリックします。

![create01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/c72bea1c-6adc-fb53-5d1c-e38b380dffbb.png)

- **[ Deploy ]** をクリックします。

![create02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/a666f2bf-2f83-0991-b211-540cceb4fac7.png)

- AWS Lambdaアプリケーションのデプロイ画面が表示されるので、
  > *NRLicenseKey* : **作成したAPIキー**
  > *NRLoggingEnabled* : **True**
  
  を入力し、 *"このアプリがカスタム IAM ロールを作成することを承認します。"* のチェックボックスにチェックを入れ、**[ デプロイ ]** をクリックします。

![create03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/83057f0c-6142-b6ac-850b-1a26ea7c7f58.jpeg)

- **[ AWS Lambda > アプリケーション ]** で *"serverlessrepo-NewRelic-log-ingestion"* のステータスが **Create complete** となればデプロイ完了です。

![create04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/bf9eeca1-a3b2-b262-bceb-bfe61589f77e.png)


## AWS Lambda トリガーの追加
- **[ AWS Lambda > 関数 > NewRelic-log-ingestion-×××××××× ]** で **[ + トリガーを追加 ]** をクリックします。

![create05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/eafbfb16-7606-585d-4b08-2cb9b87286fb.png)

- *"ソースを選択"* で **CloudWatch Logs** を選び、*"Log group"* で送信したいロググループを選択し、 *"Filter name"* を入力します。
- **[ 追加 ]** をクリックします。

![create06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/a8b52287-81d7-988b-434e-76e360d7f6b1.png)


## 確認
- 先ほど **[ + トリガーを追加 ]** だった部分に **[ CloudWatch Logs ]** が表示されます。

![create07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/ecb66233-3450-abc4-a3df-7ef2b30a4507.png)

また、**[ S3 ]** をクリックするとトリガー情報が確認できます。
**[ ▶️ 詳細 ]** を開くと詳細情報が確認できるため、ここに先ほど追加した設定内容が表示されます。

![create08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/ad0559b4-513c-bc7d-3f90-55e5a9ff75dd.png)


# トリガーの追加と削除
他の S3 バケットに保存したログに対してはトリガーの追加/削除で対応ができます。
## 追加
- **[ トリガーを追加 ]** をクリックしてあとの手順は先ほどと同様です。

![add02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/27655e15-aa57-6f24-0186-bc96958ccb6f.png)
![add01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/9aafca0d-4a33-d16b-62f5-37c5b139c733.png)

## 削除
複数のログ送信が設定されている場合、特定のログ送信を停止する際に行う作業です。

- 対象トリガーのチェックボックスにチェックを入れます。

![delete01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/7a78c640-ad53-9ab7-2e1d-0ae9d201d39a.png)

- **[ 削除 ]** をクリックします

![delete02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/2b087ab4-4eb5-0529-cc25-b83c9319116d.png)

- **[ 閉じる ]** をクリックして完了です。

![delete03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/6f678b9b-3539-9500-7080-00d84799bf14.png)


# AWS Lambdaアプリケーションの削除
送信設定したログを一括で停止したい際はLambdaアプリケーションを削除することで対応できます。

- **[ CloudFormation > スタック ]** から **serverlessrepo-NewRelic-log-ingestion-××××××××** をクリックします。

![delete01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/b9635dfe-1a1c-569a-b239-440e3b2fa70c.png)

- **[ 削除 ]** をクリックします。

![delete02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/29b5ec38-7c96-9b95-8a2e-dc273e574bf3.png)

- **[ 削除 ]** をクリックします。

![delete03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/a8a33874-1158-9b12-9ef7-e3387838c8b2.png)


# おわりに
Lambda アプリケーションをデプロイするだけで転送設定が行えるのでとても便利だなと感じました。

## その他の NewRelic に関する投稿
その他にも投稿記事があるので良かったら読んでいただけたら嬉しいです。

https://qiita.com/kooohei/items/00da439f280adc44cdca

https://qiita.com/kooohei/items/3e4b3a21cc727ed6ab94

### 参考
https://docs.newrelic.com/jp/docs/logs/forward-logs/aws-lambda-sending-cloudwatch-logs/