Who am I? Jeremy Carroll Sr. Systems Engineer @ . @jeremy_carroll
Why Switch?Separation of Concerns● Systems purpose built - Best tool for the job ○ Example: Graphing vs Alerting. Graphite vs Pagerduty. Why try to do it all?● Sensu is a router / scheduler ○ Very customizable / extensible● Nagios was built in an era where Cloud / Config Management was not as prevalent ○ Shows in design. Tries to do too much. ○ Pull based model for checks. ○ Dynamic discovery is cumbersome and slow ○ Object Tricks / Inheritance is better in Conf Mgmt
Configuration Managment● CM systems push checks / subscriptions ○ All based on role / responsibilities ○ If you are managed as a MySQL instance, then configure MySQL monitors● CMDB as a source of truth ○ Infrastructure as code. All systems under CM ○ State enforcement so new systems are monitored ○ Checks variables replaced at runtime. ■ Example: Contact groups, local disks, dynamic discovery. If you have a FusionIO installed, then monitor a FusionIO card.
Sensu Object Relationships** From Memory / Source. May be stale.
Nagios to Sensu Model● Commands Irrelevant ○ CMDB can change the scripts to fit environment ○ Work with client attributes in check definitions for customizations● Service Groups are Subscriptions ○ Checks are decentralized. No need for Host Group● Contacts are meta-data to Handlers ○ This may change. Contacts are not first class citizens currently.● Timeperiod is check metadata ○ subdue as an attribute for begin / end time. Currently no days of week (TODO).
Sensu is a Router● Multiple handlers per check ○ Send check result to PagerDuty, metrics to Graphite● Reduce metrics checks / status checks ○ Reusing Nagios commands ■ Exit Code = Status, Metrics = Graphite ■ Use mutators to parse Nagios Perf Data● Add additional systems easily ○ Want to use CEPMon / Riemann? Add a handler ○ Handlers handle event object according to code● Trap / Pull / Push ○ Sensu Server can trigger checks via broadcast ○ Standalone clients can schedule / push to server ○ Local port 3030 can be used as an event trap
Summary● Convert existing Nagios checks to Sensu ○ Most of the work will be in your CM system ○ Scoping variables / adding checks to roles● This is a very fast moving project ○ New features all the time ○ Fantastic packaging ○ Actually has Unit Testshttps://github.com/sensu/sensu