用途的には以前にやってみたKibana/Elasticsearchとも重複するところだけど、まあ色々の事情で。
ひとまず環境構築+テストデータ投入+グラフ化まで体験してみた感じでは直感的で分かりやすく好印象。
環境構築@Docker Compose
個人的にはお馴染みDocker Composeで。
ひとまずデータファイルの類は/srv/docker/grafana以下にマウントする形で集約する方針。
ポートやドメイン、パスワードなんかは適時読み替えで。
InfluxDBのAPIにあたる8086ポートに関しては同じ番号を割り当てておいた方が各所で楽ではある。
version: "2"
services:
influxdb:
image: influxdb
volumes:
- /srv/docker/grafana/influxdb:/var/lib/influxdb
ports:
- 8084:8083 #InfluxDBのWeb UI
- 8086:8086 #InfluxDBのHTTP API
grafana:
image: grafana/grafana
ports:
- 8085:3000 #grafanaのポート
volumes:
- /srv/docker/grafana/grafana:/var/lib/grafana
environment:
- GF_SERVER_ROOT_URL=http://192.168.77.6:8085 #最終的にリクエストする際のURL
- GF_SECURITY_ADMIN_PASSWORD=admin
これでdocker-compose up -dで立ち上がるはず。
データ投入
ひとまず何かしらデータを入れてみる。
Rubyでinfluxdbというgemがあって、それを使うのが簡単そう。
以下のスクリプトを作成してみた。
create_db.rb
tutorialという名前のデータベースを作成。
#!/usr/bin/env ruby require 'influxdb' database = 'tutorial' influxdb = InfluxDB::Client.new host: '192.168.77.6' influxdb.create_database(database)
insert_data.rb
先に作成したtutorialデータベースにテストデータとしてランダムな値を持つ5要素のデータを投入していく。
#!/usr/bin/env ruby
require 'influxdb'
host = '192.168.77.6'
database = 'tutorial'
time_precision = 's'
influxdb = InfluxDB::Client.new database, :host => host, :time_precision => time_precision
NAMES = ['test1', 'test2', 'test3', 'test4', 'test5']
NAMES.each do |name|
data = {
values: {value: rand(10000) + 1},
timestamp: Time.now.to_i
}
influxdb.write_point(name, data)
end
グラフ化するので時間を開けて何回か叩いておく。
面倒であればcronにでも仕込んでおくと良いかもしれない。
InfluxDB上で確認
InfluxDBのWeb UIより、新たにデータベースが作成されていることと、データが入ってきていることが確認できる。


Grafanaで可視化
データソースの登録
画面左上のアイコンのメニューよりデータソースを選択し、InfluxDBをつなぎこむ。

ダッシュボードの作成
新たなダッシュボードを作成し、グラフの要素を登録していく。
アイコン隣のHomeのところからNewボタンでダッシュボードを作成し・・・

表示のための行をadd_rowボタンで追加し・・・

グラフのためのクエリを登録していく。

一つのグラフに複数の要素を表示できる。

期間を選択して表示。

グラフ以外の表示方法も選択できる。

(慣れもあるかもしれないけど、)前のKibana/Elasticsearchはドキュメントを目を皿のようにして追いながらいじってたのに比べると、 かなり直感的で分かりやすい印象をもった。
例えばサービスのKPIなんかは専用の管理画面をいちいち作るのもかったるいわけで、 FluentdだったりバッチからカジュアルにInfluxDBにデータを投入していって、 それを適時ダッシュボードとして作成して可視化するような運用をできたら幸せかもしれない。
時系列データベース としての特性なんかはまだ全然押さえられていないところなので、 これから勉強していきたいところ。
![サーバ/インフラエンジニア養成読本 ログ収集〜可視化編 [現場主導のデータ分析環境を構築!] Software Design plus サーバ/インフラエンジニア養成読本 ログ収集〜可視化編 [現場主導のデータ分析環境を構築!] Software Design plus](https://images-fe.ssl-images-amazon.com/images/I/61rZ7L4Zt1L._SL160_.jpg)
サーバ/インフラエンジニア養成読本 ログ収集〜可視化編 [現場主導のデータ分析環境を構築!] Software Design plus
- 出版社/メーカー: 技術評論社
- 発売日: 2014/08/14
- メディア: Kindle版
- この商品を含むブログを見る