170827 jtf garafana
TRANSCRIPT
Grafanaで作ってみた運⽤ダッシュボード
Zabbix, JobSchedulerなど複数のデータソースをまとめて表⽰
2017/8/27
http://www.ossl.co.jpTWITTER: http://twitter.com/satoruf
LINKEDIN: http://jp.linkedin.com/in/satorufunai/jaSLIDESHARE: http://www.slideshare.net/sfunai
FACEBOOK: http://www.facebook.com/satoru.funaiQiita: http://qiita.com/satoruf
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 1
バージョン管理
サービスデスク
Open ProgrammableInfrastructure Environment
2017/8/26 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 2
運⽤ポータル
ヒヤリングシート
設定シート
ミドルウェア/アプリ
構成管理
実⾏管理
構築情報
変更依頼
アラート/イベント
API連携
インベントリ/コンフィグ/ステータス
ユーザ
オペレータ
SE
状態監視
vmware
構築/検証
Fabric
物理サーバ
インベントリ収集
ログ管理
ヒヤリングシート
監視設定Zabbix
構築設定
監視サーバOpenAudITGetInfo
インベントリ情報DB
JobScheduler
チケットサーバメール
監視情報
イベント
UI
バージョン管理GITlab
TeraFormAnsible
ServerSpec
JobMonitoringRedMineotrs
ZABBIX
Liferay
Packerイメージ作成
ファイルアップロードコンフィグ表⽰(コマンド起動)
ダウンロード
パラメータ作成
GIT連携AWS
VirtualBOXOpenStackGCPXVMware
OpenPIE2016.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, Elasticsearchl 外部システム: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