Grafanaで作ってみた
運⽤ダッシュボード
Zabbix, JobSchedulerなど複数のデータソースをまとめて表⽰
2017/8/27
http://www.ossl.co.jp
TWITTER: http://twitter.com/satoruf
LINKEDIN: http://jp.linkedin.com/in/satorufunai/ja
SLIDESHARE: http://www.slideshare.net/sfunai
FACEBOOK: http://www.facebook.com/satoru.funai
Qiita: http://qiita.com/satoruf
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 1
バージョン管理
サービスデスク
Open Programmable
Infrastructure Environment
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 2
運⽤
ポータル
ヒヤリン
グシート
設定シート
ミドルウェア/ア
プリ
構成管理
実⾏管理
構築情報
変更依頼
アラート
/イベント
API連携
インベントリ
/コンフィグ
/ステータス
ユーザ
オペレータ
SE
状態監視
vmware
構築/検証
Fabric
物理サーバ
インベントリ収集
ログ管理
ヒヤリングシート
監視設定
Zabbix
構築設定
監視サーバ
OpenAudIT
GetInfo
インベントリ情報
DB
JobSched
uler
チケット
サーバメール
監視情報
イベント
UI
バージョン
管理
GITlab
TeraForm
Ansible
ServerSpec
JobMonitoring
RedMine
otrs
ZABBIX
Liferay
Packer
イメージ作成
ファイルアップロード
コンフィグ表⽰(コマンド起動)
ダウンロード
パラメータ
作成
GIT連携
AWS
VirtualBOX
OpenStack
GCPX
VMware
OpenPIE
2016.04 ヒヤリング
シート
アップ
ロード
xls2json
各種設定
パラメータ
CMDBuild
構築
cloudconf
コンフィ
グ作成
Register
Config Deliver
CMDB
Scheduler
Monitoring
OpenPIE概要
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 3
運⽤に必要なダッシュボードとは
l ⾃由にデータソースを追加したい
l ユーザーが⾃分でカスタマイズできる
l マルチテナント対応、細かなアクセス制御
l 簡単なデータ⼊⼒もできてほしい
l ファイルアップロード/ダウンロードも必要
l 簡単にグラフが作成できる
l 各ウイジェット(ポートレット、パネル)間でデータ連携してほし
い
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 4
JP1
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 5
Zabbix 3.4
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 6
Hatohol
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 7
SOS JobScheduler
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 8
CMDBuild Ready2Use
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 9
Kibana/Elasticsearch
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 10
iGoogle(サービス終了)
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 11
infoscoop
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 12
Liferay
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 13
Liferay Zabbix-CMDBuild連携ポートレット
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 14
APIによる最新イベント
情報の取得と表⽰
Zabbixイベント情報のホスト
をクリックすると、該当ホス
トの構成管理DBの内容を表⽰
Garafanaの概要
l Grafana Labs (http://grafana.com)が開発、ビジュアライゼーションツール
l Apache2.0ライセンス、商⽤サポート/クラウドサービスあり
l 2014/1に最初のリリース
l JavaScriptのフロントエンド(ブラウザ)とGo⾔語で書かれ たバックエンド構成
l 17,287 stars / 2,916 forks / 503 contributes on github as of 2017/8
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 15
GrafanaCacti
Munin
https://trends.google.com/trends/explore?cat=13&date=today%205-y&q=grafana,cacti,munin
Grafanaの特徴
l 豊富なグラフ機能
l ダイナミッククエリ、アノテーション表⽰
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 16
Grafanaの特徴
l アラート通知機能
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 17
Grafanaの特徴
l 豊富なデータソース、ミックス可能
l タイムシリーズDB:Graphite, InfluxDB, OpenTSDB, Elasticsearch
l 外部システム:AWS CloudWatch, Zabbix, Prometheus, Splunk, Openstack
Monasca, OpenNMS, MySQL, PostgreSQL. etc.
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 18
Grafanaのその他機能
l マルチテナント対応、アクセス制御
l テンプレート機能: 例) ホスト名だけを変更してダッシュボードの
再利⽤
l シェア機能とスナップショット機能 :チーム内で、同じ画⾯のシェ
ア (URLで連絡)、問題があったときのスナップショットの保管
l 組み込み機能:Grafanaで作成したグラフをHTMLから呼び出してグ
ラフの再利⽤
l 豊富なプラグイン:グラフやチャートなどのパネルや、データソー
スのためのプラグインが多数⽤意され、開発も可能
l 豊富なダッシュボード:ダウンロードするだけで使⽤可能な、
ZabbixやAWSなど表⽰設定済みのテンプレート
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 19
各種ダッシュボード
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 20
Grafana-Zabbixプラグイン
http://play.grafana-zabbix.org/
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 21
今回作った機能
l ファイルアップローダー・プラグイン
l 設定ファイルなどを任意の場所にアップロード
l JobScheduler実⾏履歴表⽰・パネル
l JobSchedulerのDBから実⾏履歴を抜き出して表⽰
l ZABBIX障害情報表⽰・パネル
l Zabbbix APIでイベントを取得して表⽰
l WEBサーバインサイド表⽰・パネル
l パネル内でhtml表⽰
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 22
パネル データソース
タイマ関数
API、SQL、etc.
データ取得要求
(内部API)
シリアライズ
JSONデータ
表⽰
表⽰更新要求
データ
Grafana
表⽰⽤
パラメータ
コントロールパネル
変更
Pluginで作成する範囲
Grafanaのプラグイン構造
外部アプリ
ユーザー
データ連携⽅法
l プラグインは、パネル、データソースに分かれている。
l パネルからデータソースは内部APIによりデータ取得要求を出して、
データソースはパネルにシリアライズJSONフォーマットで返す。
l データソースはGrafana外部のデータを取得して、シリアライズ
JSONデータを返すだけ。
l パネルは、データソースにデータ取得要求を出して、シリアライズ
JSONデータを表⽰だけ。
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 24
デモ
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 25
苦労した点
l 情報が少ない!
l ドキュメントが粗過ぎて分かりづらい。
l コミュニティでのやり取りがピンポイント(ハイレベル)過ぎて分
かりづらい。
l 開発⽤サンプルが最低限の外枠しかないので分かりづらい。
l 開発⾔語は“何でも良い”とあるが、現状のプラグインは、標準プラ
グインのJavaScriptの拡張で作られているので、結局JavaScriptで作
るしかない。
l いくらオープンソースだからと⾔ってもソースにほとんどコメント
が無いので読みにくいし、理解しにくい。
l パネルやデータソースのパラメータを変更するコントロールパネル
も作成する必要があるが、個々のパラメータの意味が記載されてい
ない。
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 26
今後の計画
l パネル間のデータ連携
l Zabbixイベント情報のホストをクリックすると、関連する他のパネルも表⽰が
変わる
l パネルからのデータ⼊⼒・更新
l コメントなどを⼊⼒し、連携先APIで更新する
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 27

170827 jtf garafana