SlideShare a Scribd company logo
1 of 35
イベント駆動型監視システムが変える、
    駆動型監視    が変
アプリ向け監視オペレーションの未来
アプリ向け監視オペレ シ ンの未来
開 発 担 当 者 が 語 る 、こ こ だ け の 話
an architecture for realtime event-driven monitering system

Distribution Version




@zembutsu 前佛雅人
at SHIBUYA MARKCITY (IBM)
Apr 5, 2012
ここからは
         な
  セッションです♪
今日の内容                            もう何も(障害も)恐くない!!
                                                ○
                                                く|7 
                                               ┌'弋
                                             ,亅 | 
                                            // \| 
                                          //      \      へ
                                        //.          \ /// 

• 割と新しい監視の取り組み。                        くx ◎
                                         \
                                           \
                                                     // \
                                                   // / .\
                                                 // / / \
                                              ヽ// / / / \


 みんなと共有できたら、
 みんなと共有できたら                                 //
                                           く/\
                                                \
                                                   \
                                                          / / \
                                                            / / \
                                                             / / \
                                                              / / \


 とってもうれしいなっ…て。
                                                     \       / / / \

            て。                                         \
                                                        \
                                                                 / / \
                                                                  /   \




 – イベント駆動型とは?
 – 従来の監視との違いは何?
 – 時代に対応した監視サービスのあり方とは?


CEP (Comprex Event Processing) Setsuna と Muninwalk のデモを
交えながら、CEP と連携する開発中の監視システムのコンセプトを、
           皆様と共有できればと考えています。
           皆様と共有できればと考えています
…の前に。
 の前に
自己紹介
                                       \                                            /
                                        \ 丶                       i.      |         /           ./           /
                                         \ ヽ                       i.    .|        /        /            /
                                          \ ヽ                        i    |       /     /            /
                                        \
                                                                                                             -‐
                                        ー
                                       __                         わ た し で す                             --
                                             二                      / \
                                                                    / ̄\                              = 二


       @zembutsu                        ̄.
                                            -‐

                                            /
                                                                    | ^o^ |
                                                                    \_/
                                                                                                                    ̄
                                                                                                                  ‐-


       http://twitter.com/zembutsu/
       http://twitter com/zembutsu/         /
                                                              /
                                                                                        丶
                                                                                          ヽ
                                                                                                     \
                                                                                                             \

       http://facebook.com/zembutsu/    /            /    /                   |   i,     丶               \
                                       /         /       /                    |    i,      丶                  \
       http://pocketstudio.jp/

魂を重力(物理インフラ層)にひかれた、
インフラエンジニア的な何かが私です。
イン ラ ンジ  的な何かが私です
・クラウド系のコミュニティ
・Cloudcomputing.jp 編集見習い
…の前に。
 の前に
自己紹介
                                     \                                            /
                                      \ 丶                       i.      |         /           ./           /
                                       \ ヽ                       i.    .|        /        /            /
                                        \ ヽ                        i    |       /     /            /
                                      \
                                                                                                           -‐
                                      ー
                                     __                         わ た し で す                             --
                                           二                      / \
                                                                  / ̄\                              = 二


     @zembutsu                        ̄.
                                          -‐

                                          /
                                                                  | ^o^ |
                                                                  \_/
                                                                                                                  ̄
                                                                                                                ‐-


     http://twitter.com/zembutsu/
     http://twitter com/zembutsu/         /
                                                            /
                                                                                      丶
                                                                                        ヽ
                                                                                                   \
                                                                                                           \

     http://facebook.com/zembutsu/    /            /    /                   |   i,     丶               \
                                     /         /       /                    |    i,      丶                  \
     http://pocketstudio.jp/

株式会社リンク アプリプラットフォーム部
エンジニアをやっております。
運用・開発・設計・企画・営業・などなど
社内ネットワーク運用・ファイルサーバ管理・ISMS…
…の前に。
 の前に
自己紹介
                                  \                                            /
                                   \ 丶                       i.      |         /           ./           /
                                    \ ヽ                       i.    .|        /        /            /
                                     \ ヽ                        i    |       /     /            /
                                   \
                                                                                                        -‐
                                   ー
                                  __                         わ た し で す                             --
                                        二                      / \
                                                               / ̄\                              = 二


  @zembutsu                        ̄.
                                       -‐

                                       /
                                                               | ^o^ |
                                                               \_/
                                                                                                               ̄
                                                                                                             ‐-


  http://twitter.com/zembutsu/
  http://twitter com/zembutsu/         /
                                                         /
                                                                                   丶
                                                                                     ヽ
                                                                                                \
                                                                                                        \

  http://facebook.com/zembutsu/    /            /    /                   |   i,     丶               \
                                  /         /       /                    |    i,      丶                  \
  http://pocketstudio.jp/
を捌く
Ops的、何か
Ops的 何か

     DevOps!
―Don't forget. always, somewhere,
                   someone is fighting for you.
               ―As long as you remember her.
                              you are not alone.

Operation




Monitoring
この障害を検知できない!




 監視
システム           「何度発生
               しても検出
               できない」
               みたいな。
               障害の
               イメージ…
               イメ ジ
この障害を検知できない!




       凹んだ所、 見すると 単純な
       凹んだ所、一見すると…単純な
       トラフィック微減に見えますが
この障害を検知できない!
          新規JOIN停止
          (((( ;゚Д゚)))ガクガクブルブル
            MySQLのQuery数が低下
          サービス的には深刻な障害が発生




        従来の閾値(上限・下限)による
       アラートポイント設定は無理(´・ω・`)
        MySQL が稼働している状態での、
        性能劣化検出を行う事は難しい。
        性能劣化検出を行う事は難し
そこで考えた監視手法
             パフォーマンスの劣化を検出するためには…

• [1] 人が24時間365日張り付く!
 (;´Д`)      運用の現場的には辛いけれど
             監視が自動化出来ない以上、
           有効な手段ではないでしょうか…。


• [2] 新しい監視手法を作る!
 (`・ω・´)
  `   ´
          今手許のツールが出来ないから諦めるのではなく、
          今手許のツールが出来ないから諦めるのではなく
          必要に迫られ、必要なアプローチで取り組むのも
                  正直アリでは?
at+link アプリプラットフォーム
• 監視は2段階       サービスとして提供はしていますが…
 – 標準死活監視
  • Nagios ベースの PING, SSH, HTTP ポート監視
                                    一般的な監視
                                     般的な監視
 – HTTP 応答時間監視
  • HTTP に対し 複数セ シ
         に対して複数セッション同時監視
                    同時監視
                             ソーシャルアプリ特化監視

• リソースモニタリング
        タ  グ
 – Munin による視覚化
 – 数百ノード、数千metrics
    監視対象が増えていくと、
      システムリソース的に
     正直厳しくなってきます
そこで考えてみました
「イベント駆動型監視 」の概念。
  監視システムから、対象ノードへの
  定期的なポーリングではなく、障害
  発生の検出や通知を、能動的実行。
  発生 検出や通知を 能動的実行
理想は「緊急地震速報」のように                                         ※イメージです
      障害予測ができる監視・通知システム
      障害予測ができる監視 通知シ テム




                                                   データセンタで地震 強 揺れ 警戒
                                                   デ タ  タ 地 強い揺れに警戒
                                                   千葉 茨城 栃木 群馬 埼玉
                                                   東京 神奈川 静岡


This Photo is under creative commons license by JanneM.
http://www.flickr.com/photos/jannem/4579531183/J
なぜイベント駆動なのか?
• 従来の時系列・閾値検出は限界
 – 監視ポイントの乗数的増大
 – 人間が24時間張り付くコストの問題
     今はまだ、人間が対応出来うる規模だから、許容されてる

• 結局 障害時は人間が対処するしか無い
  結局、障害時は人間が対処するしか無い
 – 起こった上で、迅速に復旧するアプローチ
 – イベントやキャンペーン期間中は、どうせ
   担当者が張り付くのが常だし であれば、
   担当者が張り付くのが常だし…であれば、
   障害時に迅速に状況を把握する方法も必要。
      人間が行うオペレーションの補助=現場の運用負担軽減
イベント駆動型監視システム
①リアルタイム(秒単位)のリソース監視
     1分間隔では遅い。短時間の機会損失が大きな金銭的損失に繋がる
     1分間隔では遅い 短時間の機会損失が大きな金銭的損失に繋がる

②複数リソース(metrics)に対する並列監視
      ポートの応答(0 or 1) ではなく、リソース推移も監視対象

③リスクアセスメントと通知

「障害発生から
 復旧までの時間を短くしたい!」
 目下サービス化に向けて開発中で御座います。
 目下サ ビス化に向けて開発中で御座 ます
 皆様から、ご意見・ご要望を頂ければ幸いですm(__)m
demonstration
http://munin‐monitoring.org/

…の前にMunin                             http://munin.jp/
                                         p         jp




• Munin はリソース変化を把握するツール
 – RRD
   RRDtoolベースでグラフ化する機能
         lベ スでグラ 化する機能
 – アラート機能
   アラ ト機能                    詳しい資料は
                            こちらご覧下さい
 – Munin2.0 RC4がリリース (3/24)
                Let's begin resource monitoring with 
                munin 2011 1209 zem_distribution
                http://www.slideshare.net/zembutsu/le
                h //          lid h       /   b     /l
                ts‐begin‐resource‐monitoring‐with‐
                munin‐2011‐1209‐zemdistribution
Muninget,
Muninget Muninwalk 作ってみた
• snmpwalk, snmpget を
  パクリましたインスパイア(キリッ
• Muninの値をコマンドラインで取得
  – Muninwalk … 特定ホストの fetch
  – Muninget … 複数ホストの fetch をル プ
                            をループ
• Perl です
• OpenSource 予定
• Gi h b で公開予定
  Github
  http://github.com/zembutsu/muninwalk/
Muninwalk
• snmpwalk のような挙動
 – MIB (M
       (Management I fInformaiton B
                             i    Base) や
                                      )
   OID (Object Identifer) のようなデータ構造で
       ( j              )
   Munin の値を取得する CLI (Command Line Interface)
 – snmpd (TCP Port 161) に替わり
   munin-node(4949)と通信する
   $ muninwalk 210.239.46.254 cpu
   210.239.46.254::cpu.user = 101873560
   210.239.46.254::cpu.nice = 40440522
   210.239.46.254::cpu.system = 21888721
   210 239 46 254         t      21888721
   210.239.46.254::cpu.idle = 1969063306
   210.239.46.254::cpu.iowait = 49614151
   210.239.46.254::cpu.irq  261758
   210.239.46.254::cpu.irq = 261758
   210.239.46.254::cpu.softirq = 1489834
   210.239.46.254::cpu.steal = 0
Muninget
• snmpget のような挙動
 –M i
   Muninwalk の b
          lk branchh
 – 複数の munin-node と通信し、値を取得
        munin node
 – 一定間隔(単位ミリ秒)の単純ループ
  $ muninget node1,node2,node3 load1 ‐s1.0
  $ muninget node1 node2 node3 load1 ‐s1 0
  12/04/11 10:50:44.131319::node1::load1.load1 = 0.93   今回のデモでは、この標準出
  12/04/11 10:50:44.181189::node2::load1.load1 = 0.43
  12/04/11 10:50:44.231158::node3::load1.load1 = 0.10   力を CEP ( Setsuna ) に流し込
  12/04/11 10:50:45.285504::node1::load1.load1 = 0.86   みます。条件の判定を行い、
                                                        みます 条件の判定を行い
  12/04/11 10:50:45.336458::node2::load1.load1 = 0.43   トリガが発生すると、レポー
  12/04/11 10:50:45.386935::node3::load1.load1 = 0.10
  12/04/11 10:50:46.440780::node1::load1.load1 = 0.86
  12/04/11 10:50:46 440780::node1::load1 load1 = 0 86
                                                        トを行います。
  12/04/11 10:50:46.491734::node2::load1.load1 = 0.43
  12/04/11 10:50:46.542200::node3::load1.load1 = 0.10
  12/04/11 10:50:47.595552::node1::load1.load1 = 0.86
    / /
  12/04/11 10:50:47.647011::node2::load1.load1 = 0.39
  12/04/11 10:50:47.697976::node3::load1.load1 = 0.09
デモ環境                                         http://report.pocketstudio.net:911/
                               REST
                CEP
                C
             Setsuna

             ‐Muninwalk
             ‐Muninget                Report Server
                                      Report Server




      Munin‐node             Munin‐node                     Munin‐node




 Web Server 1             Web Server 2                  Web Server 3
   (
   (node1)
         )                  (
                            (node2)
                                  )                       (
                                                          (node3)
                                                                )
②Muninget の結果            ③Node.js で non-blocking I/O な
                           を CEP (Setuna ) に           レポートサーバに通知
デモ環境                       取り込み、判定する
                           取り込み 判定する
                                                     http://report.pocketstudio.net:911/
                                       REST
                        CEP
                        C
                     Setsuna

                     ‐Muninwalk
                     ‐Muninget                Report Server
                                              Report Server

                                                   ④APIに応じ、通知
                                                  電話・メール・twitter

              Munin‐node             Munin‐node                     Munin‐node
                                                                                    SIP Client


                                                                                  ⑤電話で
  ①各サーバではWeb Server 1             Web Server 2                  Web Server 3      呼び出し
munin-node が動作
           (
           (node1)
                 )                  (
                                    (node2)
                                          )                       (
                                                                  (node3)
                                                                        )
 stress コマンドで
           ンドで
Load Average 上昇
デモ内容
• 3台のサーバ (node1, node2, node3 ) を用意
               ↓
• Muninget の結果を毎秒 Setsuna (CEP)に取り込み
               ↓
• サーバで stress コマンド実行、負荷生成
               ↓
• 1台でも Load Average が上昇すると、
  レポ トサ バに通知(REST経由)
  レポートサーバに通知(REST経由)
               ↓
• 電話呼び出し
  (Asterisk 経由で、iPhone の SIP clientをcall )
Setsuna でのデータ取り込み
• 事前用意 ( alias )
 $ alias setsuna= /usr/local/jdk1.6.0_23/bin/java ‐jar /home/zem/develop/setuna/setsuna‐0.0.2/setsuna.jar
 $ alias setsuna='/usr/local/jdk1 6 0 23/bin/java jar /home/zem/develop/setuna/setsuna 0 0 2/setsuna jar'


                                                             各ホストの Load Average を
• Setsuna 単純取り込み                                            muninget で取得し(0.1秒間隔)、
                                                                  setsuna に渡す

 $ muninget node1,node2,node3 load1 ‐s0.1 | setsuna
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.442694::node1::load1.load1","COLUMN2":"=","COLUMN3":"0.64"}
 {
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.492657::node2::load1.load1","COLUMN2":"=","COLUMN3":"0.17"}
                                                                                                     }
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.543632::node3::load1.load1","COLUMN2":"=","COLUMN3":"0.05"}
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.698019::node1::load1.load1","COLUMN2":"=","COLUMN3":"0.64"}
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.748482::node2::load1.load1","COLUMN2":"=","COLUMN3":"0.17"}
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.799450::node3::load1.load1","COLUMN2":"=","COLUMN3":"0.05"}
 {"COLUMN0" "12/04/11" "COLUMN1" "12 01 38 799450    d 3 l d1 l d1" "COLUMN2" " " "COLUMN3" "0 05"}
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.955386::node1::load1.load1","COLUMN2":"=","COLUMN3":"0.64"}
 {"COLUMN0":"12/04/11","COLUMN1":"12:01:39.005834::node2::load1.load1","COLUMN2":"=","COLUMN3":"0.17"}

 ※参考: Setsuna‐0.0.2リリース~ ‐ okuyamaooの日記                                ここが Load Average の値
  http://d.hatena.ne.jp/okuyamaoo/20120324/1332593522
Setsuna の条件判定とイベント
• 条件判定は ‒triger オプション
 – サ バ d 2で stress 実行
   サーバnode2で
   $ stress ‐‐cpu 10
   stress: info: [9285] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd
    t      i f [9285] di t hi h           10      0i 0        0 hdd

 – Load Average が 2.0 を越えたときだけ画面表示
   $ muninget node1,node2,node3 load1 ‐s0.1 | setsuna stream load1 trigger "COLUMN3 > 2 00"
   $ m ninget node1 node2 node3 load1 s0 1 | sets na ‐stream load1 ‐trigger "COLUMN3 > 2.00"
   {"COLUMN0":"12/04/11","COLUMN1":"12:09:36.448781::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"}
   {"COLUMN0":"12/04/11","COLUMN1":"12:09:36.704623::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"}
   {"COLUMN0":"12/04/11","COLUMN1":"12:09:36.960959::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"}
   {"COLUMN0":"12/04/11","COLUMN1":"12:09:37.216300::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"}
   {"COLUMN0" "12/04/11" "COLUMN1" "12 09 37 216300        d 2 l d1 l d1" "COLUMN2" " " "COLUMN3" "2 34"}
   {"COLUMN0":"12/04/11","COLUMN1":"12:09:37.471146::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"


• 条件判定時の処理は event オプション
   $ muninget node1,node2,node3 load1 ‐s0.1 | setsuna ‐stream load1 ‐trigger "COLUMN3 > 2.00" ¥
       event "curl http://report.pocketstudio.net:911/emergency"
   ※ repot サーバは Node.js サーバが Port 911 で待ち受けている。
     リクエストを受けると、Asterisk 経由で SIP Client を call する
レポートサーバの挙動
• Node.js (non-bloking I/O)
   # /usr/local/bin/node /home/zem/develop/911/reportServer/911.js
   # /usr/local/bin/node /home/zem/develop/911/reportServer/911 js

                                 REST件 試験用 Web interface が、
                                 リクエストに応じてレポートを行う。
                                 リク ストに応じてレポ トを行う

                                 内部でスクリプトを実行
                                  部   リ  を実行

                                 ・ mail  … メール送信
                                 ・tweet … Twitter CLI 呼び出し→自分宛mention
                                 ・tweet Twitter CLI 呼び出し→自分宛mention
                                 ・call … SIP Client の CLI 呼び出し
                                   http://www.pjsip.org/release/1.12/pjproject‐1.12.tar.bz2 
CEPを用いたイベント駆動監視
• 基本コンセプト

 – 障害が発生すると、大量のアラートメール
  • 何が本当に問題なのか分かりづらい
  • だ
    だから障害リスク評価システムが必要
       障害    価    が必

 – クリティカル障害(緊急時)は電話が確実
  • Asterisk(SIP)経由で電話がかかる仕組み
  • 将来的には…
    – 自動的に、関係者全員を電話会議室への誘導
    – システム側の状況は、text2speech が随時読み上げ

 – すべては、迅速な障害対応・復帰のため。
     今回のデモ環境で、コンセプトに応じた通知が可能である事や、
        アイディアを皆様と共有できたと思っています。
…という名の、絵に描いた餅(;´Д`)

   理想
   The
                                            Monitoring Core                        Data Platform
   Internet
                                        フロント用       リアルタイム更新系                  機械学習 傾向分析クラスタ
                                                                               機械学習・傾向分析クラスタ
                                                                               機           タ
                                       ユーザ向け画面       一次データストア


       Firewall




  Login
                                   リアルタイム監視用
                                     ノード群
              PROXY
              LVS

       Servers                                                      Thrift , etc
       (proprietary
       or Cloud )
                                                                            スケール可能な永続性データストア
                            Internet
                            or VPN
User                                   レポーティング用
                                         ノード群       ジョブ・キュー管理
                                                    ジ ブ キ  管理



                      API
                                                   Handler Socket
イベント駆動型監視システム
サービス化に向けての課題
• ダッシュボード(GUI)開発                汎用サービス化を目指すと、
                                 課題や障壁が多いです。
• 精度向上
 – CEP(setsuna)調整

• 複数の監視手法の組み合わせ
 – 閾値指定,推定,時系列分析(Holt-Winters法等)

• リスクアセスメント評価に応じた通知
    ク   メ ト評価 応 た通知
 – 評価:統計的手法を用いる
 – 通知:メール, twitter, 電話連動
                    (電話会議・text2speech)
    目下サービス化に向けて開発中で御座います。
    目下サ ビス化に向けて開発中で御座います
  皆様から、ご意見・ご要望を頂ければ幸いですm(__)m
0xXX
スーパー宣伝タイム1
• セミナーでお時間をいただきます!

 第2回『いまさら聞けない!システム運用・管理のコツ』
 5/24(木)19:00 22:00
 5/24(木)19 00 ‒ 22 00


• htt //
  http://everevo.com/event/1334
                    /    t/1334

  データセンタが(障害で)静止する日。
  ∼元現場運用者が語る、修羅場のくぐり方∼
   元現場運用者が語る 修羅場のくぐり方
スーパー宣伝タイム2
• 社員募集中!
 – 株式会社リンク アプリプラットフォ ム部
           アプリプラットフォーム部

• ioDriveと戯れる簡単なお仕事です
 – 興味がありましたら 中の人へDMくだしあ
   興味がありましたら、中の人へDMくだしあ

• /人◕ ‿‿ ◕人\
   僕(の会社)と(雇用)契約して、
  「僕(の会社)と(雇用)契約して、
   インフラエンジニアになってよ」
Thank you for reading!
• 最後までご覧いただき、
  ありがとうございました!!

• Contacts
  – at+link 専用サーバ・サービス アプリプラットフォーム
    http://www.at-link.ad.jp/appli_platform/
  – 株式会社リンク ディベロッパーサポート部
                    ディ       ッパ サポ ト部
    前佛 雅人 (Masahito Zembutsu)
     •   Twitter: @zembutsu
     •   Facebook: http://facebook.com/zembutsu/
     •   E-mail: zembutsu@link.co.jp
     •   Tel: 03-5785-0555

More Related Content

More from Masahito Zembutsu

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜Masahito Zembutsu
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GAMasahito Zembutsu
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19Masahito Zembutsu
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」Masahito Zembutsu
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話Masahito Zembutsu
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」Masahito Zembutsu
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へMasahito Zembutsu
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020Masahito Zembutsu
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編Masahito Zembutsu
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Masahito Zembutsu
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Masahito Zembutsu
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようMasahito Zembutsu
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Masahito Zembutsu
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19osMasahito Zembutsu
 

More from Masahito Zembutsu (20)

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19
 
Docker Chronicle 2021.09
Docker Chronicle  2021.09Docker Chronicle  2021.09
Docker Chronicle 2021.09
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へ
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
Jitsi Meetとは?
Jitsi Meetとは?Jitsi Meetとは?
Jitsi Meetとは?
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしよう
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (9)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

Realtime event-driven monitoring system with CEP

  • 1. イベント駆動型監視システムが変える、 駆動型監視 が変 アプリ向け監視オペレーションの未来 アプリ向け監視オペレ シ ンの未来 開 発 担 当 者 が 語 る 、こ こ だ け の 話 an architecture for realtime event-driven monitering system Distribution Version @zembutsu 前佛雅人 at SHIBUYA MARKCITY (IBM) Apr 5, 2012
  • 2. ここからは な セッションです♪
  • 3. 今日の内容 もう何も(障害も)恐くない!! ○ く|7  ┌'弋 ,亅 |  // \|  // \ へ //.  \ ///  • 割と新しい監視の取り組み。 くx ◎ \ \ // \ // / .\ // / / \ ヽ// / / / \ みんなと共有できたら、 みんなと共有できたら // く/\ \ \ / / \ / / \ / / \ / / \ とってもうれしいなっ…て。 \ / / / \ て。 \ \ / / \ / \ – イベント駆動型とは? – 従来の監視との違いは何? – 時代に対応した監視サービスのあり方とは? CEP (Comprex Event Processing) Setsuna と Muninwalk のデモを 交えながら、CEP と連携する開発中の監視システムのコンセプトを、 皆様と共有できればと考えています。 皆様と共有できればと考えています
  • 4. …の前に。 の前に 自己紹介 \ / \ 丶 i. | / ./ / \ ヽ i. .| / / / \ ヽ i | / / / \ -‐ ー __ わ た し で す -- 二 / \ / ̄\ = 二 @zembutsu  ̄. -‐ / | ^o^ | \_/  ̄ ‐- http://twitter.com/zembutsu/ http://twitter com/zembutsu/ / / 丶 ヽ \ \ http://facebook.com/zembutsu/ / / / | i, 丶 \ / / / | i, 丶 \ http://pocketstudio.jp/ 魂を重力(物理インフラ層)にひかれた、 インフラエンジニア的な何かが私です。 イン ラ ンジ 的な何かが私です ・クラウド系のコミュニティ ・Cloudcomputing.jp 編集見習い
  • 5. …の前に。 の前に 自己紹介 \ / \ 丶 i. | / ./ / \ ヽ i. .| / / / \ ヽ i | / / / \ -‐ ー __ わ た し で す -- 二 / \ / ̄\ = 二 @zembutsu  ̄. -‐ / | ^o^ | \_/  ̄ ‐- http://twitter.com/zembutsu/ http://twitter com/zembutsu/ / / 丶 ヽ \ \ http://facebook.com/zembutsu/ / / / | i, 丶 \ / / / | i, 丶 \ http://pocketstudio.jp/ 株式会社リンク アプリプラットフォーム部 エンジニアをやっております。 運用・開発・設計・企画・営業・などなど 社内ネットワーク運用・ファイルサーバ管理・ISMS…
  • 6. …の前に。 の前に 自己紹介 \ / \ 丶 i. | / ./ / \ ヽ i. .| / / / \ ヽ i | / / / \ -‐ ー __ わ た し で す -- 二 / \ / ̄\ = 二 @zembutsu  ̄. -‐ / | ^o^ | \_/  ̄ ‐- http://twitter.com/zembutsu/ http://twitter com/zembutsu/ / / 丶 ヽ \ \ http://facebook.com/zembutsu/ / / / | i, 丶 \ / / / | i, 丶 \ http://pocketstudio.jp/
  • 8. ―Don't forget. always, somewhere, someone is fighting for you. ―As long as you remember her. you are not alone. Operation Monitoring
  • 9. この障害を検知できない! 監視 システム 「何度発生 しても検出 できない」 みたいな。 障害の イメージ… イメ ジ
  • 10. この障害を検知できない! 凹んだ所、 見すると 単純な 凹んだ所、一見すると…単純な トラフィック微減に見えますが
  • 11. この障害を検知できない! 新規JOIN停止 (((( ;゚Д゚)))ガクガクブルブル MySQLのQuery数が低下 サービス的には深刻な障害が発生 従来の閾値(上限・下限)による アラートポイント設定は無理(´・ω・`) MySQL が稼働している状態での、 性能劣化検出を行う事は難しい。 性能劣化検出を行う事は難し
  • 12. そこで考えた監視手法 パフォーマンスの劣化を検出するためには… • [1] 人が24時間365日張り付く! (;´Д`) 運用の現場的には辛いけれど 監視が自動化出来ない以上、 有効な手段ではないでしょうか…。 • [2] 新しい監視手法を作る! (`・ω・´) ` ´ 今手許のツールが出来ないから諦めるのではなく、 今手許のツールが出来ないから諦めるのではなく 必要に迫られ、必要なアプローチで取り組むのも 正直アリでは?
  • 13. at+link アプリプラットフォーム • 監視は2段階 サービスとして提供はしていますが… – 標準死活監視 • Nagios ベースの PING, SSH, HTTP ポート監視 一般的な監視 般的な監視 – HTTP 応答時間監視 • HTTP に対し 複数セ シ に対して複数セッション同時監視 同時監視 ソーシャルアプリ特化監視 • リソースモニタリング タ グ – Munin による視覚化 – 数百ノード、数千metrics 監視対象が増えていくと、 システムリソース的に 正直厳しくなってきます
  • 14. そこで考えてみました 「イベント駆動型監視 」の概念。 監視システムから、対象ノードへの 定期的なポーリングではなく、障害 発生の検出や通知を、能動的実行。 発生 検出や通知を 能動的実行
  • 15. 理想は「緊急地震速報」のように ※イメージです 障害予測ができる監視・通知システム 障害予測ができる監視 通知シ テム データセンタで地震 強 揺れ 警戒 デ タ タ 地 強い揺れに警戒 千葉 茨城 栃木 群馬 埼玉 東京 神奈川 静岡 This Photo is under creative commons license by JanneM. http://www.flickr.com/photos/jannem/4579531183/J
  • 16. なぜイベント駆動なのか? • 従来の時系列・閾値検出は限界 – 監視ポイントの乗数的増大 – 人間が24時間張り付くコストの問題 今はまだ、人間が対応出来うる規模だから、許容されてる • 結局 障害時は人間が対処するしか無い 結局、障害時は人間が対処するしか無い – 起こった上で、迅速に復旧するアプローチ – イベントやキャンペーン期間中は、どうせ 担当者が張り付くのが常だし であれば、 担当者が張り付くのが常だし…であれば、 障害時に迅速に状況を把握する方法も必要。 人間が行うオペレーションの補助=現場の運用負担軽減
  • 17. イベント駆動型監視システム ①リアルタイム(秒単位)のリソース監視 1分間隔では遅い。短時間の機会損失が大きな金銭的損失に繋がる 1分間隔では遅い 短時間の機会損失が大きな金銭的損失に繋がる ②複数リソース(metrics)に対する並列監視 ポートの応答(0 or 1) ではなく、リソース推移も監視対象 ③リスクアセスメントと通知 「障害発生から 復旧までの時間を短くしたい!」 目下サービス化に向けて開発中で御座います。 目下サ ビス化に向けて開発中で御座 ます 皆様から、ご意見・ご要望を頂ければ幸いですm(__)m
  • 19. http://munin‐monitoring.org/ …の前にMunin http://munin.jp/ p jp • Munin はリソース変化を把握するツール – RRD RRDtoolベースでグラフ化する機能 lベ スでグラ 化する機能 – アラート機能 アラ ト機能 詳しい資料は こちらご覧下さい – Munin2.0 RC4がリリース (3/24) Let's begin resource monitoring with  munin 2011 1209 zem_distribution http://www.slideshare.net/zembutsu/le h // lid h / b /l ts‐begin‐resource‐monitoring‐with‐ munin‐2011‐1209‐zemdistribution
  • 20. Muninget, Muninget Muninwalk 作ってみた • snmpwalk, snmpget を パクリましたインスパイア(キリッ • Muninの値をコマンドラインで取得 – Muninwalk … 特定ホストの fetch – Muninget … 複数ホストの fetch をル プ をループ • Perl です • OpenSource 予定 • Gi h b で公開予定 Github http://github.com/zembutsu/muninwalk/
  • 21. Muninwalk • snmpwalk のような挙動 – MIB (M (Management I fInformaiton B i Base) や ) OID (Object Identifer) のようなデータ構造で ( j ) Munin の値を取得する CLI (Command Line Interface) – snmpd (TCP Port 161) に替わり munin-node(4949)と通信する $ muninwalk 210.239.46.254 cpu 210.239.46.254::cpu.user = 101873560 210.239.46.254::cpu.nice = 40440522 210.239.46.254::cpu.system = 21888721 210 239 46 254 t 21888721 210.239.46.254::cpu.idle = 1969063306 210.239.46.254::cpu.iowait = 49614151 210.239.46.254::cpu.irq  261758 210.239.46.254::cpu.irq = 261758 210.239.46.254::cpu.softirq = 1489834 210.239.46.254::cpu.steal = 0
  • 22. Muninget • snmpget のような挙動 –M i Muninwalk の b lk branchh – 複数の munin-node と通信し、値を取得 munin node – 一定間隔(単位ミリ秒)の単純ループ $ muninget node1,node2,node3 load1 ‐s1.0 $ muninget node1 node2 node3 load1 ‐s1 0 12/04/11 10:50:44.131319::node1::load1.load1 = 0.93 今回のデモでは、この標準出 12/04/11 10:50:44.181189::node2::load1.load1 = 0.43 12/04/11 10:50:44.231158::node3::load1.load1 = 0.10 力を CEP ( Setsuna ) に流し込 12/04/11 10:50:45.285504::node1::load1.load1 = 0.86 みます。条件の判定を行い、 みます 条件の判定を行い 12/04/11 10:50:45.336458::node2::load1.load1 = 0.43 トリガが発生すると、レポー 12/04/11 10:50:45.386935::node3::load1.load1 = 0.10 12/04/11 10:50:46.440780::node1::load1.load1 = 0.86 12/04/11 10:50:46 440780::node1::load1 load1 = 0 86 トを行います。 12/04/11 10:50:46.491734::node2::load1.load1 = 0.43 12/04/11 10:50:46.542200::node3::load1.load1 = 0.10 12/04/11 10:50:47.595552::node1::load1.load1 = 0.86 / / 12/04/11 10:50:47.647011::node2::load1.load1 = 0.39 12/04/11 10:50:47.697976::node3::load1.load1 = 0.09
  • 23. デモ環境 http://report.pocketstudio.net:911/ REST CEP C Setsuna ‐Muninwalk ‐Muninget Report Server Report Server Munin‐node Munin‐node Munin‐node Web Server 1 Web Server 2 Web Server 3 ( (node1) ) ( (node2) ) ( (node3) )
  • 24. ②Muninget の結果 ③Node.js で non-blocking I/O な を CEP (Setuna ) に レポートサーバに通知 デモ環境 取り込み、判定する 取り込み 判定する http://report.pocketstudio.net:911/ REST CEP C Setsuna ‐Muninwalk ‐Muninget Report Server Report Server ④APIに応じ、通知 電話・メール・twitter Munin‐node Munin‐node Munin‐node SIP Client ⑤電話で ①各サーバではWeb Server 1 Web Server 2 Web Server 3 呼び出し munin-node が動作 ( (node1) ) ( (node2) ) ( (node3) ) stress コマンドで ンドで Load Average 上昇
  • 25. デモ内容 • 3台のサーバ (node1, node2, node3 ) を用意 ↓ • Muninget の結果を毎秒 Setsuna (CEP)に取り込み ↓ • サーバで stress コマンド実行、負荷生成 ↓ • 1台でも Load Average が上昇すると、 レポ トサ バに通知(REST経由) レポートサーバに通知(REST経由) ↓ • 電話呼び出し (Asterisk 経由で、iPhone の SIP clientをcall )
  • 26. Setsuna でのデータ取り込み • 事前用意 ( alias ) $ alias setsuna= /usr/local/jdk1.6.0_23/bin/java ‐jar /home/zem/develop/setuna/setsuna‐0.0.2/setsuna.jar $ alias setsuna='/usr/local/jdk1 6 0 23/bin/java jar /home/zem/develop/setuna/setsuna 0 0 2/setsuna jar' 各ホストの Load Average を • Setsuna 単純取り込み muninget で取得し(0.1秒間隔)、 setsuna に渡す $ muninget node1,node2,node3 load1 ‐s0.1 | setsuna {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.442694::node1::load1.load1","COLUMN2":"=","COLUMN3":"0.64"} { {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.492657::node2::load1.load1","COLUMN2":"=","COLUMN3":"0.17"} } {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.543632::node3::load1.load1","COLUMN2":"=","COLUMN3":"0.05"} {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.698019::node1::load1.load1","COLUMN2":"=","COLUMN3":"0.64"} {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.748482::node2::load1.load1","COLUMN2":"=","COLUMN3":"0.17"} {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.799450::node3::load1.load1","COLUMN2":"=","COLUMN3":"0.05"} {"COLUMN0" "12/04/11" "COLUMN1" "12 01 38 799450 d 3 l d1 l d1" "COLUMN2" " " "COLUMN3" "0 05"} {"COLUMN0":"12/04/11","COLUMN1":"12:01:38.955386::node1::load1.load1","COLUMN2":"=","COLUMN3":"0.64"} {"COLUMN0":"12/04/11","COLUMN1":"12:01:39.005834::node2::load1.load1","COLUMN2":"=","COLUMN3":"0.17"} ※参考: Setsuna‐0.0.2リリース~ ‐ okuyamaooの日記 ここが Load Average の値 http://d.hatena.ne.jp/okuyamaoo/20120324/1332593522
  • 27. Setsuna の条件判定とイベント • 条件判定は ‒triger オプション – サ バ d 2で stress 実行 サーバnode2で $ stress ‐‐cpu 10 stress: info: [9285] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd t i f [9285] di t hi h 10 0i 0 0 hdd – Load Average が 2.0 を越えたときだけ画面表示 $ muninget node1,node2,node3 load1 ‐s0.1 | setsuna stream load1 trigger "COLUMN3 > 2 00" $ m ninget node1 node2 node3 load1 s0 1 | sets na ‐stream load1 ‐trigger "COLUMN3 > 2.00" {"COLUMN0":"12/04/11","COLUMN1":"12:09:36.448781::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"} {"COLUMN0":"12/04/11","COLUMN1":"12:09:36.704623::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"} {"COLUMN0":"12/04/11","COLUMN1":"12:09:36.960959::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"} {"COLUMN0":"12/04/11","COLUMN1":"12:09:37.216300::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34"} {"COLUMN0" "12/04/11" "COLUMN1" "12 09 37 216300 d 2 l d1 l d1" "COLUMN2" " " "COLUMN3" "2 34"} {"COLUMN0":"12/04/11","COLUMN1":"12:09:37.471146::node2::load1.load1","COLUMN2":"=","COLUMN3":"2.34" • 条件判定時の処理は event オプション $ muninget node1,node2,node3 load1 ‐s0.1 | setsuna ‐stream load1 ‐trigger "COLUMN3 > 2.00" ¥ event "curl http://report.pocketstudio.net:911/emergency" ※ repot サーバは Node.js サーバが Port 911 で待ち受けている。 リクエストを受けると、Asterisk 経由で SIP Client を call する
  • 28. レポートサーバの挙動 • Node.js (non-bloking I/O) # /usr/local/bin/node /home/zem/develop/911/reportServer/911.js # /usr/local/bin/node /home/zem/develop/911/reportServer/911 js REST件 試験用 Web interface が、 リクエストに応じてレポートを行う。 リク ストに応じてレポ トを行う 内部でスクリプトを実行 部 リ を実行 ・ mail  … メール送信 ・tweet … Twitter CLI 呼び出し→自分宛mention ・tweet Twitter CLI 呼び出し→自分宛mention ・call … SIP Client の CLI 呼び出し http://www.pjsip.org/release/1.12/pjproject‐1.12.tar.bz2 
  • 29. CEPを用いたイベント駆動監視 • 基本コンセプト – 障害が発生すると、大量のアラートメール • 何が本当に問題なのか分かりづらい • だ だから障害リスク評価システムが必要 障害 価 が必 – クリティカル障害(緊急時)は電話が確実 • Asterisk(SIP)経由で電話がかかる仕組み • 将来的には… – 自動的に、関係者全員を電話会議室への誘導 – システム側の状況は、text2speech が随時読み上げ – すべては、迅速な障害対応・復帰のため。 今回のデモ環境で、コンセプトに応じた通知が可能である事や、 アイディアを皆様と共有できたと思っています。
  • 30. …という名の、絵に描いた餅(;´Д`) 理想 The Monitoring Core Data Platform Internet フロント用 リアルタイム更新系 機械学習 傾向分析クラスタ 機械学習・傾向分析クラスタ 機 タ ユーザ向け画面 一次データストア Firewall Login リアルタイム監視用 ノード群 PROXY LVS Servers Thrift , etc (proprietary or Cloud ) スケール可能な永続性データストア Internet or VPN User レポーティング用 ノード群 ジョブ・キュー管理 ジ ブ キ 管理 API Handler Socket
  • 31. イベント駆動型監視システム サービス化に向けての課題 • ダッシュボード(GUI)開発 汎用サービス化を目指すと、 課題や障壁が多いです。 • 精度向上 – CEP(setsuna)調整 • 複数の監視手法の組み合わせ – 閾値指定,推定,時系列分析(Holt-Winters法等) • リスクアセスメント評価に応じた通知 ク メ ト評価 応 た通知 – 評価:統計的手法を用いる – 通知:メール, twitter, 電話連動 (電話会議・text2speech) 目下サービス化に向けて開発中で御座います。 目下サ ビス化に向けて開発中で御座います 皆様から、ご意見・ご要望を頂ければ幸いですm(__)m
  • 32. 0xXX
  • 33. スーパー宣伝タイム1 • セミナーでお時間をいただきます! 第2回『いまさら聞けない!システム運用・管理のコツ』 5/24(木)19:00 22:00 5/24(木)19 00 ‒ 22 00 • htt // http://everevo.com/event/1334 / t/1334 データセンタが(障害で)静止する日。 ∼元現場運用者が語る、修羅場のくぐり方∼ 元現場運用者が語る 修羅場のくぐり方
  • 34. スーパー宣伝タイム2 • 社員募集中! – 株式会社リンク アプリプラットフォ ム部 アプリプラットフォーム部 • ioDriveと戯れる簡単なお仕事です – 興味がありましたら 中の人へDMくだしあ 興味がありましたら、中の人へDMくだしあ • /人◕ ‿‿ ◕人\ 僕(の会社)と(雇用)契約して、 「僕(の会社)と(雇用)契約して、 インフラエンジニアになってよ」
  • 35. Thank you for reading! • 最後までご覧いただき、 ありがとうございました!! • Contacts – at+link 専用サーバ・サービス アプリプラットフォーム http://www.at-link.ad.jp/appli_platform/ – 株式会社リンク ディベロッパーサポート部 ディ ッパ サポ ト部 前佛 雅人 (Masahito Zembutsu) • Twitter: @zembutsu • Facebook: http://facebook.com/zembutsu/ • E-mail: zembutsu@link.co.jp • Tel: 03-5785-0555