まえがき
https://hoge.com?hoge=hogehoge&fuga=fugafuga
みたいなアクセスログをそのまま集計するとクエリストリングが邪魔でほぼユニークなリクエストになる。
そのため、Painlessを使って https://hoge.com
として表示するフィールドを追加する。
ELBアクセスログのElasticsearchへの投入
betaなのでクリティカルなところでは考えたほうが良いが、これ使っておけば間違いない。
ELBアクセスログを集約していれば大体2,30分もあれば慣れてる人ならサクッと導入できる。
しかもELBアクセスログ発行 -> S3 -> SQSの流れは全てAWSがやってくれるからいちいち細かいことを気にしなくて良い。
filebeatはSQSにデータを取得&Elasticsearchにpushするだけだし、本当に便利。
最初はLogstashのpatterns-coreにあるからそれでよいかと思ったが、 パターンが古くて駄目っぽい。
また、PRの反応も最近は薄そうなのでそのへんも加味して使うのを辞めた。
画面
実際のコード
def v_size = doc['http.request.referrer.keyword'].size(); if (v_size == 0) { return "path size is 0"; } else { def path = doc['http.request.referrer.keyword'].value; if (path != null) { int lastSlashIndex = path.lastIndexOf('?'); if (lastSlashIndex > 0) { return path.substring(0, lastSlashIndex); } else { return path; } } return "path is null"; }