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

##UXログのビジュアライゼーションと分析のプラットフォームのメリット・デメリットをまとめる
作業環境はUbuntu16.04LTS(64bit)、Javaの動作環境は構築済み。

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

#可視化ツール

###Kibana
Elasticsearchに格納されているログをリアルタイムで監視。GoogleTrendsによると日本では最も人気がある模様
![Screen-Shot-2014-12-15-at-12.28.30-PM.png](https://qiita-image-store.s3.amazonaws.com/0/137708/1a495065-1aa7-678f-cbf2-d9b3c039c31c.png)


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

#####デメリット
- 細かな設定は複雑

###Graphana(Grafana)
Graphite,InfluxDBなどに対応。Kibanaから分かれて誕生
![nice_dashboard.png](https://qiita-image-store.s3.amazonaws.com/0/137708/94e0193c-c5be-d9f3-ca8f-07e14a667416.png)


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


###Prometheus
標準でPull型。GoogleTrendsによると海外では3つの中で最も人気がある模様
![Screenshot from 2016-08-23 14-37-23 (コピー).png](https://qiita-image-store.s3.amazonaws.com/0/137708/d00047c0-fb01-46ab-9c80-47b710f7ab72.png)


#####メリット
- 柔軟なクエリ言語
- OpenTSDBに準じたデータモデル
- コミュニティが盛ん
- Dockerなどとの連携がいいらしい

#####デメリット
- 数値しか扱えない
- 表示される時刻はUTCで固定


###その他
- Cytoscape
- Cytoscape.js
- Gephi
- D3.js

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



#インストール手順

###Kibana
Elasticsearchも一緒に

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


#####Elasticsearchのインストール

```text:インストール
$ 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
```

```text:起動
$ sudo service elasticsearch start
```

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


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

```text:インストール
$ 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
```

```text:起動
$ ./bin/kibana
```

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


###Grafana
InfluxDBも一緒に

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

#####InfluxDBのインストール
```text:インストール
$ wget https://dl.influxdata.com/telegraf/releases/telegraf_0.13.2_amd64.deb
$ sudo dpkg -i telegraf_0.13.2_amd64.deb
```

```text:起動
$ sudo service influxdb start
```

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


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

```text:インストール
$ 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
```

```text:起動
$ 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のログを取得して表示させてみました![Kibana_apache.png](https://qiita-image-store.s3.amazonaws.com/0/137708/f2e57254-9441-bd42-ec6c-65db2d22e692.png)