VPC flowlogという機能が最近リリースされました。SGを通過した・蹴られたのログが取れるというものです。これ自体はとてもありがたいのですが、ログの閲覧はCloudWathLogsからとなり、コレがイケてない。だから何とかしたという話

どんなふうにイケてないのか

CloudWatchLogs上の見え方ですが、こんなかんじです。

20150816210033

フィルタで頑張ることも出来なくはないのです。たとえば80ポートへのアクセスで絞るなら[スペース]80[スペース]とかでフィルタかければなんとかいけます。ただ、Unixタイムスタンプはキツイよねー

で作りました



  
    Cloud Watch Flowlog
DownloadLink
Target Search text Treat as regex Use smart search
srcaddr
dstaddr
srcport
dstport
action

gist.github.com

20150816210256

20150816210238

機能解説

ローカル実行可能 Credential別サーバに投げるとかない

ローカルにおいたhtmlファイルを、ブラウザで叩いてOK。Web Storageとかも使ってない(使えてない)

ローカルファイルとしてJSONダウンロード可能

CreateDownloadLink を押してから 右のリンクをクリック。事前にデータロードした状態でないと動かない。おまけで付けた機能

各columnで絞り込み

80とかにマッチさせたければ、Regex on で ^80$とかしないとダメ。あんまりイケてない。

問題点

そんなに作りこんでいない。でかいデータをガツンとやるなら、素直にローカルにダウンロードするツール使った方がいい。

何度か実行すると Call Stackが足らんとか言われる

いつか直す。

4,5 万行ぐらいでまともに動かない

Dynatableの方がいいのかも?StartDateで絞れるようにはした。

各種部品(ライブラリ)

AWS SDK

S3は少々CORSとかで癖があるけど、それ以外は特に問題ない。必要な機能だけの最小版も作れるみたい。

Build your own AWS SDK for JavaScript

これいいね!

datatables

テーブルをいい感じに捌くやつ。調べつつ使ったけど、あんまり使いやすくない。

moment.js

jsの面倒くさいところに、日付の変換とかがありますが、こいつはいい感じに捌いてくれます。

bootstrap-datetimepicker

昔からよくあるやつだけど、こいつのお陰でmoment.jsに触れた。

File API

とりあえず使ってみたかっただけ。

感想

やっぱjs難しいな-と思った。Bootstrap以外のものを使ってみよかとおもったけど、やめた。ともかく非同期地獄をコントロールできるようにならねばな、Promiseとか。

元記事はこちら

VPC Flowlogが見づらいので、htmlでViewer作ってみた