こんにちは! 現在テクサポ課(いわゆるサポート問い合わせの課)でOJT中の日高です!
Amazon CloudWatchって機能が多くて混乱しちゃいますよね....
ってことでCloudWatchについてIT初心者がまとめてみたシリーズの第2弾です。
第1弾としてAmazon CloudWatch Metricsについてまとめているのでよかったらご覧ください!! blog.serverworks.co.jp
今回はAmazon CloudWatch Logs(今後はCloudWatch Logsと記載)について見ていきたいと思います。
サービスの概要
CloudWatch Logsは、独自のアプリケーションや各種AWSサービスのログを収集して監視や保存を行うサービスです。
利用方法としてはAmazon EC2 インスタンスおよびオンプレミスサーバーにCloudWatch エージェントをインストールし設定を行うことで利用を開始できます。
お気づきになられた方もいらっしゃると思いますが、オンプレミス上のサーバーからログを収集することも可能になっています!
本記事ではCloudWatch エージェントのインストール方法等については触れず、CloudWatch Logsのサービスの全体像を理解してもらうことを目的にします!
ただCloudWatch エージェントのインストール方法が気になる方は、該当のドキュメントを記載しておくので確認してみてください。
サービスの詳細
本記事で理解していただきたいCloudWatch Logsの全体像の構成を先に記載させてもらいます。
サービスで登場する概念
ログイベント
ログイベントとは、アプリケーションやAWSサービスにより出力されたログの内容です。
例として、VPCフローログのログイベントを見てみましょう。(数字等はランダムに記載しています)
2022-12-07T17:08:58.000+09:00 2 (アカウントID) eni-×××××××14a5 〇〇.〇〇.〇〇.〇〇 〇〇.〇〇.〇〇.〇〇 40355 443 6 1 40 153432428 42624244 ACCEPT OK
このように1つのログインベントはレコード単位で記録され、タイムスタンプ(2022-12-07T17:08:58.000+09:00)とログメッセージ(タイムスタンプ以降の文字列)で構成されています。
ログストリーム
ログストリームはEC2インスタンスなど同じソース上から、出力されたログイベントの集まりです。
ロググループ
複数のログストリームを集めたものです。
1つのロググループに1つ以上のログストリームが存在しています。
サービスの機能
フィルタについて
CloudWatch Logsでは特定の文字列をフィルタによってログを抽出したり、抽出したログをLambda等に転送できます。
また、ログをCloudWatch Metrics上のメトリクスとして集計することも可能です。
具体的には「サブスクリプションフィルタ」と「メトリクスフィルタ」の2つがあります。
サブスクリプションフィルタ
特定の文字列をフィルタリングし、Lambda、OpenSearch Service、Kinesis Data Streams、kinesis Data Firehoseに連携することが可能です。(2022年12月13日現在)
サブスクリプションフィルタを活用することで、上記のAWSサービスと連携してログの分析や可視化、S3へのログの長期保存が実現できます。
ただ注意点として以下の2つがあります。
①1つのロググループにつきサブスクリプションフィルタは2つまでという制約がある(※変更はできない)
②文字列のフィルタリングに正規表現が利用できない
メトリクスフィルタ
指定した文字列でログをフィルタリングして、CloudWatch Metricsのカスタムメトリクスとして集計が可能になるフィルタです。
コンソール上で一定期間内に発生したエラーを見たい場合などに利用できます。
メトリクスフィルタの注意点も2つあります! ①文字列のフィルタリングに正規表現が利用できない ②ロググループごとにメトリクスフィルタは100個まで利用可能
Logs Insights
CloudWatch Logsのログデータに対し、独自の構文を使ってデータを検索したり分析したりすることができる機能です。
従量課金制で、スキャンしたデータに応じて料金がかかります。
また、クエリ実行した結果は、棒グラフ、折れ線グラフ、積み上げグラフ、パイチャートなどで可視化をすることができます。
ただ注意点としてはクエリのタイムアウトが15分と定められているので、検索に時間を要する場合はAtenaの利用がいいかと思います。
まとめ
本記事ではCloudWatch Logsについて簡単にまとめて見ました。
なんとなく全体像がつかめたでしょうか??
誰かのお力になれていれば幸いです!
日高 僚太(執筆記事の一覧)
2024 Japan AWS Jr. Champions / 2024 Japan AWS All Certifications Engineers
EC部クラウドコンサルティング課所属。2022年IT未経験でSWXへ新卒入社。
記事に関するお問い合わせや修正依頼⇒ hidaka@serverworks.co.jp