システム事業部の阿部です。
最近、色々な案件でAWSのサービスを使うことも増えてきました。
本番障害や、テスト環境での不具合発生時にはログを検出して原因究明を行う作業の中で、CloudWatchを用いたログ抽出を行う機会も増えてきました。(私だけではないはず)
簡単ではありますが、CloudWatchのログ検索で気を付けたい/便利な検索方法を備忘録として残したいと思います。
必ず"(ダブルクォーテーション)で囲むこと
何気なく使っていると、検索したい文字で当たり前に検索はできるのですが、対象に記号が入っている場合、急に検索ができなくなる! なんてこともしばしば。
例えば 【csv】 という文字を含むログを検索すると
ですが、検索結果の1件目【tmpfile_20220720220704-9-l4vnkp.csv】のみを検索対象とすると↓のように検索結果が0件となります。
おそらく-(ハイフン)が含まれているため、1つの続いた文字と理解した検索になっていないのだと思います。
そこで"(ダブルクォーテーション)を使い【"tmpfile_20220720220704-9-l4vnkp.csv"】とすると期待通り抽出できることになります。
AND検索はスペースでOK
ログは通常大量に出力されるので、フィルタリングするうえでAND検索を使えると便利ですよね。この時はスペースで複数文字列を組み合わせればOKです。
【csv】と【vnkp】をAND検索することで1件目ログだけ出力されているのがわかると思います。
OR検索は?を活用
AND検索と同様にOR検索もできると便利ですね。
この時は?を使います。
?"tmpfile_20220720220704-9-l4vnkp.csv" ?"tmpfile_20220720220704-9-iyfbrr.csv"
とすることで、どちらか一方の文字を含んでいれば抽出可能となります。
除外検索には-"ハイフン"を使おう
SQLで言うところのNot条件と言いますか、ある文字を含んでいる場合は出力しないような除外検索も可能です。
【vnkp】を含むログが検索結果に表示されていないことがわかると思います。
すごい単純な例ではありますが、この4つを覚えておくことで効率は上がりますし、変な時間のロスもなくなるので迷ったときに見てみてください。