ラボ対策用の個人的な備忘録ページです。マネジメントコンソールで操作していきます。
全3記事ぐらいを予定して今回は次の通り。
- CloudWatch Logsでメトリクスフィルターを作成
- 上記延長でCloudWatch Alarmを作成

では早速!
CloudWatch Logsでメトリクスフィルタを作成
今回は疑似的にログを発生(作成)させて、任意文字列に一致したら値「1」として定義するような「メトリクスフィルタ」を作っていきます。
では操作していきます。
CloudWatchサービスの「ロググループ」より「ロググループを作成」をクリックします。

- メトリクスフィルタ:ログデータから任意文字列をフィルタする機能。応答時間などの数値部分を切り出して数値比較を行うことも可能。
- ロググループ:ログを格納する大きな箱(linuxなら/var/logのイメージ)。
- ログストリーム:一連のイベントログを格納する箱(linuxならsyslog.logのイメージ)
名前は「test-log」にします(画面省略)。
続いて、ロググループ内にログストリームを作っていきます。

名前は「st1」にします(画面省略)。
続いて、作成したログストリームに対して、「ログイベントの作成」より疑似的にログを作成していきます。

お試しのため次のようにイベントログを追加しました。
- aaa
- bbb
- ccc

続いて、任意ログメッセージを検索してメトリクスとして利用するために「メトリクスフィルターを作成」より進めていきます。

今回は文字列「bbb」を検出したら値「1」とするようなメトリクス(メトリクスフィルター)を定義します。

下部のパターンテストで任意文字列をひっかけることが出来るか確認出来るので親切です。

フィルタ名、メトリクス名、メトリクス空間名は任意名前にします。
※実際のラボ試験で指定があれば、それに沿って名前を付ける認識です。
メトリクス値は「1」、デフォルト値は「0」にします。

メトリクスフィルタの作成が出来ましため、念のためカスタム名前空間に表示されているか確認してみます。

- カスタム名前空間に表示されないことがある。
→ 新しくログが発生しないと表示されないっぽいので、メトリクスフィルタ作成後にログを1件追加したらすぐに表示されるようになった。
CloudWatch Alarmを作成
今回は先ほど作成したメトリクスフィルターにAlarmを付与します。該当メトリクスフィルターにチェックを入れて「アラームを作成」より進めます。
※アラームを作成はメトリクスのところから作成も出来ますし、アラームメニューのところからも作成出来ます(ラボ試験で途中の操作は問われないと思うのでわかる手順で対応でしょうか)。

条件として「以上」、しきい値は「1」とします(後はデフォルトのままです)。
アラーム名は任意名前を付けます。

- SNS通知は本手順では省略しました。もしもラボ試験で出た場合はSNSサービスよりトピックを作成してメール認証を済ませばすぐに使えるようになります。
・・・そこまでラボ試験やるのかな。予め準備されたSNSトピックの選択なのだろうか。
作成したアラームを確認してみます。
最初はデータ不足として「OK」「NG」のどちらでもない(データ不足@INSUFFICIENT_DATA)かと思いますが、ログにデータを追加したりしていると、判定されるようになります。

今回は任意ロググループの手動イベントログからメトリクスフィルターを作って、アラームと連携させました。一方で標準的なメトリクス(例えばEC2ヘルスチェック)も同じような手順になり、ログやメトリクスフィルターの作成が無い分簡単です。
まとめ
今回はラボ試験を想定してCloudWatchのLogs、Alarmを使ってみました。メトリクスフィルタは用語として聞いたことはありますが、実際に操作することで理解が深まったと思います。
Alarm設定自体は、直感的に操作出来ました(Alarmにひっかけるためのしきい値設定である以上とか未満とかを誤らなければ簡単に感じる)。こうゆう内容でラボ試験に出てくれればラッキーです。

最後までご覧いただきありがとうございました。
コメント