用途的には以前にやってみた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
- 出版社/メーカー: 技術評論社
- 発売日: 2014/08/14
- メディア: Kindle版
- この商品を含むブログを見る