LoginSignup
1
1

いざというときに備えよう AWS CloudWatch ログのインサイトの使い方 簡易版

Last updated at Posted at 2024-02-02

概要

障害対応時などに重宝するCloudWatchのログのインサイト(SQLっぽいクエリでログを検索できる仕組み)の使い方を簡単にまとめておく

注意

ログのインサイトは検索するデータ量に応じて料金が変わってくるはずである。後述するlimitなどを使って意図しない料金請求が発生しないように注意しよう。

使い方

ログのインサイトは1つ以上のロググループに対してクエリを実行する事ができる。

  1. 検索したいロググループの名前を調べる。
  2. AWSにログインしCloudWatchのコンソール画面に移動する。
  3. 左サイドバーの「ログ」の中の「ログのインサイト」をクリックする。
  4. ロググループを選択する。
  5. クエリを入力・実行し結果を得る。

ログの内容を指定して検索する(SQLのselectみたいな感じ)

例えば@messageフィールド(ログのメッセージ部分)にが「error.」という文字列で終わっているエラーを最新の10件見たい場合、下記のようになる。どうやら正規表現にも対応している模様。

fields @timestamp, @message, @logStream
| filter @message like "error."
| sort @timestamp desc
| limit 10

SQLのselectでカラム指定する部分がfieldsの部分で、SQLのwhereで条件を絞り込む部分がfilterの部分である。
ソートとリミットはそのまである。
limitに関しては付与する癖をつけたほうが良さそうである。特に「すべてのデータをヒットさせたい」場合以外はなるべくlimitを使おう。出力結果の量に応じて料金が変わるらしい。意図しない料金請求に注意だ。

条件にあったログの個数を検索する(SQLのcount(*)みたいな感じ)

例えば@messageフィールド(ログのメッセージ部分)にが「error.」という文字列で終わっているエラーの個数を見たいときは下記のようになる。

filter @message like "error."
| stats count()

クエリ対象期間の指定はどうやってやるの?

対象期間はクエリでは行わず、ログのインサイトの画面上部の設定で行う。

Cursor_と_ログ___CloudWatch___ap-northeast-1.png

もっと複雑なクエリを組みたいんだけど・一回実行したクエリを保存したいんだけど

参考になりそうなクエリはこちらある。(ログのインサイト画面の右側の「クエリ」)ボタンからもアクセスすることが可能

また、クエリ入力欄に「保存」ボタンがあるのでそこからクエリを保存する事ができる。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1