狠狠撸
Submit Search
Sensu -The Next Generateion Monitoring Framework-
?
1 like
?
1,405 views
Shuji Yamada
Follow
2012年6月6日開催LT「TECHLUNCH#05」でのSensu紹介資料です。 @uzyexe
Read less
Read more
1 of 23
Download now
More Related Content
Sensu -The Next Generateion Monitoring Framework-
1.
Sensu The Next Generateion Monitoring
Framework 2012年6月6日 運用部技術チーム 山田 修司
2.
What is Sensu? ?
Sensu – 名前は「扇子」から取られている。 – 昨年からひっそりと配布/開発が進められているモニ タリングフレームワーク。 – NagiosやZabbixに匹敵するくらいに流行るのではな いかと一部で囁かれている期待のツール。 – https://github.com/sensu 2
3.
Old MonitoringTool ? Size
S Central Server Client Client Client 3
4.
Old MonitoringTool ? Size
M Central Server Client Client Client Central Server Client Client 4
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.
Old MonitoringTool ? 既存の監視ツールの課題 –
監視サーバに処理を負担させすぎ ? スケジューリング、グラフ描画、アラート発報などなど。。 – 監視サーバの負荷がボトルネックになりやすい。 – 負荷分散のために監視サーバをいっぱい立てたり、 NagiosのNPREのような監視中継サーバを使って階層 化すると監視システムの構成管理が煩雑になる。 6
7.
Sensu Monitoring Framework 7
8.
SensuArchtechture ? Sensu-Server – 1000行程度のRubyで記述された軽量なサーバ。 –
クライアント側でスケジュールされている監視結果 を受け取るだけ。 – RESTベースのJSON APIによるデータ検索をサポート。 Sensu-Server Client Client API JSON 8
9.
SensuArchtechture ? Sensu-Client – Rubyで記述されたOSに依存しないエージェント。 –
簡単な機能追加が可能なモジュール型設計。 – Nagiosプラグインをモジュールとして再利用可能。 Sensu-Server Client AMQP 9
10.
SensuArchtechture ? Sensu-dashboard – とても簡素なダッシュボード。。 10
11.
Sensu Building Block ?
Deploy – Sensu-Clientの配布のためにChefやPuppetとの連携に対応 ? Messaging – AMQPによるメッセージングにはRabbitMQと連携 ? DataStore – クライアントデータやイベントの格納にはRedisと連携 ? Metrics – グラフ描画にはGraphiteやlibratoとの連携に対応 ? Alert – SMS/mail/IRC/Twitterなど多様なソースに送信が可能 11
12.
Sensu Building Block 12 Messaging Deploy DataStore Messaging Metrics Sensu-Server Sensu-clients Alert
13.
OldTools vs Sensu ?
Nagios / xymon – 設定変更の度に、監視サーバに設定を再読み込み (reload)してやらないといけない。 ? Sensu – Chefやpuppet等の構成管理ツールで、Sensu-Client を配布するように設定しておけば良い。 – クライアントは動的に監視に参加できる。 – サーバの設定変更に伴うリスクを回避できる。 ~監視対象の追加/停止~ 13
14.
OldTools vs Sensu ?
Nagios / zabbix / cacti – プラグインを追加するほど、監視サーバの負荷が高 まりやすい。 – 機能追加のためのプラグインは豊富に存在するけど、 満足な機能追加ができないことも。。 ? Sensu – クライアント側で全ての監視処理をしており、サー バ側は監視結果を受け取るだけなので、監視サーバ の負荷は少ない。 ~機能拡張性~ 14
15.
OldTools vs Sensu ?
Nagios / xymon / cacti – 監視対象や監視項目の数が増加するほど、監視サー バの負荷が増大する。 ? Sensu – 監視サーバはクライアントから監視結果を受け取る だけなので、監視対象や監視項目の数が増加しても、 監視サーバの負荷は少ない。 ~スケーラビリティ~ 15
16.
OldTools vs Sensu ?
Nagios / xymon / zabbix – 構成や設定に凝り始めた途端に複雑化が進み、監視 サーバ周りの運用業務が属人化しがち。 ? Sensu – 設定や構成が単純なので、構成管理の負担が少ない。 ~運用面~ 16
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.
Sensu Configuration (クライアント側にサブスクリプションを追記) # vi
/etc/sensu/conf.d/client.json { "client": { "name": "client-hostname", "address": "client-ipaddress", "subscriptions": [ "test", "fileservers" ] } } 例:ディスク使用量監視の設定 18
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.
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.
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.
Sensu Configuration (emailハンドラを受信したときの処理を定義する) # vi
/etc/sensu/conf.d/handler_email.json { "handlers": { "email": { "type": "pipe", "command": "mail -s 'sensu alert' your@address" … 例:アラートメールの送信設定 22
23.
ANYQUESTION? 23
Download