Amazon CloudWatch Logs Insightsでapacheログを解析

Amazon CloudWatch Logs Insightsでapacheログを解析:

11月26日~11月30日にかけてラスベガスで開催された『AWS re:Invent 2018』で発表された機能のひとつ、CloudWatch Logs Insightsを使ってみました。


前提

前提として、apacheのcombinedアクセスログをCloudWatch Logsにロググループ"/var/log/httpd/access_log"として蓄積できているものとします。


クエリを実行してみよう

コンソールからCloudWatchを開くと、左のメニューにログがあります。その下階層にインサイトが追加されました。これをクリックして、インサイトの画面を開きます。

  • 対象のロググループを選んで
  • 必要があればタイムスタンプの範囲を指定して
  • クエリを書いて実行します。


cloudwatch.png


試しにこんな簡単なクエリを実行してみました。

parse '* - * [*] "* * *" * *' as host, identity, dateTimeString, httpVerb, url, protocol, statusCode, bytes 
|filter statusCode=500 
apacheのログはparseクエリで一時的なフィールドとして取り出す必要があります。「クエリのヘルプ」のparseにマウスオーバーするとapacheのcombinedログにそのまま使えるparseが書いてあります。あとはひっかけたい条件をfilterで書いてやればよいです。


使ってみた感想

CluodWatch LogsをS3に置いてAthenaに読み込ませて…よりは、はるかに簡単なステップでログにクエリを実行できます。しかし、
必要最低限

のクエリしかありません。私がやりたかったのは、Splunkの置き換えなんですが、さすがにそこまでできてしまうとSplunkの存在意義がなくなってしまいます。

具体的にはrexで正規表現にひっかけた結果をGROUP BYして、だったのですがいまのところは無理でした。

パイプラインで結合してstatsとかは、かなりSplunkを意識しているようなんですけどね。

今後の機能充実に期待です。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)