Comunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
-
Upload
cloudconductor -
Category
Technology
-
view
1.094 -
download
3
Transcript of [OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
2
松井暢之(まつい のぶゆき)
TIS株式会社コーポレート本部戦略技術センター
~2003
2003~2008
2009
2010~2012
2013~
現場PJでアーキテクト兼モデラー兼プログラマ兼…を歴任
基盤技術センター(現戦略技術センター)で不芳PJの火消しに奔走
全社生産性向上の企画策定に従事
オープンでエッジな技術を活用した事業企画に従事
Cloud Orchestrator “CloudConductor®” の企画開発とOSS化開始
http://cloudconductor.org
nbyk.matsui
nmatsui
nbyk.matsui
@n_matsui
活動の背景
プライベートクラウド市場の拡大†
2013年度のクラウド市場は6,257億円であり、2018年度には2.9倍の1兆8,000億円まで拡大
そのうちプライベートクラウドの比率は2013年度で70.1%を占めるが、2018年度には73.0%と緩やかにシェアを高める
4
† MM総研, "国内クラウドサービス需要動向(2014年版)“,2014-11, http://www.m2ri.jp/newsreleases/main.php?id=010120141104500
活動の背景
OpenStackに代表されるOSSのクラウドOSの隆盛†
実際に利用しているプライベートクラウド環境はVMWare vSphere/vCloudが最も多く31%だが、検証中・計画中もあわせるとOpenStackはVMWare vSphere/vCloudに比肩する
OpenStackの利用企業は2013年と比べてほぼ倍増
5
† RightScale, "Cloud Computing Trends: 2014 State of the Cloud Survey“,2014-04, http://assets.rightscale.com/uploads/pdfs/RightScale-2014-State-of-the-Cloud-Report.pdf
活動の背景
電気料金の高騰†
震災前に比べ、一般家庭部門(電灯料金)の平均単価は約2割上昇
工場、オフィス等の産業用(電力料金)の平均単価は約3割上昇
6
電気料金の推移
† 経済産業省 資源エネルギー庁, “平成25年度エネルギーに関する年次報告(エネルギー白書2014)",2014-06, http://www.enecho.meti.go.jp/about/whitepaper/2014pdf/
活動の背景
電力効率に優れたオープンなデータセンター・ハードウェア
一般的なDCの電力効率(PUE)は1.5~2.0と言われている†
(日本でもPUE1.1台の高効率なDCが作られてきているが、まだ主流にはなっていない)
FacebookのDCはPUE1.0台を達成しており‡、その高効率なDC・H/Wの仕様をOpen Compute Projectというコミュニティで公開している
7
† Datacenter Knowledge, "Survey: Industry Average Data Center PUE Stays Nearly Flat Over Four Years “, 2014-06,http://www.datacenterknowledge.com/archives/2014/06/02/survey-industry-average-data-center-pue-stays-nearly-flat-four-years/
‡ Facebook, "Prineville - Facebook Power“, 2015-01,https://www.fbpuewue.com/prineville
活動の目的
目的
クラウドを構成する各種リソースの統合監視環境の構築を可能な限りスケールするように自動化・自律化する技術を確立する
ソフトウェアからハードウェアまで、特定クラウド・特定ベンダーに依存しない全てオープンなプロダクトで構成する
ポイント
監視対象のベアメタルをネットワークに接続し電源をONにすれば、H/WとOSの監視を自動的に開始する
監視負荷を分散させるために、適切な統合監視サーバへ監視対象ノードを自律的に振り分ける
今回はベアメタルサーバの監視に着目
8
クラウドを構成する各種リソースの監視環境を自動構築
最終的なイメージ
99
Proxy Node Networking NodeCompute Node
VM VM VM
Controller NodeObject Storage
Node
Block Storage
Node
Monitoring
Server
Monitoring
Server
スケールする監視環境自身の自動構築
監視ノードの自動振り分け
起動時にベアメタルのH/Wを自動登録
BareMetal Node
各ベアメタルを自動で監視
構築されたVMを自動で監視
物理・仮想NWを自動で監視
物理・仮想ストレージを自動で監視
オープンなハードウェア
Open Compute Project準拠のベアメタル:Quanta F03A, F03C
Quanta社製のOCP準拠サーバ
F03Cは1筐体に3ノード、F03Aは1筐体に4ノード格納されるが、今回はF03Cを1ノード、F03Aを1ノード用いる
11
F03C F03A
オープンなソフトウェア
ベアメタルプロビジョニング:Cobbler
http://www.cobblerd.org/
ベアメタルへOSやミドルウェアを遠隔から自動プロビジョニングするためのPython製のツール群
PXEブート時にベアメタルにインストールするOSイメージの管理
kickstartのテンプレート管理
yumやaptのリポジトリミラー
等
12
オープンなソフトウェア
OSS統合監視ツール:Zabbix
http://www.zabbix.com/
マルチプラットフォームに対応した、OSSの統合監視ツール
「監視」→「監視結果の視覚化」→「監視結果に応じたアクション(メール通知・コマンド実行)」が統合的に管理可能
13
検証①
OCPベアメタルへのZabbix Server & Zabbix Proxy自動構築
ESXi上のCobblerを用いて、OCPベアメタルへZabbix ServerやZabbix Proxyを自動構築
14
LOM
F03A
LOM
F03C
Cobbler
VMWare vSphere ESXi
10.10.10.0/24
DHCPd
TFTPd
HTTPd
PXEBootOS Image
RepositoryMirror
kickstarttemplate
・Zabbix Package
・Zabbix Install Script
LOM LOM
Cobbler
VMWare vSphere ESXi
IPMI:.12IPMI:.15
DHCPd
TFTPd
HTTPd
PXEBootOS Image
RepositoryMirror
kickstarttemplate
OS:.XX OS:.YY
PXEBootされたOSのIPアドレスはDHCPで動的に払い出し
ZabbixServer
ZabbixProxy
ベアメタル上にCentOS6.6を自動インストールし、Zabbix Server(Zabbix Proxy)をプロビジョニング
IPMI:.12IPMI:.15
・CentOS6.6イメージ
構築前 構築後
検証②
Zabbixを用いたベアメタル自動監視
ZabbixへベアメタルのH/W監視を自動登録
プロビジョニングされたOSの監視を、H/Wと対応付けて自動登録
設定したルールに従い、適切なZabbix Proxyを自動選択
Cobbler
VMWare vSphere ESXi
PXEBootOS Image
RepositoryMirror
kickstarttemplate Z
abbix
Server
Zabbix
Proxy
・HW登録用ミニOSイメージ・実OSイメージ
LOM
Cobbler
VMWare vSphere ESXi
PXEBootOS Image
RepositoryMirror
kickstarttemplate Z
abbix
Server
LOM
Zabbix
Proxy
Cobbler
VMWare vSphere ESXi
PXEBootOS Image
RepositoryMirror
kickstarttemplate Z
abbix
Server
Zabbix
Proxy
ミニOS ミニOS
検証用のベアメタルが足りなかったため、Zabbix ServerとProxyは仮想環境に構築
登録された監視対象ノードをルールに従って適切なProxyへ振り分け
LOM LOM
F03A F03C
LOM LOM
実OS 実OS
監視登録前 Pahse1(NWと電源へ接続)
プロビジョニング時に、IPMIと対応付けてOSやM/Wを監視登録
HW登録用のミニOSを自動起動しIPMI情報をZabbixへ登録
Pahse2(実OSプロビジョニング)
実OSが起動していなくてもIPMI経由でH/W監視は実行される
15
適切なZabbix Proxyを自動選択
検証②:Zabbixを用いたベアメタル自動監視
Phase1:H/W接続時に対象ノードのIPMI情報をZabbixへ自動登録
16
ベアメタル Cobbler Zabbix Server Zabbix Proxy
ミニOSでPXEブート
ミニOS起動Zabbix Agent導入
Zabbix Agentが自動登録情報を送付
ベアメタルを監視対象ホストとして追加
IPMI IPアドレスの取得処理起動
ミニOSに同梱されたdcmitoolでIPMI情報取得
IPMIインタフェースの登録
Agent自動登録機能HostMetadata内に”OCP STARTER”である事のフラグを埋め込む
SSH Agent機能
適切なProxyを割り当て
IPMI監視情報の送付先IPアドレス更新
IPMI監視テンプレート割当トラッパーアクション追加Agentインタフェース削除
Zabbix Agentでリモートコマンド実行
IPMI監視開始
Agent自動登録時のアクションにより一連の処理を自動化
IPMI経由でH/W情報を送信
検証②:Zabbixを用いたベアメタル自動監視
Phase2:プロビジョニングする実OSの監視設定をZabbixへ自動登録
18
ベアメタル Cobbler Zabbix Server Zabbix Proxy
実OSでPXEブート
実OS起動Zabbix Agent導入
Zabbix Agentが実OSの情報を送付
zabbix_trapperでホスト名とIPを受信
Agentインタフェース登録監視テンプレート割当
ホスト名から登録済みH/W情報と対応付け
OS・M/W監視開始
zabbix_sender自身のホスト名と実OSのIPアドレスをZabbix Serverへ送信
trapper受信時のアクションにより一連の処理を自動化
Zabbix AgentがOS・M/W情報を送信
割り当てられたProxyを確認
Zabbix API呼び出し
OS監視情報の送付先IPアドレス更新
適切なZabbix Proxyの自動割当
Zabbix Proxyの割当ルールは切り出されており、柔軟に変更可能
今回はIPMIのIPアドレスレンジに基づいて静的に割り当てるルールを実装した
各Proxyの負荷状況などを元に、動的に最適なProxyを選択して割り当てるルールも実装可能
20
さいごに
ソースコードの公開(近日公開予定)
Baremetal AutoDiscovery Tool for Zabbix
https://github.com/tech-sketch/baremetal_ad
Python 2.6系(CentOS6系のバンドル版)
Apache License Version2
謝辞
本検証を進めるにあたり、Cobblerによる監視環境自動構築の実現方法について、多くの示唆を頂いたOpen Compute ProjectJapan Proof of Concept WG の方々に感謝いたします。
本検証を進めるにあたり、検証環境をご提供いただいたCTC様に感謝いたします。
他関係各位、この場を借りてお礼を申し上げます。
22