---
title: Sensu + Graphite を1年運⽤してみて #sensucasual
tags:  #sensucasual  
author: [Yahoo!デベロッパーネットワーク](https://convert.docswell.com/user/ydnjp)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/2EVMLQVVEQ.jpg?width=480
description: 9/17 の Sensu Casual Talks #1 で発表された資料です。 http://www.zusaar.com/event/7607003
published: September 26, 14
canonical: https://convert.docswell.com/s/ydnjp/ZR462Z-2014-09-26-142813
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/2EVMLQVVEQ.jpg)

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


# Page. 2

![Page Image](https://bcdn.docswell.com/page/57GGXWL17L.jpg)

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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/4EQX83YN7P.jpg)

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


# Page. 4

![Page Image](https://bcdn.docswell.com/page/KJ4621W371.jpg)

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


# Page. 5

![Page Image](https://bcdn.docswell.com/page/LE1VMGYZ7G.jpg)

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


# Page. 6

![Page Image](https://bcdn.docswell.com/page/GEWL3KG672.jpg)

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


# Page. 7

![Page Image](https://bcdn.docswell.com/page/47ZMVZLRE3.jpg)

P7
とりあえず運⽤用開始
第1世代
Conﬁden&#039;al	
  :Discussion	
  purpose	
  only	
Copyright	
  (C)	
  2012	
  Yahoo	
  Japan	
  Corpora&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YJ6N5ZW1JV.jpg)

第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
Conﬁden&#039;al	
  :Discussion	
  purpose	
  only	
sensu-‐‑‒dashboard
carbon-‐‑‒cache
Copyright	
  (C)	
  2012	
  Yahoo	
  Japan	
  Corpora&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GJ55YWMLJ4.jpg)

第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
Conﬁden&#039;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&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 10

![Page Image](https://bcdn.docswell.com/page/9E2NGQ937R.jpg)

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


# Page. 11

![Page Image](https://bcdn.docswell.com/page/D7YPVW487M.jpg)

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


# Page. 12

![Page Image](https://bcdn.docswell.com/page/VEN5M9Y9J8.jpg)

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


# Page. 13

![Page Image](https://bcdn.docswell.com/page/Y79YN2P3E3.jpg)

P13
冗⻑⾧長化開始
第2世代
Conﬁden&#039;al	
  :Discussion	
  purpose	
  only	
Copyright	
  (C)	
  2012	
  Yahoo	
  Japan	
  Corpora&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 14

![Page Image](https://bcdn.docswell.com/page/G786K5DLJD.jpg)

第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
Conﬁden&#039;al	
  :Discussion	
  purpose	
  only	
sensu-‐‑‒dashboard
carbon-‐‑‒cache
Copyright	
  (C)	
  2012	
  Yahoo	
  Japan	
  Corpora&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 15

![Page Image](https://bcdn.docswell.com/page/L7L9ZYMQER.jpg)

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


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EMZVN6K7W.jpg)

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


# Page. 17

![Page Image](https://bcdn.docswell.com/page/PER62DP6J9.jpg)

P17
本格運⽤用化
第3世代
Conﬁden&#039;al	
  :Discussion	
  purpose	
  only	
Copyright	
  (C)	
  2012	
  Yahoo	
  Japan	
  Corpora&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 18

![Page Image](https://bcdn.docswell.com/page/P7XMD13DJX.jpg)

第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
Conﬁden&#039;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&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 19

![Page Image](https://bcdn.docswell.com/page/37KGX2YDED.jpg)

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


# Page. 20

![Page Image](https://bcdn.docswell.com/page/LJ3N549PJ5.jpg)

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


# Page. 21

![Page Image](https://bcdn.docswell.com/page/8JDWDQG3EG.jpg)

第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  ﬁles  増量量必須
• whisper  ではなく  ceres  (v0.10+)
• whisper  はスケールアウト時にやや難あり
• メンテスクリプトを  cron  で回す必要あり
Conﬁden&#039;al	
  :Discussion	
  purpose	
  only	
Copyright	
  (C)	
  2012	
  Yahoo	
  Japan	
  Corpora&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 22

![Page Image](https://bcdn.docswell.com/page/VEP9XL3P78.jpg)

P22
まとめ
Conﬁden&#039;al	
  :Discussion	
  purpose	
  only	
Copyright	
  (C)	
  2012	
  Yahoo	
  Japan	
  Corpora&#039;on.	
  All	
  Rights	
  Reserved.	


# Page. 23

![Page Image](https://bcdn.docswell.com/page/27VMLQ4V7Q.jpg)

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


