ログのビジュアライゼーション手段についての調査・インストール手順


UXログのビジュアライゼーションと分析のプラットフォームのメリット・デメリットをまとめる

作業環境はUbuntu16.04LTS(64bit)、Javaの動作環境は構築済み。

調べた経緯

アクセスログを取得するだけでなく、フォームへの記入エラーや途中でページを閉じた割合、最後まで記入するのにどれだけの時間がかかったかなどの様々なログを取得し、それらを元にページを最適化してユーザエクスペリエンスの向上を図るのに使用できそうなため。

可視化ツール

Kibana

Elasticsearchに格納されているログをリアルタイムで監視。GoogleTrendsによると日本では最も人気がある模様

メリット
  • 設定が容易
  • 文字列を検索できる
  • 円グラフや地図が使える
  • x軸にタイムスタンプ以外を割り振れる
  • 表現方法が豊富
デメリット
  • 細かな設定は複雑

Graphana(Grafana)

Graphite,InfluxDBなどに対応。Kibanaから分かれて誕生

メリット
  • 見栄えがいい
  • 扱いやすい
  • タイムウィンドウを特定するのが容易
デメリット
  • 時系列の扱いには優れるが、総合的な機能面でKibanaに劣る

Prometheus

標準でPull型。GoogleTrendsによると海外では3つの中で最も人気がある模様

メリット
  • 柔軟なクエリ言語
  • OpenTSDBに準じたデータモデル
  • コミュニティが盛ん
  • Dockerなどとの連携がいいらしい
デメリット
  • 数値しか扱えない
  • 表示される時刻はUTCで固定

その他

  • Cytoscape
  • Cytoscape.js
  • Gephi
  • D3.js

これらはノードタイプの可視化ソフト/サービスで、RやMatlabなどで解析して表示する。

インストール手順

Kibana

Elasticsearchも一緒に

Elasticsearchとは?

バックエンドで動作するDBソフト。リアルタイムで更新、検索そして全文検索ができるのが特徴。
ビジュアライザはこのようなバックエンドのDBから情報を取得し、可視化する。

Elasticsearchのインストール
インストール
$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
$ &echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
$ sudo apt-get update && sudo apt-get install elasticsearch
起動
$ sudo service elasticsearch start

http://localhost:9200/ にアクセスできれば成功です。

Kibanaのインストール

https://www.elastic.co/downloads/kibana からダウンロードしてインストールできます。しかし自分の環境では何故か正常にインストールできなかったためターミナル経由での方法も記載しておきます。

インストール
$ wget https://download.elastic.co/kibana/kibana/kibana-4.5.4-linux-x64.tar.gz
$ tar xvfz kibana-4.5.4-linux-x64.tar.gz
$ ln -s kibana-4.5.4-linux-x64 kibana
$ cd kibana
起動
$ ./bin/kibana

http://localhost:5601 にアクセスできれば成功です。

Grafana

InfluxDBも一緒に

InfluxDBとは

Elasticsearchと同じくDB。時系列データの扱いに長けている。

InfluxDBのインストール
インストール
$ wget https://dl.influxdata.com/telegraf/releases/telegraf_0.13.2_amd64.deb
$ sudo dpkg -i telegraf_0.13.2_amd64.deb
起動
$ sudo service influxdb start

http://localhost:8083/ にアクセスできれば成功です。ネットでよくID:root PW:rootでログインするように書いてありますが、自分の環境ではその必要はありませんでした。

Grafanaのインストール

http://docs.grafana.org/installation/debian/ からDLしてインストールできますが、一応コマンドも記載しておきます。

インストール
$ wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.1.1-1470047149_amd64.deb
$ sudo apt-get install -y adduser libfontconfig
$ sudo dpkg -i grafana_3.1.1-1470047149_amd64.deb
起動
$ sudo service grafana-server start

http://localhost:3000/ にアクセスできれば成功です。ID:admin PW:adminでログインできます。

Prometheus

https://prometheus.io/download/ からファイルをDLし

$ tar xvfz prometheus-1.0.1.linux-amd64.tar.gz

で展開し、その中のprometheusを実行。
http://localhost:9090/status にアクセスできれば成功です。

まとめ

 今回は離脱率や滞在時間などの統計を取る必要があるため、数値しか扱えないPrometheusは除外、GrafanaかKibanaを使用することになる。現時点ではKibanaの使用を想定しているが、Elasticsearchを使うためGrafanaを同時に使用することも可能である。

おまけ

Apache2のログを取得して表示させてみました