#ログの調査の流れ
よく業務でCloudWatchでログ調査することがあって、効率的にログが出せるように使い方を調べたのでまとめてみました。
こんな感じで調査しています。
エラー発覚。発生時間や現象等を教えてもらう。
↓
エラーが発生したと思われるサービスのロググループを開く。
↓
ログイベントの中から、時間、and検索、除外検索でエラーログを特定していく。
↓
エラーログを発見。前後のログ見たり、共有したり。
その方法を以下にまとめてみたので、興味のある方は読んでみてください。
#ロググループの検索
まず該当のロググループを検索したいのだが、そのフィルタールールが使いにくいので挙動をまとめました。
具体例で示すと、
検索ワード: abc
abc.def ○
ab.c ○
a.b.c ○
cba ×
cba.bc ○
このようにロググループの検索は、
「1文字ずつのor検索に加えて、文字の順番(?)が考慮されてるフィルター」のようです。
###完全一致にチェックを入れた場合
完全一致にチェックを入れる項目がありあますが、検索ワードをひとかたまりとして検索をかけれるようです。(googleの""を使った完全一致検索と同じ)
完全一致にチェックを入れた場合
検索ワード: abc
abc.def ○
ab.c ×
a.b.c ×
cba.bc ×
※スペースは検索対象文字として扱われるので、and検索とかはできない
#ログイベントの検索
ロググループを選択したらログストリームで該当のものを選択。
該当のものがわからないときは「Search all」を選択した方が早い。
ログの検索については公式ドキュメントに全てが載っている。
簡単にまとめるとこうなる。
- スペース区切りでand検索
- 「?」を前につけるとor検索
- 「-」を前につけると除外
- 「_」以外の記号を使う場合は「""(ダブルクォーテーション)」で囲う
- 「[]」「{}」はスペース区切りフィルター、JSONフィルターという検索方法があるらしく検索ワードに含めない方が良い。使い方は公式ドキュメントを参照してください。
例
and検索: abc def
or検索: ?abc ?def
除外: -abc
記号を含む: "/abc/def"
#ログストリームの表示
エラーの原因のログを見つけたら、前後の処理を見たかったり、共有したいことありますよね。
そういうときは「ログストリーム名」を表示させておきます。
該当のログを探して、そのログストリーム名のリンクを開きます。
そうすると、該当のログを基準にフィルターがかかってない状態で前後を見ることができます。
また、そのリンクを共有することでログの共有が簡単にできます。
#まとめ
最初は検索の仕方に癖があるなと思って使いづらいと思っていたが、規則を理解したら効率良く調査できるようになった。
コンソールを完全に使いこなせているとは思えないので、もっと便利な機能があれば使ってみたい。
インサイトも便利なのでまとめようと思う。