LoginSignup
2
2

More than 5 years have passed since last update.

Amazon CloudWatch Logs Insightsでapacheログを解析

Last updated at Posted at 2018-12-13

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を意識しているようなんですけどね。
今後の機能充実に期待です。

2
2
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
2
2