Sensu + Graphite を1年運⽤してみて #sensucasual

108 Views

September 26, 14

スライド概要

9/17 の Sensu Casual Talks #1 で発表された資料です。
http://www.zusaar.com/event/7607003

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Confiden'al  :Discussion  purpose  only Sensu  Casual  Talks  #1 ヤフー株式会社 渡邉  貴志 takaswat@yahoo-‐‑‒corp.jp Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

2.

⾃自⼰己紹介 P2 • 名前:渡邉  貴志 • 職業:インフラエンジニア                  システム統括本部  サイトオペレーション本部                            インフラ技術3部  シスアド • 担当:サーバ(OS  &  ハード) • Linux,  FreeBSD • ハイパーバイザ • 半導体メモリ • 最近の興味 • 不不揮発性メモリ(PCM,  ReRAM,  MRAM,  ...) Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

3.

P3 Sensu  +  Graphite  を 1年年運⽤用してみて    -‐‑‒  導⼊入に⾄至るまで    -‐‑‒  運⽤用あれこれ Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

4.

導⼊入に⾄至るまで P4 • 2011年年:内製  IaaS  をローンチ 急増する  HV  の運⽤用に追われる⽇日々   ↓ • 監視はカスタム  Nagios  を利利⽤用 • • • • • 設定が煩雑 監視サーバが分散しており運⽤用が⾯面倒 死活監視程度度しかできてない 可視化できてない 運⽤用してておもしろくない Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

5.

導⼊入に⾄至るまで P5 • 2013年年:OpenStack  へ切切り替え開始 計画段階で  HV  5000台 ハイペースで投⼊入予定   ↓ • このままだと死ぬ! • 次世代監視サーバの選定   ↓ • Sensu  +  Graphite  に決定 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

6.

Sensu  +  Graphite  にした理理由   • • • • • P6 クライアント追加時にサーバ設定必要なし Nagios  資産が流流⽤用できる 描画  API  がいいかんじ どちらもスケールするアーキタイプ Chef  使えばセットアップが楽 • 既成  cookbook  をカスタムして利利⽤用することに • portertech/chef-‐‑‒monitor • sensu/sensu-‐‑‒chef • subscriber  と  role  が連動したり • LWRP  が⽤用意されていたり Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

7.

P7 とりあえず運⽤用開始 第1世代 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

8.

第1世代:構成 P8 Hypervisor  x  N sensu-‐‑‒client carbon-‐‑‒relay  server  x  1 All-‐‑‒in-‐‑‒one  Sensu  Server  x  1 rabbitmq-‐‑‒server redis sensu-‐‑‒server carbon-‐‑‒relay graphite-‐‑‒web conetxt-‐‑‒hashing replication=1 carbon-‐‑‒cache  server  x  3 sensu-‐‑‒api Confiden'al  :Discussion  purpose  only sensu-‐‑‒dashboard carbon-‐‑‒cache Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

9.

第1世代:構成 P9 Hypervisor  x  N sensu-‐‑‒client All-‐‑‒in-‐‑‒one  Sensu  Server  x  1 rabbitmq-‐‑‒server Xeon  L5640  2.13GHz  x  1 DDR3-‐‑‒1333  2GB  x  3 redis sensu-‐‑‒server 300GB  15k  SAS  HDD  x  4  (RAID1+0) Intel  5520  +  IOH-‐‑‒36D     sensu-‐‑‒api Confiden'al  :Discussion  purpose  only sensu-‐‑‒dashboard carbon-‐‑‒relay  server  x  1 carbon-‐‑‒relay Sensu  と同じ graphite-‐‑‒web conetxt-‐‑‒hashing replication=1 carbon-‐‑‒cache  server  x  3 Xeon  E5-‐‑‒2630L  2.00GHz  x  2 carbon-‐‑‒cache DDR3-‐‑‒1600  8GB  x  8 300GB  10k  SAS  HDD  x  4  (RAID1+0) Intel  C602 Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

10.

第1世代:運⽤用 P10 • 開始時点のクライアント数は  200  弱 • 500  ぐらいまで安定稼働 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

11.

第1世代:運⽤用 P11 • sensu • LOG  LEVEL  =  warn  でローテ • max  open  files  は増量量(server) • Checks:約10項⽬目  per  60sec • • • • セキュリティチェック リソースチェック サービス  /  RAID  監視 etc... • 通知:1⽇日1回 • メール:コミュニティのものをカスタム • 社内チャット:graphite  グラフを添えて通知 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

12.

第1世代:運⽤用 P12 • graphite • relay • スケール考えると  consistent  hash  1択 • cache • • • • HDD  だと  IO  たりない tmpfs  でまかなうことに(55GB) cron  で定期的に永続化ジョブ実⾏行行 リテンションはテストして調整・キャパプラ • aggregator • 使いづらいし使わないほうがいいらしい • 集約するなら別の⼿手段を検討すべき Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

13.

P13 冗⻑⾧長化開始 第2世代 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

14.

第2世代:構成 P14 Hypervisor  x  N sensu-‐‑‒client carbon-‐‑‒relay  server  x  2 All-‐‑‒in-‐‑‒one  Sensu  Server  x  3 rabbitmq-‐‑‒server redis sensu-‐‑‒server carbon-‐‑‒relay graphite-‐‑‒web conetxt-‐‑‒hashing replication=1 carbon-‐‑‒cache  server  x  3 sensu-‐‑‒api Confiden'al  :Discussion  purpose  only sensu-‐‑‒dashboard carbon-‐‑‒cache Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

15.

第2世代:運⽤用 P15 • Sensu • All-‐‑‒in-‐‑‒one  を3台並べてロードバランス • redis  は1台のみにむける • rabbitmq  のミラーリングは無し • 最初してたけどキューが謎に暴暴発するのでやめた • ただしクラスタは組む • Graphite • carbon-‐‑‒relay • 同⼀一構成を2台並べてロードバランス Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

16.

第2世代:運⽤用 P16 • クライアント数は  1000  弱 • 設定ミスするとアラートが無双する... ntp  同期してない  sensu-‐‑‒server  を投⼊入してしまった図 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

17.

P17 本格運⽤用化 第3世代 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

18.

第3世代:構成 P18 carbon-‐‑‒relay  server  x  2 Hypervisor  x  N haproxy sensu-‐‑‒client graphite-‐‑‒web carbon-‐‑‒relay  x  N rabbitmq  server  x  3 sensu  server  x  30 carbon-‐‑‒relay  x  N redis  server  x  1 conetxt-‐‑‒hashing replication=1 redis dashboard  server  x  1 sensu-‐‑‒api Confiden'al  :Discussion  purpose  only conetxt-‐‑‒hashing replication=1 sensu-‐‑‒server rabbitmq-‐‑‒server uchiwa carbon-‐‑‒cache  x  N gluster replication=2 carbon-‐‑‒cache  server  x  6 Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

19.

第3世代:運⽤用 P19 • クライアント数は  3000+ • VM  のメトリクス取得開始でキューが急増 • 1HV  あたり  10VM+ • VM  作成者にサービスとしてグラフ  API  提供 Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

20.

第3世代:運⽤用 P20 • sensu • sensu-‐‑‒server  on  VM  を並べてスケールアウト • スペックよりも数を重視 スケールアウトしたときのキュー推移 • redis  は現在冗⻑⾧長化中... • UI  は  uchiwa  に切切り替え • v0.2+  になってずいぶん軽くなった Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

21.

第3世代:運⽤用 P21 • graphite • LB  →  haproxy  で受けて  relay  プロセスに分散 • コア数に応じて  daemon  ⽴立立ち上げ(職⼈人芸) • carbon-‐‑‒relay  =  CPU  bound • carbon-‐‑‒cache  =  IO  bound • 管理理は  megacarbon  利利⽤用(v0.10+) • ログが結構サイズをとるのでケアする必要あり • LOG_̲WRITES=false  /  LOG_̲CACHE_̲HITS  =  false • max  open  files  増量量必須 • whisper  ではなく  ceres  (v0.10+) • whisper  はスケールアウト時にやや難あり • メンテスクリプトを  cron  で回す必要あり Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

22.

P22 まとめ Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.

23.

まとめ P23 • sensu  +  graphite  を1年年運⽤用してみて • ⼤大規模な監視で⼗十分つかえる • ⾃自動で監視登録されるのは⾮非常に便便利利 • どんどん投⼊入できる • フレキシブルで気軽に使える • とりあえず導⼊入して徐々にスケールできた • ただし  CM  ツール利利⽤用しないとつらいかも • 今後 • メールハンドラを改良良する • ⼀一定時間分を畳み込んで送信するようなもの • よいものあれば教えてください • carbon-‐‑‒cache  にフラッシュデバイスとか Confiden'al  :Discussion  purpose  only Copyright  (C)  2012  Yahoo  Japan  Corpora'on.  All  Rights  Reserved.