Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sensu monitoring framework

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Sensu monitoring framework

Avatar for Milos Gajdos

Milos Gajdos

July 17, 2013
Tweet

More Decks by Milos Gajdos

Other Decks in Technology

Transcript

  1. Motivation • Cloud adoption – servers come and go →

    discovery of new hosts, removal of “dead” hosts can be pain on old monitoring systems • Scalability – old monitoring systems get easily overwhelmed with growing number of monitored nodes • Configuration – not easy to understand; not designed with CM in mind • Difficult to extend – we rarely hack in C these days, right ? :)
  2. Sensu Components • Sensu server - publishes check requests; receives

    check results and acts on them via handlers • Sensu client – receives check requests; executes checks and reports back to the server • Sensu API – allows to integrate with other tools in Infrastructure; can be used for lots of cool tricks and hacks • Sensu dashboard – WebUI to check and act on alerts; simple auditing
  3. Core Features • Very lightweight – server and client are

    tiny ruby daemons • CM friendly • Auto-discovery and auto-registration of nodes • Simple plugin interface • Available as Rubygem or as OS package (.deb and .rpm) which ships Sensu as omnibus install • JSON logging • Secure communication • Can be used to ship metrics • Lots of other goodies...
  4. Checks and Handlers • Same check can have multiple subscribers

    → 1:N relationship • Familiar check API – exit status indicates success or failure • Check parameters are accessible in handlers via event hash (event['check']['param']) • Handler sets – send check result to multiple handlers • Loads of community handlers and plugins up for grabs (IRC,Pagerduty, etc.) or write your own very easily !
  5. Cool use cases • Raise an alert from your app

    - POST JSON to local sensu-client socket: echo '{"handlers": ["default"], "name" : "my_check", "output" : "SOMETHING WENT WRONG DUDE !", "status" : 2}'|nc -w1 127.0.0.1 3030 • “Dump” metrics from your app – POST JSON to local sensu-client socket (similar to the above) • Force check from command line on the host which has access to sensu-api: curl -XPOST http://sensu-api-host:4567/check/request -d '{ "check": "redis_process", "subscribers": [ "all"] }' • Distribute alerts to different teams (add extra parameters to check definitions and do the logic in handler) • Clear/Raise alert chains from within handler itself curl -XPOST http://sensu-api-host:4567/event/resolve -d '{ "client": "some_client_host", "check": "redis_process"}' • Many other including the ones you will come up with! :-)
  6. Links + Live Demo • http://portertech.ca/2011/11/01/sensu-a-monitoring-frame work/ • http://joemiller.me/2012/01/19/getting-started-with-the-s ensu-monitoring-framework/

    • https://github.com/sensu • http://sensuapp.org/ • http://vimeo.com/59417953 • http://www.youtube.com/watch?v=aJGQSXZrxeY • IRC: freenode #sensu