手軽にシステムダッシュボードが作れる「Grafana」レビュー
システム管理者は多くのサーバから随時データを受信してその健康状態を判断しなければなりません。サービスの負荷があがっていないか、ストレージは十分にあるか、データベースがボトルネックになっていないかなど判断材料は多数あります。
そうしたデータを逐一サーバにログインして確認していては時間がかかってしまいますので、データダッシュボードソフトウェアが使われます。今回はその一つ、Grafanaを紹介します。
Grafanaのインストール
Grafanaのインストール方法は幾つも用意されています。CentOS/Ubuntuなど各Linuxディストリビューションごとにパッケージも提供されていますし、Dockerを使ったインストールも行えます。
# macOSの場合 brew update brew install grafana brew services start grafana # Dockerの場合 docker run -i -p 3000:3000 grafana/grafana
これで 3000番ポートで起動します。
データの準備
最初は特にデータがありませんので、まずデータソースを登録します。今回はMySQLのような使い勝手で利用できる時系列データベースInfluxDBを使います。こちらのインストールはDockerを使うのが手軽です。
$ docker run -d -p 8083:8083 -p 8086:8086 -p 8090:8090 -p 8099:8099 influxdb
これでWeb APIとして http://localhost:8086/ が立ち上がります。後は influx コマンドでログインしてデータベースを作成後、次のようなコマンドでデータの登録ができます。
$ curl -i -XPOST http://localhost:8086/write?db=mydb --data-binary "temperature,machine=unit42,type=assembly external=90,internal=60"
データソースの登録
データが蓄積されたら、Grafanaでデータソースとして登録します。データソースは基本的にデータベースの接続情報を登録するだけです。現在のところ、以下のサービスがデータソースとして利用できます。
- Graphite
- Elasticsearch
- CloudWatch
- InfluxDB
- OpenTSDB
- KairosDB
- Prometheus
クエリーの登録
データソースを登録したら、次にデータの取り出し方を指定します。グラフも表示されているので、その中でカラムやテーブル、取り出し方や頻度などを設定します。データは複数系列表示に対応しています。
表示は細かく調整できます。
ダッシュボードにて確認
後はビジュアル化されたデータをダッシュボードで確認するだけです。閲覧の他、データをJSONやCSVで取得することもできます。グラフのパターンはあまり多くありませんが(棒、エリア、円、折れ線など)、シンプルなダッシュボードとしては十分かと思います。
デモ
Grafana - Grafana Play Homeにてライブデモが確認できます。
マウスでデータの表示範囲を絞り込むと、すべてのグラフが連携して表示を更新するのが分かります。
アラートの設定も可能です。
グラフだけでなく、グリッドを使った表現も可能です。
ダッシュボードは複数作成したり、スナップショットを取っておくことができます。さらにプラグインも用意されており、手軽に機能追加ができます。
その他、ショートカットキーや動的なグラフ表示項目の変更といった機能があります。
Grafanaは機能としては他のダッシュボードソフトウェアに比べて少ないと思われますが、すぐに使いこなせるというのが利点と言えます。インストールも簡単ですし、データソースの設定も難しくないはずです。システムの重要なデータを可視化し、一目見ただけでステータスが分かるダッシュボードを作成しましょう。
Grafana - Beautiful Metrics Dashboards, Data Visualization and Monitoring