この記事は、Vuls Advent Calendar 2016の4日目の記事です。
はじめに
前回はEXCELを使ってレポートを作成しましたが、システムの規模が大きいとVulsが出力するログの量も膨大になり、EXCELで処理することができません。
またVuls以外で管理している構成情報と組み合わせたり、ドリルダウンしながらインタラクティブに分析したい場合、ログデータの可視化ツールを使うと良いと思います。
今回は、ElasticSearchとKibanaを使ってVulsのログを可視化したいと思います。
Vuls JSON→ElasticSearchへBulkインサート
前回、「VulsのログをCSVにしてExcelで可視化する」にて使用したnode.jsのスクリプトを使います。
GitHub:https://github.com/usiusi360/vuls-log-converter
インストール方法はそちらを見てください。
ElasticSearchの準備
今回は時間短縮のためにAmazon Elasticsearch Serviceを使いました。作成時のパラメータは以下のような感じの最小構成で。
Elasticsearch version:2.3
Instance count:1
Instance type:t2.micro.elasticsearch
Storage type:EBS
EBS volume type:General Purpose(SSD)
EBS volume size:10GB
access policy:「Allow access to the domain from specific IP(s)」
ちなみに今回はIPアドレスによるフィルタだけです。
時間がなかったのでvuls-log-converterではIAM認証はしていません。その辺は今後気が向いたらってことで。
実行
「-i」でVulsが出力したJSONファイルが入っているフォルダを指定し、「-e」でElasticSearchのエンドポイントを指定します。入力元にフォルダを指定すると中に入っているJSONファイルを変換しつつ、ElasticSearchへ直接Bulk insertします。
$ node ./vuls-log-converter.js -t els -i /opt/vuls/results/current/ -e https://search-vuls-hogehoge.ap-northeast-1.es.amazonaws.com/
Kibana
-
ElasticSearchにデータをインポートできたら、kibanaでインデックスを指定します。
-
今回はやってませんが、インポート前にマッピング定義しておいた方が良いかも。CveIDがハイフンで分離されてしまうのでnot_analyzedにしておきます。
さいごに
ElasticSearchにVulsのデータをインポートしてダッシュボードを作成することができました。ダッシュボードにすることでシステム全体の状態を一目で俯瞰することができるようになり、毎日のチェックが楽になるのでオススメです。
Vuls Advent Calendar 5日目はjkudoさんです。よろしくお願いします。