Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Sensu
The Next Generateion
Monitoring Framework
2012年6月6日
運用部技術チーム 山田 修司
What is Sensu?
• Sensu
– 名前は「扇子」から取られている。
– 昨年からひっそりと配布/開発が進められているモニ
タリングフレームワーク。
– NagiosやZabbixに匹敵するくらいに流行るのではな
いかと一部で囁か...
Old MonitoringTool
• Size S
Central Server
Client
Client
Client
3
Old MonitoringTool
• Size M
Central Server
Client
Client
Client
Central Server
Client
Client
4
Old MonitoringTool
• Size L
Central Server
Client
Client
Central Server
Central Server
Central Server
Client
Client
Client...
Old MonitoringTool
• 既存の監視ツールの課題
– 監視サーバに処理を負担させすぎ
• スケジューリング、グラフ描画、アラート発報などなど。。
– 監視サーバの負荷がボトルネックになりやすい。
– 負荷分散のために監視サーバを...
Sensu
Monitoring Framework
7
SensuArchtechture
• Sensu-Server
– 1000行程度のRubyで記述された軽量なサーバ。
– クライアント側でスケジュールされている監視結果
を受け取るだけ。
– RESTベースのJSON APIによるデータ検索...
SensuArchtechture
• Sensu-Client
– Rubyで記述されたOSに依存しないエージェント。
– 簡単な機能追加が可能なモジュール型設計。
– Nagiosプラグインをモジュールとして再利用可能。
Sensu-Ser...
SensuArchtechture
• Sensu-dashboard
– とても簡素なダッシュボード。。
10
Sensu Building Block
• Deploy
– Sensu-Clientの配布のためにChefやPuppetとの連携に対応
• Messaging
– AMQPによるメッセージングにはRabbitMQと連携
• DataStor...
Sensu Building Block
12
Messaging
Deploy
DataStore
Messaging
Metrics
Sensu-Server
Sensu-clients
Alert
OldTools vs Sensu
• Nagios / xymon
– 設定変更の度に、監視サーバに設定を再読み込み
(reload)してやらないといけない。
• Sensu
– Chefやpuppet等の構成管理ツールで、Sensu-Cli...
OldTools vs Sensu
• Nagios / zabbix / cacti
– プラグインを追加するほど、監視サーバの負荷が高
まりやすい。
– 機能追加のためのプラグインは豊富に存在するけど、
満足な機能追加ができないことも。。
...
OldTools vs Sensu
• Nagios / xymon / cacti
– 監視対象や監視項目の数が増加するほど、監視サー
バの負荷が増大する。
• Sensu
– 監視サーバはクライアントから監視結果を受け取る
だけなので、監視...
OldTools vs Sensu
• Nagios / xymon / zabbix
– 構成や設定に凝り始めた途端に複雑化が進み、監視
サーバ周りの運用業務が属人化しがち。
• Sensu
– 設定や構成が単純なので、構成管理の負担が少ない...
Sensu Configuration
(クライアント側にプラグインをインストールする)
# wget -O /etc/sensu/plugins/check-disk.rb
https://raw.github.com/sensu/sensu...
Sensu Configuration
(クライアント側にサブスクリプションを追記)
# vi /etc/sensu/conf.d/client.json
{
"client": {
"name": "client-hostname",
"ad...
Sensu Configuration
(クライアント側にconfigを設定)
# vi /etc/sensu/conf.d/check_disk.json
{
"checks": {
"disk_check": {
"handler": "d...
Sensu Configuration
# yum -y install nagios-plugins-http
# vi /etc/sensu/conf.d/check_google.json
{
"checks": {
"check_web...
Sensu Configuration
(”handlers”にカスタムハンドラを追記する)
# vi /etc/sensu/conf.d/check_disk.json
{
"checks": {
"disk_check": {
"handl...
Sensu Configuration
(emailハンドラを受信したときの処理を定義する)
# vi /etc/sensu/conf.d/handler_email.json
{
"handlers": {
"email": {
"type"...
ANYQUESTION?
23
Upcoming SlideShare
Loading in …5
×

Sensu -The Next Generateion Monitoring Framework-

1,179 views

Published on

2012年6月6日開催LT「TECHLUNCH#05」でのSensu紹介資料です。 @uzyexe

Published in: Technology
  • Be the first to comment

Sensu -The Next Generateion Monitoring Framework-

  1. 1. Sensu The Next Generateion Monitoring Framework 2012年6月6日 運用部技術チーム 山田 修司
  2. 2. What is Sensu? • Sensu – 名前は「扇子」から取られている。 – 昨年からひっそりと配布/開発が進められているモニ タリングフレームワーク。 – NagiosやZabbixに匹敵するくらいに流行るのではな いかと一部で囁かれている期待のツール。 – https://github.com/sensu 2
  3. 3. Old MonitoringTool • Size S Central Server Client Client Client 3
  4. 4. Old MonitoringTool • Size M Central Server Client Client Client Central Server Client Client 4
  5. 5. Old MonitoringTool • Size L Central Server Client Client Central Server Central Server Central Server Client Client Client Client Client Client Relay Server Relay Server Relay Server 5
  6. 6. Old MonitoringTool • 既存の監視ツールの課題 – 監視サーバに処理を負担させすぎ • スケジューリング、グラフ描画、アラート発報などなど。。 – 監視サーバの負荷がボトルネックになりやすい。 – 負荷分散のために監視サーバをいっぱい立てたり、 NagiosのNPREのような監視中継サーバを使って階層 化すると監視システムの構成管理が煩雑になる。 6
  7. 7. Sensu Monitoring Framework 7
  8. 8. SensuArchtechture • Sensu-Server – 1000行程度のRubyで記述された軽量なサーバ。 – クライアント側でスケジュールされている監視結果 を受け取るだけ。 – RESTベースのJSON APIによるデータ検索をサポート。 Sensu-Server Client Client API JSON 8
  9. 9. SensuArchtechture • Sensu-Client – Rubyで記述されたOSに依存しないエージェント。 – 簡単な機能追加が可能なモジュール型設計。 – Nagiosプラグインをモジュールとして再利用可能。 Sensu-Server Client AMQP 9
  10. 10. SensuArchtechture • Sensu-dashboard – とても簡素なダッシュボード。。 10
  11. 11. Sensu Building Block • Deploy – Sensu-Clientの配布のためにChefやPuppetとの連携に対応 • Messaging – AMQPによるメッセージングにはRabbitMQと連携 • DataStore – クライアントデータやイベントの格納にはRedisと連携 • Metrics – グラフ描画にはGraphiteやlibratoとの連携に対応 • Alert – SMS/mail/IRC/Twitterなど多様なソースに送信が可能 11
  12. 12. Sensu Building Block 12 Messaging Deploy DataStore Messaging Metrics Sensu-Server Sensu-clients Alert
  13. 13. OldTools vs Sensu • Nagios / xymon – 設定変更の度に、監視サーバに設定を再読み込み (reload)してやらないといけない。 • Sensu – Chefやpuppet等の構成管理ツールで、Sensu-Client を配布するように設定しておけば良い。 – クライアントは動的に監視に参加できる。 – サーバの設定変更に伴うリスクを回避できる。 ~監視対象の追加/停止~ 13
  14. 14. OldTools vs Sensu • Nagios / zabbix / cacti – プラグインを追加するほど、監視サーバの負荷が高 まりやすい。 – 機能追加のためのプラグインは豊富に存在するけど、 満足な機能追加ができないことも。。 • Sensu – クライアント側で全ての監視処理をしており、サー バ側は監視結果を受け取るだけなので、監視サーバ の負荷は少ない。 ~機能拡張性~ 14
  15. 15. OldTools vs Sensu • Nagios / xymon / cacti – 監視対象や監視項目の数が増加するほど、監視サー バの負荷が増大する。 • Sensu – 監視サーバはクライアントから監視結果を受け取る だけなので、監視対象や監視項目の数が増加しても、 監視サーバの負荷は少ない。 ~スケーラビリティ~ 15
  16. 16. OldTools vs Sensu • Nagios / xymon / zabbix – 構成や設定に凝り始めた途端に複雑化が進み、監視 サーバ周りの運用業務が属人化しがち。 • Sensu – 設定や構成が単純なので、構成管理の負担が少ない。 ~運用面~ 16
  17. 17. Sensu Configuration (クライアント側にプラグインをインストールする) # wget -O /etc/sensu/plugins/check-disk.rb https://raw.github.com/sensu/sensu-community- plugins/master/plugins/system/check-disk.rb # chmod +x /etc/sensu/plugins/check-disk.rb # gem install sensu-plugin --no-rdoc --no-ri 例:ディスク使用量監視の設定 17
  18. 18. Sensu Configuration (クライアント側にサブスクリプションを追記) # vi /etc/sensu/conf.d/client.json { "client": { "name": "client-hostname", "address": "client-ipaddress", "subscriptions": [ "test", "fileservers" ] } } 例:ディスク使用量監視の設定 18
  19. 19. Sensu Configuration (クライアント側にconfigを設定) # vi /etc/sensu/conf.d/check_disk.json { "checks": { "disk_check": { "handler": "default", "command": "/etc/sensu/plugins/check-disk.rb", "interval": 3600, "subscribers": [ "fileservers" ] … 例:ディスク使用量監視の設定 19
  20. 20. Sensu Configuration # yum -y install nagios-plugins-http # vi /etc/sensu/conf.d/check_google.json { "checks": { "check_web": { "notification": "HTTP failed", "command": PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/n agios/plugins check_http www.mydomain -R 'search'", … 例:Nagiosプラグインの利用 20
  21. 21. Sensu Configuration (”handlers”にカスタムハンドラを追記する) # vi /etc/sensu/conf.d/check_disk.json { "checks": { "disk_check": { "handlers": ["default", "email"], "command": "/etc/sensu/plugins/check-disk.rb", ... 例:アラートメールの送信設定 21
  22. 22. Sensu Configuration (emailハンドラを受信したときの処理を定義する) # vi /etc/sensu/conf.d/handler_email.json { "handlers": { "email": { "type": "pipe", "command": "mail -s 'sensu alert' your@address" … 例:アラートメールの送信設定 22
  23. 23. ANYQUESTION? 23

×