【備忘録】CloudWatchLogsのメトリクスフィルターの設定方法

## はじめに

最近でも約2年前以上の記事に反応が来るので、これくらいの設定系の記事も需要があるのかと思い、今回はCloudWatchLogsのメトリクスフィルターの設定について記事に残していこうと思います。

https://qiita.com/k_dd/items/7968dc30b9a4429061c4

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/0275e743-a82d-aa38-cfe5-1c8d9dbbbfe6.png)

メトリクスフィルターとは、アプリなどから吐き出されたログをメトリクスとして数値化する機能です。
特定のログの回数やエラーコードの回数をメトリクスとして収集できます。
メトリクスとして収集できるので、閾値を設定してアラームを設定することもできるようになります。

## メトリクスフィルターの設定
まずは今回メトリクスフィルターを設定するロググループを作成します。
（並び替えで表示しやすいように頭にaaaを付けています。検索すればいいだけなんですけどね）
今回は適当なロググループで検証後に削除するため、保持期間やKMSキーの設定はしていません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/dab01c76-7484-93c1-c5d0-8e09feb80039.png)

作成できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/214752e0-4b68-d803-da20-1dfca44557f4.png)

では、本題のメトリクスフィルターを作成します。
メトリクスフィルターを設定したいロググループを開き、下部にあるメトリクスフィルタータブを選択し、「メトリクスフィルターを作成」ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/0903f8fb-4721-9c96-85ce-91abc5deda22.png)

まずはフィルターパターンを設定します。
今回は「ERROR」を含むログをメトリクスとしてカウントすることにします。
この時注意点があり、大文字と小文字は区別されます。そのため今回の設定の場合は、「ERROR」はもちろん、「This is ERROR」はメトリクスとしてカウントしてくれますが、「error」だとカウントしてくれません。メトリクスとしてカウントしたいログをちゃんと確認して設定してください。
また、パターンをテストすることもできます。フィルターパターンを記載したら次へ進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/20229a8d-dfe8-ae47-5f21-0c82c9a1b418.png)

次にメトリクスフィルターの詳細設定をします。
それぞれ設定して次に進みます。
+ フィルター名：メトリクスフィルターの名前
+ メトリクス名前空間：メトリクスを管理するための箱のような概念
+ メトリクス値：フィルターパターンに該当するログが出力された時に記録する値
+ デフォルト値：フィルターパターンに該当しないログが出力された時に記録する値
+ Unit：メトリクスをカウントする時の単位

簡単にそれぞれどのようなものか記載しましたが、詳しくは公式ドキュメントをご覧ください。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/4cabedbf-2040-9644-f95f-0946fe0de33c.png)

設定値を確認してメトリクスフィルターを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/6892575d-0023-64ab-94a2-7d38547810cd.png)

作成すると先程何も無かったところに設定したフィルター名で作成されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/0f63d264-8ffb-ff04-65b9-0f0fd47c65a4.png)

設定ができたので、ちゃんとメトリクスとして取ることができるのかテストしていきます。
ログストリームタブを選択し、ログストリームを作成します。
作成したらログストリームを開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/4eeac1cc-9470-3f14-72fd-c60c2f0c153f.png)

ログストリームが開いたら、「アクション→ログイベントの作成」でテストログを発行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/2705f3f8-7d18-cfcd-4948-0d5c1ea10ea1.png)

ログイベントを作成できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/78f51998-ca67-cca2-c61f-ffce059386aa.png)

実際にメトリクスとして収集できているか確認します。
メトリクスのページから開いてもいいですが、先ほど作成したメトリクスフィルターからも飛ぶことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/af921a03-18fb-a255-75d3-0b25e75627b6.png)

設定したメトリクス名にチェックを付けたら表示されました。
ちゃんと1カウントしてくれています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/17230b31-3ec6-9935-1b0f-9c2633a45361.png)

これでメトリクスフィルターの設定は完了です。

## おわりに
メトリクスフィルターを設定したら、閾値を設定してアラームを設定する場合がほとんどだと思います。
他のアラームを設定する時と同様にアラームのページからメトリクスを選択して作成していっても良いのですが、メトリクスフィルターを選択して、「アラームを作成」ボタンからも作成することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/0f63d264-8ffb-ff04-65b9-0f0fd47c65a4.png)

よろしければ「いいね♡」押してください。
最後まで読んでいただきありがとうございました。

### 参考

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/MonitoringPolicyExamples.html