SlideShare a Scribd company logo
Confiden'al 
:Discussion 
purpose 
only 
Sensu Casual Talks #1 
ヤフー株式会社 
渡邉 貴志 
takaswat@yahoo-‐‑‒corp.jp 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved.
⾃自⼰己紹介P2 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• 名前:渡邉 貴志 
• 職業:インフラエンジニア 
システム統括本部 サイトオペレーション本部 
インフラ技術3部 シスアド 
• 担当:サーバ(OS  ハード) 
• Linux, FreeBSD 
• ハイパーバイザ 
• 半導体メモリ 
 
• 最近の興味 
• 不不揮発性メモリ(PCM, ReRAM, MRAM, ...)
Sensu + Graphite を 
1年年運⽤用してみて 
 
-‐‑‒ 導⼊入に⾄至るまで 
-‐‑‒ 運⽤用あれこれ 
Confiden'al 
:Discussion 
purpose 
only 
P3 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved.
導⼊入に⾄至るまでP4 
• 2011年年:内製 IaaS をローンチ 
急増する HV の運⽤用に追われる⽇日々 
↓ 
• 監視はカスタム Nagios を利利⽤用 
• 設定が煩雑 
• 監視サーバが分散しており運⽤用が⾯面倒 
• 死活監視程度度しかできてない 
• 可視化できてない 
• 運⽤用してておもしろくない 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved.
導⼊入に⾄至るまでP5 
• 2013年年:OpenStack へ切切り替え開始 
計画段階で HV 5000台 
ハイペースで投⼊入予定 
↓ 
• このままだと死ぬ! 
• 次世代監視サーバの選定 
↓ 
• Sensu + Graphite に決定 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved.
Sensu + Graphite にした理理由 P6 
• クライアント追加時にサーバ設定必要なし 
• Nagios 資産が流流⽤用できる 
• 描画 API がいいかんじ 
• どちらもスケールするアーキタイプ 
• Chef 使えばセットアップが楽 
• 既成 cookbook をカスタムして利利⽤用することに 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• portertech/chef-‐‑‒monitor 
• sensu/sensu-‐‑‒chef 
• subscriber と role が連動したり 
• LWRP が⽤用意されていたり
Confiden'al 
:Discussion 
purpose 
only 
P7 
とりあえず運⽤用開始 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
第1世代
第1世代:構成P8 
Hypervisor x N 
sensu-‐‑‒client 
redissensu-‐‑‒server 
Confiden'al 
:Discussion 
purpose 
only 
graphite-‐‑‒web 
conetxt-‐‑‒hashing 
replication=1 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
All-‐‑‒in-‐‑‒one Sensu Server x 1 
rabbitmq-‐‑‒server 
sensu-‐‑‒apisensu-‐‑‒dashboard 
carbon-‐‑‒relay server x 1 
carbon-‐‑‒relay 
carbon-‐‑‒cache server x 3 
carbon-‐‑‒cache
第1世代:構成P9 
Hypervisor x N 
sensu-‐‑‒client 
Xeon L5640 2.13GHz x 1 
DDR3-‐‑‒1333 2GB x 3 
300GB 15k SAS HDD x 4 (RAID1+0) 
Intel 5520 + IOH-‐‑‒36D  
redissensu-‐‑‒server 
Confiden'al 
:Discussion 
purpose 
only 
Sensu と同じ
graphite-‐‑‒web 
conetxt-‐‑‒hashing 
replication=1 
Xeon E5-‐‑‒2630L 2.00GHz x 2 
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. 
All-‐‑‒in-‐‑‒one Sensu Server x 1 
rabbitmq-‐‑‒server 
sensu-‐‑‒apisensu-‐‑‒dashboard 
carbon-‐‑‒relay server x 1 
carbon-‐‑‒relaycarbon-‐‑‒cache server x 3 
carbon-‐‑‒cache
第1世代:運⽤用P10 
• 開始時点のクライアント数は 200 弱 
• 500 ぐらいまで安定稼働 
 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved.
第1世代:運⽤用P11 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• sensu 
• LOG LEVEL = warn でローテ 
• max open files は増量量(server) 
• Checks:約10項⽬目 per 60sec 
• セキュリティチェック 
• リソースチェック 
• サービス / RAID 監視 
• etc... 
• 通知:1⽇日1回 
• メール:コミュニティのものをカスタム 
• 社内チャット:graphite グラフを添えて通知
第1世代:運⽤用P12 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• graphite 
• relay 
• スケール考えると consistent hash 1択 
• cache 
• HDD だと IO たりない 
• tmpfs でまかなうことに(55GB) 
• cron で定期的に永続化ジョブ実⾏行行 
• リテンションはテストして調整・キャパプラ 
• aggregator 
• 使いづらいし使わないほうがいいらしい 
• 集約するなら別の⼿手段を検討すべき
Confiden'al 
:Discussion 
purpose 
only 
P13 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
冗⻑⾧長化開始 
第2世代
第2世代:構成P14 
redissensu-‐‑‒server 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
All-‐‑‒in-‐‑‒one Sensu Server x 3 
rabbitmq-‐‑‒server 
sensu-‐‑‒apisensu-‐‑‒dashboard 
carbon-‐‑‒relay server x 2 
carbon-‐‑‒relay 
carbon-‐‑‒cache server x 3 
carbon-‐‑‒cache 
Hypervisor x N 
sensu-‐‑‒client 
graphite-‐‑‒web 
conetxt-‐‑‒hashing 
replication=1
第2世代:運⽤用P15 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• Sensu 
• All-‐‑‒in-‐‑‒one を3台並べてロードバランス 
• redis は1台のみにむける 
• rabbitmq のミラーリングは無し 
• 最初してたけどキューが謎に暴暴発するのでやめた 
• ただしクラスタは組む 
 
• Graphite 
• carbon-‐‑‒relay 
• 同⼀一構成を2台並べてロードバランス
第2世代:運⽤用P16 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• クライアント数は 1000 弱 
• 設定ミスするとアラートが無双する... 
ntp 同期してない sensu-‐‑‒server を投⼊入してしまった図
Confiden'al 
:Discussion 
purpose 
only 
P17 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
本格運⽤用化 
第3世代
第3世代:構成 
redis server x 1 
Confiden'al 
:Discussion 
purpose 
only 
P18 
carbon-‐‑‒cache x N 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
dashboard server x 1 
sensu server x 30 
rabbitmq server x 3 
rabbitmq-‐‑‒server 
sensu-‐‑‒apiuchiwa 
sensu-‐‑‒server 
redis 
carbon-‐‑‒relay server x 2 
carbon-‐‑‒relay x N 
carbon-‐‑‒cache server x 6 
Hypervisor x N 
sensu-‐‑‒clienthaproxygraphite-‐‑‒web 
carbon-‐‑‒relay x N 
gluster 
conetxt-‐‑‒hashing 
replication=1 
conetxt-‐‑‒hashing 
replication=1 
replication=2
第3世代:運⽤用P19 
• クライアント数は 3000+ 
• VM のメトリクス取得開始でキューが急増 
• 1HV あたり 10VM+ 
• VM 作成者にサービスとしてグラフ API 提供 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved.
第3世代:運⽤用P20 
Confiden'al 
:Discussion 
purpose 
only 
スケールアウトしたときのキュー推移 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• sensu 
• sensu-‐‑‒server on VM を並べてスケールアウト 
• スペックよりも数を重視 
• redis は現在冗⻑⾧長化中... 
• UI は uchiwa に切切り替え 
• v0.2+ になってずいぶん軽くなった
第3世代:運⽤用P21 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• 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 
P22 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
まとめ
まとめP23 
• sensu + graphite を1年年運⽤用してみて 
• ⼤大規模な監視で⼗十分つかえる 
• ⾃自動で監視登録されるのは⾮非常に便便利利 
Confiden'al 
:Discussion 
purpose 
only 
Copyright 
(C) 
2012 
Yahoo 
Japan 
Corpora'on. 
All 
Rights 
Reserved. 
• どんどん投⼊入できる 
• フレキシブルで気軽に使える 
• とりあえず導⼊入して徐々にスケールできた 
• ただし CM ツール利利⽤用しないとつらいかも 
 
• 今後 
• メールハンドラを改良良する 
• ⼀一定時間分を畳み込んで送信するようなもの 
• よいものあれば教えてください 
• carbon-‐‑‒cache にフラッシュデバイスとか

More Related Content

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

  • 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 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • 名前:渡邉 貴志 • 職業:インフラエンジニア システム統括本部 サイトオペレーション本部 インフラ技術3部 シスアド • 担当:サーバ(OS ハード) • Linux, FreeBSD • ハイパーバイザ • 半導体メモリ • 最近の興味 • 不不揮発性メモリ(PCM, ReRAM, MRAM, ...)
  • 3. Sensu + Graphite を 1年年運⽤用してみて -‐‑‒ 導⼊入に⾄至るまで -‐‑‒ 運⽤用あれこれ Confiden'al :Discussion purpose only P3 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 をカスタムして利利⽤用することに Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • portertech/chef-‐‑‒monitor • sensu/sensu-‐‑‒chef • subscriber と role が連動したり • LWRP が⽤用意されていたり
  • 7. Confiden'al :Discussion purpose only P7 とりあえず運⽤用開始 Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. 第1世代
  • 8. 第1世代:構成P8 Hypervisor x N sensu-‐‑‒client redissensu-‐‑‒server Confiden'al :Discussion purpose only graphite-‐‑‒web conetxt-‐‑‒hashing replication=1 Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. All-‐‑‒in-‐‑‒one Sensu Server x 1 rabbitmq-‐‑‒server sensu-‐‑‒apisensu-‐‑‒dashboard carbon-‐‑‒relay server x 1 carbon-‐‑‒relay carbon-‐‑‒cache server x 3 carbon-‐‑‒cache
  • 9. 第1世代:構成P9 Hypervisor x N sensu-‐‑‒client Xeon L5640 2.13GHz x 1 DDR3-‐‑‒1333 2GB x 3 300GB 15k SAS HDD x 4 (RAID1+0) Intel 5520 + IOH-‐‑‒36D redissensu-‐‑‒server Confiden'al :Discussion purpose only Sensu と同じ graphite-‐‑‒web conetxt-‐‑‒hashing replication=1 Xeon E5-‐‑‒2630L 2.00GHz x 2 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. All-‐‑‒in-‐‑‒one Sensu Server x 1 rabbitmq-‐‑‒server sensu-‐‑‒apisensu-‐‑‒dashboard carbon-‐‑‒relay server x 1 carbon-‐‑‒relaycarbon-‐‑‒cache server x 3 carbon-‐‑‒cache
  • 10. 第1世代:運⽤用P10 • 開始時点のクライアント数は 200 弱 • 500 ぐらいまで安定稼働 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved.
  • 11. 第1世代:運⽤用P11 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • sensu • LOG LEVEL = warn でローテ • max open files は増量量(server) • Checks:約10項⽬目 per 60sec • セキュリティチェック • リソースチェック • サービス / RAID 監視 • etc... • 通知:1⽇日1回 • メール:コミュニティのものをカスタム • 社内チャット:graphite グラフを添えて通知
  • 12. 第1世代:運⽤用P12 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • graphite • relay • スケール考えると consistent hash 1択 • cache • HDD だと IO たりない • tmpfs でまかなうことに(55GB) • cron で定期的に永続化ジョブ実⾏行行 • リテンションはテストして調整・キャパプラ • aggregator • 使いづらいし使わないほうがいいらしい • 集約するなら別の⼿手段を検討すべき
  • 13. Confiden'al :Discussion purpose only P13 Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. 冗⻑⾧長化開始 第2世代
  • 14. 第2世代:構成P14 redissensu-‐‑‒server Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. All-‐‑‒in-‐‑‒one Sensu Server x 3 rabbitmq-‐‑‒server sensu-‐‑‒apisensu-‐‑‒dashboard carbon-‐‑‒relay server x 2 carbon-‐‑‒relay carbon-‐‑‒cache server x 3 carbon-‐‑‒cache Hypervisor x N sensu-‐‑‒client graphite-‐‑‒web conetxt-‐‑‒hashing replication=1
  • 15. 第2世代:運⽤用P15 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • Sensu • All-‐‑‒in-‐‑‒one を3台並べてロードバランス • redis は1台のみにむける • rabbitmq のミラーリングは無し • 最初してたけどキューが謎に暴暴発するのでやめた • ただしクラスタは組む • Graphite • carbon-‐‑‒relay • 同⼀一構成を2台並べてロードバランス
  • 16. 第2世代:運⽤用P16 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • クライアント数は 1000 弱 • 設定ミスするとアラートが無双する... ntp 同期してない sensu-‐‑‒server を投⼊入してしまった図
  • 17. Confiden'al :Discussion purpose only P17 Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. 本格運⽤用化 第3世代
  • 18. 第3世代:構成 redis server x 1 Confiden'al :Discussion purpose only P18 carbon-‐‑‒cache x N Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. dashboard server x 1 sensu server x 30 rabbitmq server x 3 rabbitmq-‐‑‒server sensu-‐‑‒apiuchiwa sensu-‐‑‒server redis carbon-‐‑‒relay server x 2 carbon-‐‑‒relay x N carbon-‐‑‒cache server x 6 Hypervisor x N sensu-‐‑‒clienthaproxygraphite-‐‑‒web carbon-‐‑‒relay x N gluster conetxt-‐‑‒hashing replication=1 conetxt-‐‑‒hashing replication=1 replication=2
  • 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 Confiden'al :Discussion purpose only スケールアウトしたときのキュー推移 Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • sensu • sensu-‐‑‒server on VM を並べてスケールアウト • スペックよりも数を重視 • redis は現在冗⻑⾧長化中... • UI は uchiwa に切切り替え • v0.2+ になってずいぶん軽くなった
  • 21. 第3世代:運⽤用P21 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • 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 で回す必要あり
  • 22. Confiden'al :Discussion purpose only P22 Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. まとめ
  • 23. まとめP23 • sensu + graphite を1年年運⽤用してみて • ⼤大規模な監視で⼗十分つかえる • ⾃自動で監視登録されるのは⾮非常に便便利利 Confiden'al :Discussion purpose only Copyright (C) 2012 Yahoo Japan Corpora'on. All Rights Reserved. • どんどん投⼊入できる • フレキシブルで気軽に使える • とりあえず導⼊入して徐々にスケールできた • ただし CM ツール利利⽤用しないとつらいかも • 今後 • メールハンドラを改良良する • ⼀一定時間分を畳み込んで送信するようなもの • よいものあれば教えてください • carbon-‐‑‒cache にフラッシュデバイスとか