⾃自⼰己紹介
安⽥田 忠弘
Twitter:yasudatadahiro
クリエーションライン株式会社 代表取締役
⼀一般社団法⼈人クラウド利利⽤用促進機構(CUPA) 理理事
Open Compute Project Japan 運営委員
⽇日本SoftLayerユーザ会 運営委員
⽇日本MSP協会 発起⼈人
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
Zabbix as aframework
ソフトウェアフレームワーク(英: software framework)とは、プログ
ラミングにおいて、⼀一般的な機能をもつ共通コードをユーザーが選択的
に上書きしたり特化させたりすることで、ある特定の機能をもたせよう
とする抽象概念念のことである。単にフレームワークとも呼ばれる。
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
9.
アジェンダ
1. クラウドの価値とは?
➡ おさらい
2. 効率率率的な監視の検討
3. SoftLayerを理理解しよう
4. API は⾃自動化の鍵
5. SoftLayer+Zabbix+α
6. おまけ
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
かつてのサーバ追加
Copyright ⓒ2014CREATIONLINE, INC. All Rights Reserved
計
画
発
注
納
品
設
置
設
定
監
視
運⽤用開
始
実際のフローでは、ここがネックになりがち・・・
数週〜~1ヶ⽉月程度度
few weeks or a month
13.
クラウドでの追加
Copyright ⓒ2014CREATIONLINE, INC. All Rights Reserved
計
画
発
注
納
品
設
置
設
定
監
視
運⽤用開
始
クラウド・コンピューティング基盤
Infrastructure as a Service
1クリック
one click
14.
クラウドでの追加
クラウド・コンピューティング基盤
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
計
画
発注納
品
監
視
運⽤用開
始
Infrastructure as a Service
数分〜~10分
few minutes
15.
クラウドの利利点とは?
n 技術的
➡ サーバの追加や削減が簡単に、今すぐできる
➡ ⾃自動化・省省⼒力力化のためのツールが提供されている
n ビジネス的
➡ 利利⽤用時間単位の課⾦金金なので、
初期コストを抑えることができる
n 背景
➡ ビジネスを取り巻く環境が常に変化する
➡ 周辺技術の進化(スマートフォンの急速な普及)
☞ 「柔軟性」「スケーラビリティ」
» “Flexible”
» “Agile”
☞ 使いやすいWebインターフェース
☞ API やライブラリ群
☞ ⽔水道や電気料料⾦金金のように、
必要な分を使った分だけ課⾦金金となる
» “On demand”
» “Pay as you go”
» “Pay for what you use”
最⼩小コストで最短スタートができ、
サービスに応じてインフラを変化できる
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
16.
クラウド・コンピューティング基盤
Copyrightⓒ2014 CREATIONLINE, INC. All Rights Reserved
ところが・・・
計
画
発注納
品
監
視
運⽤用開
始
Infrastructure as a Service
数分〜~10分
few minutes
発注納
品
発注納
品
継続的デリバリー
継続的デプロイ
継続的インテグレーション
ZabbixのAPIを使って⾃自動化するシステムのイメージ
プログラム
APIリクエスト
JSON
現在値を知りたい
監視対象を追加したい・削除したい
グラフやスクリーンを編集したい
重要な点は、設定時間短縮・⼈人的作業事故を回避
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
SoftLayerとZabbixの連携
n ⾃自動監視
➡ サーバ追加・削除の連動
➡ roleとtagに応じて、グルーピング
➡ オートスケール時に⾃自動適⽤用
n API連携
➡ チケット検出
➡ 利利⽤用料料⾦金金計算
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
37.
Copyright ⓒ2014 CREATIONLINE,INC. All Rights Reserved
環境
manager
192.168.39.3
192.168.39.1(VIP/LVS)
API
(
JSON-‐RPC
)
node1
192.168.39.11
node2
192.168.39.12
node3
192.168.39.13
node4
192.168.39.14
node5
192.168.39.15
10.0.0.2
38.
Workflow orchestration
serfmanager
( cluster )
Zabbix Server
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
serf agent
join to cluster
event:
member-join
call: zabbix-add
role:web
name:web1
JSON Request
LVS Server
ipvsadm
–A –t LVS -s NODE -g
host.create
interfaces, group,
templates
JSON Return
event:
settag
hostid
user
HTTP/HTTPS
zbx-screen-add
screen.get
hsize
screen-update
screen.update
graph-update
graph.get
graphitem.get
graphids
graph-update
graph.update
graphid, gitems
39.
$
serf
agent
–iface=eth1
–discover=serf
–log-‐level=debug
-‐-‐event-‐handler=/opt/serf-‐lvs/ADP.pl
$
serf
agent
–iface=eth1
–discover=serf
–log-‐level=debug
–event-‐handler=user:seag=/opt/serf/changetag.pl
–tag
role=web
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
serf
manager
serf
node
イベントが発生する度に、この Perl スクリプトを実行。
イベント毎に、ZABBIX Server に対する JSON リクエストや
LVS ( ipvsadm ) を制御します。このとき、処理対象の role
も判断材料に用います。
serf のタグで ‘web’ や ‘db’ など、サーバの役割を明示。
web であれば、HTTP の監視を行い、LVS に追加。
db であれば、MySQL の監視を行うように区別します。
40.
serf agent を起動するだけで、自動的にホスト登録と監視を開始。ZABBIX画面に一切ログインすること
なく設定を行えます(Serf と連携し、IP アドレスの情報を自動的に渡しています)。
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
HTTP
Template
41.
node2 では ‘web’、node3は ‘db’ とすると、自動的に設定が開始されます。
なお、障害等でのnode 停止時も、規定時間 ( 初期値24時間 ) ノード情報を持たせておき、その後
ノード削除させることもできます。
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
HTTP
Template
MySQL
Template
Copyright ⓒ2014 CREATIONLINE,INC. All Rights Reserved
その他にも、グループ
分けしたアイテム毎
(Load Average や
CPU idle)に、1つのグ
ラフに動的に追加・削
除させる 事も出来ます。
面倒な処理は、Serf と
連携したフレームワー
クが自動処理します。
44.
今後の拡張アイディア
n 監視設定の完全⾃自動化
➡ Consul, Serf 等と連動
n アラート発⽣生時の⾃自動対応
➡ Consul 等のイベントハンドラ⾃自動実⾏行行
n 他のツールとの連携
➡ Slack
➡ hubot
➡ hue
n docker監視対応
➡ コンテナ環境の監視に応⽤用
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved
45.
Zabbix as aframework
ソフトウェアフレームワーク(英: software framework)とは、プログラ
ミングにおいて、一般的な機能をもつ共通コードをユーザーが選択的に上
書きしたり特化させたりすることで、ある特定の機能をもたせようとす
る抽象概念のことである。単にフレームワークとも呼ばれる。
Copyright ⓒ2014 CREATIONLINE, INC. All Rights Reserved