16
ZABBIX API でででででででででででででで TECH-CIRCLE #13 LIGHTNING TALKS 2016/ /16 Takayuki Ushida

Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

Embed Size (px)

Citation preview

Page 1: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

ZABBIX API でダッシュボードを作ってみた

TECH-CIRCLE #13    LIGHTNING TALKS2016/ 3 /16

Takayuki Ushida

Page 2: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

自己紹介

牛田 隆之( Ushida Takayuki )

株式会社 インテック

業務内容インフラ構築・運用、監視設計・構築※業務としてアプリケーション開発を行ったことはありません。( Excel ・ Access VBA 、 Perl 位)

今まで使用したことのある商用監視ソフトウェア HP OpenView

  NetworkNodeManager(NNM) 、 Operations(OVO) EMC Patrol 日立 JP1

  Integrated Management(IM) 、 NetworkNodeManager i (NNMi )、  SNMP System Observer(SSO)

NRI Senju/OC

Page 3: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

Zabbix の UI について

商用ソフトは、ベンダーのインストールサポートや講習なしに使おうとすると非常に学習コストは高いと思います。

また商用ソフトの多くは機能別にプロダクトが分かれてしまっていて、 UI や設定がバラバラで統一感がない。。。

Zabbix の UI について、「難しい」「めんどう」「使いづらい」といったことを、時々聞きますが・・・

個人的には商用ソフトと比べても、ずっと洗練されていると思っています。

Page 4: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

Zabbix UI の区分け

設定系 ディスカバリ機能や API を使って大部分が自動化可能 一度作りこんで安定すれば、殆ど手動で変更する必要がなくな

る。

モニタリング系 アラート発生の度、閲覧 障害の原因究明、相関関係把握、リソース需要予測 イベント発生内容分析

ver3.0 リリース全体の変更点から比べると、モニタリングに関わる変更は少なめ

運用に入ったら圧倒的に触る頻度が高い

Page 5: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

Zabbix UI に求めること イベント画面

多角的に、リアルタイムに集計・フィルタリング・グラフ化したい

Csv でエクスポートして、 Excel のピボットテーブルで集計することもあるが、手間が掛かる。

同時多発的に繰り返しイベントが発生すると、今のイベントの画面は状況を把握しずらい。リアルタイムに集計、視覚的に分かりやすく表示したい。

Page 6: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

Zabbix UI に求めること スクリーン画面 【 Twitter で検索 「 Zabbix 」+「スクリーン」】

Zabbix スクリーン職人してる ポチポチゲー( ZABBIX のスクリーンにグラフ登録)してる うーん、 Zabbix でグラフを一覧表示しようとしたらスクリーンとかいうのを作るしか無いの? 超めんど

い Zabbix のスクリーン設定で挫折 スクリーンは XML を切り貼りするという悲しい作業を行っております。うまく頑張れば自動化できなくな

いですが、おそらく増減はつらいですのう #Zabbix zabbix でホスト追加したら勝手に screen にリソース使用状況追加する方法ないんかな やはり、運用者の悩みは無数に増えるホストの自動スクリーン化ですね。 Zabbix のスクリーンにグラフ追加していく作業、数が多いと大変なんだけど、みんな手でやってるのか

な? zabbix スクリーン設定中。これもっと簡単につくれるようにならないかな。便利なんだけどなー zabbix のスクリーンでグラフの重複あるんだけど、後続を 1 つずつずらすのは強い精神力が求められる…。 ホスト追加作業のうち一番面倒なのが zabbix のスクリーンに追加する作業なのでこれ何とかしたい

スクリーン画面に対しては、みんな不満がいっぱい

Page 7: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

グラフ見てたらなんか変だなーというのはすぐ気づけるのに、大量にあるのでなかなか全部見ていられなくて気づけないの何とかしたい。なにしろ zabbix のスクリーンが 200 枚

zabbix のスクリーンの設定がめんどうだなぁ。「すべてのサーバの同一項目グラフを並べる」とか、「指定サーバのすべてのグラフを並べる」とか一発でやりたい。まあスクリプトで出来るんだろうけど。

Zabbix で可視化といえば、ホストとグラフで掛け算でスクリーン作れるようになって欲しい。まあ API出頑張れば良いんだろうけど……

Zabbix のローレベルディスカバリでアイテムを自動追加できるようにしたけど、 1 つのグラフに複数アイテムを描画させるようにすることは出来ないのか。スクリーンで対応するしかないのかな…

開して並べてくれるスクリーン拡張 ( 要は Munin スクリーン ) と、グラ縦一列のスクリーンを定義しておくと、指定したホストグループ内のホストを横方向に展フ凡例のタイムスタンプに改行挟んでグラフサイズを小さくする二つを要望として出した。

Zabbix で、ホストグループ内の全ホストの、特定のグラフだけを横に並べて見るには自分でスクリーン作らないと無理かな。作るの超めんどくせえし、ホストが増減するたびにメンテとかしたくないなあ

zabbix のスクリーンに、条件に当てはまる項目をとりあえず並べるっ、て機能が欲しい。 EC2 で勝手に上げ下げしてるサーバも一覧で監視したい。

Zabbix のスクリーン設定でセルに貼るグラフの幅は「画面に合わせて」ってできないのかなー Zabbix のスクリーン作る時に hsize と vsize指定しないといけないのどうにかしてほしいあいまいにグループ or アイテムを串刺し検索して、ざっくりと全体を俯瞰したい

位置や大きさは適当に並べてほしい。

Zabbix UI に求めること スクリーン画面 【 Twitter で検索 「 Zabbix 」+「スクリーン」】

まとめると...

Page 8: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

Zabbix UI に求めること

よくあるスクリーン画面作り方

ホスト

アイテムOrカスタムグラフ

サーバ同士のメトリクスを並べるのは比較し、相関性、または他と外れた傾向を見つけ出したいから。ホストの数が多いと比較不可能!

Page 9: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

Zabbix UI に求めること

ホストが多い環境では同じ役割 (= ロール ) のホストの同じアイテムを一グラフ内に集約

しかしカスタムグラフで作るのは滅茶苦茶大変!

Ver2.4 以降ならアドホックグラフがある

アドホックグラフは保存しておけない。スクリーンの 1 セルとして登録できない⇒ 他のアイテム・ロール間で比較できない

同じ軸で比較することで他と挙動の異なるホストが一目で分かる!

Page 10: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

ZabiRepo の紹介 (実演 ) -ダッシュボード

※ スマートフォンでの表示

※ 画面は開発中のものです

チャートはクリッカブルになっており、他のグラフ、

リストと連動直感的に、スピーディーに絞り込め

レスポンシブデザインに対応し、スマートフォンでも破綻のない表示が

可能

Page 11: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

ZabiRepo の紹介 (実演 ) -イベント

※ 画面は開発中のものです

ブラウザ上でピボットテーブルライクな操作が

可能。

Page 12: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

ZabiRepo の紹介 (実演 ) -グラフ

※ 画面は開発中のものです

設定はグループとアイテムの選択のみアイテムはアスタリスクによる曖昧検索が可能。グループ or アイテムを軸として自動的に串刺し検索し、アドホックグラ

フを一括表示。

Page 13: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

今後やりたいこと

ネットワークトポロジーの自動生成  L2 、 L3 、 L5レイヤー。アラート状態の重畳表示

JS ライブラリを使ったグラフの自前描画グラフ表示画面での柔軟なフィルタ、マウスオーバー時のインタラクティブな情報表示

Analysis 機能トレンド系チャート(単純・加重移動平均、移動平均乖離率、ボックスチャート、母標準偏差 etc… )異常アイテムに対して正の相関、負の相関関係にあるアイテムの相関係数ランキング&グラフ比較表示への誘導

Page 14: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

まとめ ダッシュボードでは、アラート発生サマリーをグラフで比率表示

し、影響箇所及び影響度合いを視覚的に伝達

イベント情報は、ユーザがブラウザ上でさまざまな角度で直接集計、グラフ化可能

グラフでは、グループ (= ロール)またはアイテムを軸として串刺し検索し、アドホックグラフを一括表示動的に検索するため、グループ内でホストが増減しても変更必要なし。

全体としてレスポンシブデザインを取り入れスマホでの表示に対応。

Page 15: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

その他

作成期間1.5 ヶ月 ( サンデープログラミング )Javascript プログラミング暦: 1.5 ヶ月

アーキテクチャーHTML + Javascript ( サーバサイドなし) 使用ライブラリ  AdminLTE2

Bootstrapc3.jscrossfilterd3.jsdc.jsFont-AwesomeioniconsjQueryjquery.blockUIjquery.multi-select.jsjQueryUIjqzabbix.jspathsegpivot.js

      zoom.js

Page 16: Tech-Circle#13 Zabbix APIでダッシュボードを作ってみた

ご清聴ありがとうございました