クラウド+オンプレミス統合管理に
向けたZabbixカスタマイズの紹介

     TIS株式会社
    コーポレート本部
    戦略技術センター
      池田 大輔
自己紹介

name     Daisuke Ikeda
twitter  @ike_dai
facebook https://www.facebook.com/ikedai




                           弊社技術ブログ『Tech-Sketch』
                           毎週技術系記事を公開中!!
                           (http://tech-sketch.jp/)
  Zabbix2.0紹介記事(ThinkIT)                              Self-Introduction
今日の話題

クラウド+オンプレミス統合管理に向けた取り組み紹介
- コンセプト
- デモ
- 今後の取り組み予定




                     Today's Theme
全て絶賛開発中です!
最終的にはいろいろと変わることを
前提にお聞き下さい!!

ご意見も随時募集中!

採用できるかは要相談
早速ですが・・・             仮想マシンの
                     追加・削除したら
こんな感じで管理してませんか?      変更大変




                    あの障害が発生し
                    た時どんな状態
                    だったっけ?




 仮想マシンとハイパーバイザの関係をドキュメント管理
                                Problems
早速ですが・・・                       SSHクライアントも
                               沢山のサーバを管
                               理すると大変なこ
こんな感じで管理してませんか?                とに




              VMwareは
              vShpereClientで




AWSの管理は
AWS管理コンソー
ルで


            いろんなツールを駆使した管理              Problems
管理するの大変じゃないですか?
高頻度で仮想マシンの削除・追加・移動発生




環境の多種多様化




                       Problems
面倒なことなくしたい!


マルチ環境一括管理
できるようにしてみよう!


既に監視で利用している    Zabbixから
管理できるなら便利かも!
何ができるようになった?
Physical Machine
■ IPMIを利用したサーバの起動・停止
■ IPMIコンソール接続
■ SSH接続
VMware ESXi
■ HV,VMのリソース状況取得
■ VMの起動・停止
■ データストアの管理
■ VMコンソール接続
AWS EC2
■ EC2インスタンス情報取得
■ EC2起動・停止
                       New Function
システム概略
                                       Check            Operation


              Custom
                                       Zabbix Frontend
Add                                            Zabbix
                 External Scripts
              monitoring




                                         DeltaCloud API
      Add                     Custom                                Custom
             IPMI Driver                       vSphere Driver                 EC2 Driver



            iLO,BMC等IPMI                       vSphere API
                                                                               AWS API

             物理マシン                             VMware ESXi                     Amazon
                                                                             Web Services




                                                                                           Overview
DeltaCloudとは?
■ Apache Top Project (2012/02/16昇格)
■ 最新バージョン0.5.0(2012/05/12現在)
■ Ruby実装
■ RedHatのクラウドプロジェクトの1つ
■ CloudFormsの中の1コンポーネント
■ 対応クラウド
 AWS,Eucalyptus,GoGrid,Opennebula,Rackspace,
 RHEV-M,Rimuhosting,Terremark,vSphere,OpenStack,WindowsAzure
■ 各対応クラウド毎に環境操作用Driverが提供
■ RESTful API提供




   *Deltacloud公式サイトより引用( ttp://deltacloud.apache.org/index.html)
                       h                                           What's DeltaCloud
DeltaCloudの使い方
Install & Start Service
$ sudo gem install deltacloud-core
$ deltacloudd -i ec2 -p 3000 -r 192.168.xx.xx --daemon

                                                         http://192.168.xx.xx:3000/




-i           デフォルトドライバ指定

-p           ポート番号指定

-r           ホスト指定

--daemon     デーモン起動




                                                                              How to Use DeltaCloud
DeltaCloudの使い方
API(ex. Get EC2 instances list)
HTTP Request

$ curl --user "ACCSESS_KEY:SECRET_KEY" -H "X-deltacloud-Driver:ec2" -H "X-deltacloud-Provider:us-
west-1" http://192.168.xx.xx:3000/api/instances?format=json


 JSON Response
{"instances":
                                                                  X-deltacloud-Driver
  [{"id":"i-86254000",
    "owner_id":"918550410000",
                                                                  X-deltacloud-Provider
    "image_id":"ami-3e060000",
    "name":"ami-3e060000",                                        を変えることでマルチな環境の操
    "realm_id":"ap-northeast-1a",                                 作を一括で実現
    "state":"STOPPED",
    ・・・略
    "href":"http://192.168.xx.xx:3000/api/instances/i-86254000"
    }
    {
    ・・・略
    }
   ]
}

                                                                           How to Use DeltaCloud
Zabbixカスタマイズ
External Script
 ●   DeltaCloud経由でマシン稼働状況 ・マシンリソース状況 を取得
 ●   取得結果をZabbix Senderで該当アイテムに登録
 ●   vSphereやEC2の仮想マシン情報は 自動的にホスト登録



Template
 ●   タイプ毎にテンプレート を作成
      ○ IPMI用
      ○ vSphere用(ホストOS用、ゲストOS用)
      ○ AWS用(アカウント用、EC2インスタンス用)



FrontEnd(Dashboard etc...)
 ●   カスタマイズExternalScript実行結果をダッシュボードに表示
 ●   ホストに対する"操作"(起動・停止・再起動等)をダッシュボードから 直接実行可能 に
      ○ 実行リクエストはDeltaCloud経由で各環境に送付
 ●   コンソール接続画面 を追加

                                             Customize Zabbix
Zabbixカスタマイズ
External Script
 ●   DeltaCloud経由でマシン稼働状況 ・マシンリソース状況 を取得
 ●   取得結果をZabbix Senderで該当アイテムに登録
 ●   vSphereやEC2の仮想マシン情報はZabbix APIで 自動的にホスト登録&テンプレート割当



Template
 ●   タイプ毎にテンプレート を作成
      ○ IPMI用
      ○ vSphere用                 メリット
      ○ AWS用                     ・個々の仮想マシンの登録負荷軽減
                                 ・基本情報監視アイテム化でリソース変化の管理可能

                                 Zabbix Sender,Zabbix API便利!
                                 2つを駆使することで柔軟にカスタマイズ可能!
FrontEnd(Dashboard etc...)
 ●   カスタマイズExternalScript実行結果をダッシュボードに表示
 ●   ホストに対する"操作"(起動・停止・再起動等)をダッシュボードから 直接実行可能 に
      ○ 実行リクエストはDeltaCloud経由で各環境に送付
 ●   コンソール接続画面 を追加

                                                  Customize Zabbix
デ モ

デモがうまくいかない場合は動画でどうぞ・・・
   AWS: http://db.tt/qmcdL9OR
   IPMI:   http://db.tt/igUwYe9S
   vSphere: http://db.tt/LWOHoCnM
   VNC:    http://db.tt/Ynwc4UwU




                                    Demonstration
Console接続の仕組み




                Console Architecuture
基本的なことだけできてもメリット少ない・・・


マルチ環境間連携とか実現できないか?
これから求められていくのは"CloudFederation"!




環境間バックアップ・オートメーション等に挑戦
でも実現方法は・・・?
すでに存在するマルチクラウド運用管理ツールとの差別化はどうする?(Scalr,RightScaleな
どなど沢山出てきている)

                                           Future Work
AWS,vSphere,物理マシンだけだと・・・



幅広く管理できるようにならないか?


KVM・Xen・その他OpenStackへの対応検討
OpenStackなどに全ての環境を集約すればZabbixから実施できる必要ない?
→既存の環境への影響をできる限り少なく・かつ統合管理したい場合もあるのでは?


                                     Future Work
最終的には?

統合管理できるZabbixを皆さんに使ってもらいたい


          Zabbix本体に機能を
OSS公開?
          取込んでもらえたらなぁ




               外部ツール使いすぎて
               厳しいかも・・・




                            Goal?
目標!
   1.公開できるレベルまで仕上げてどこかで公開

 2.皆さんのご意見を聞きながら少しずつ良いものに

3.Zabbixをクラウド時代の運用方法にもマッチしたツールに


                        できなかったら...


             @ike_dai             end

クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)