Your SlideShare is downloading. ×
0
Please stop using Nagios
(so it can die peacefully)
Andy Sykes
Devops @ Forward3D
@supersheep
andy@forward3d.com
Do you use Nagios?
Tell me why you picked it.
Go on.
If you don't, why don't you?
Reasons for choosing Nagios

•  stupid simple plugin system
•  billions* of existing plugins
•  years of development behin...
Reasons for choosing Nagios

•  stupid simple plugin system
•  billions* of existing plugins
•  years of development behin...
So why did you pick Nagios?
Because it's the "safe", default choice.
Because we've grown accustomed to the things
that rea...
What Nagios gets right
Incredibly simple plugin model.
Fairly secure (SSL between agents + master).
Very simple conceptual...
Nagios, I hate thee; let me count thy ways
Doesn't scale. At all.
World's second most horrible configuration*.
Horrendous ...
Expansion about config
Configuration has to be in two places:
Server has to know what checks to invoke
via NRPE.
Client ha...
Scaling, or lack of it
No such thing as a Nagios cluster.
More checks = more work = longer before you
know something's hap...
Okay, yes, there’s mod_gearman
But it’s a hack at best.
No redundancy for the machine that distributes
the checks, so it’s...
API poverty
Can't easily integrate with other systems.
Can't easily write custom dashboards.
Can't get information out aga...
The bandaids we make
Interface:
Opsview, Icinga, Shinken, others

API:
Parsing status.dat, NDO

Client wire format:
Opsvie...
The take-home point:

"If we keep using Nagios,
we'll never get anything
better."
(Writing monitoring systems is hard, and...
So, smart guy. What do we do?

Steal all the things that are great about Nagios.
(existing plugin investment, simplicity, ...
THIS DOESN’T MEAN WRITING
YOUR OWN MONITORING SYSTEM
Points for thought:

●  What else are people using?
●  Should we greenfield or lift existing tools?
●  What tools could we...
My suggestion:

Like OMD, but better.
Wrap up a series of “best in breed” tools to
make one kickass monitoring tool.
What we need:
Core
Agent
Graphing
Anomaly detection
Alerting
UI
Core:
Holds configuration about hosts / services
Distributed across X masters
Check execution (poke)
Results queue (poke r...
There’s something we can use for this.
Sensu!
Sensu is often described as the “monitoring router”.
{
"checks": {
"chef_client": {
"command": "check-chef-client.rb",
"subscribers": [
"production" ],
"interval": 60,
"handle...
Client requires no registration for the server
to know about it
Uses Nagios status return codes
Doesn’t talk to the server...
Core:
Holds configuration about hosts / services
Distributed across X masters
Check execution (poke)
Results queue (poke r...
What we need:
Core
- Sensu-server
Agent
- Sensu-client
Graphing
Anomaly detection
Alerting
UI
Graphing is easy now.
If you’re not using Graphite, you should be.
Sensu “metric” checks can pump data to it.
What we need:
Core
- Sensu-server
Agent
- Sensu-client
Graphing - Graphite
Anomaly detection
Alerting
UI
Anomaly detection is hard.
We’ve got all this metric data, but how do we check it?
- Skyline/Oculus (Etsy)
- Grok (very ea...
What we need:
Core
- Sensu-server
Agent
- Sensu-client
Graphing - Graphite
Anomaly detection - ???
Alerting
UI
Alerting is tricky, but mostly solved.
Flapjack! - flapjack.io
Alerting is not the concern of your monitoring tool.
Push a...
What we need:
Core
- Sensu-server
Agent
- Sensu-client
Graphing - Graphite
Anomaly detection - ???
Alerting - Flapjack
UI
User interfaces are hard.
What do we need from it?
- What’s broken
- When it broke, when it broke in the past
- Say “OK, I...
The Sensu Dashboard sucks.
No history!
Acknowledgements aren’t easy to do.
No graphing.
Can’t see anything that’s reportin...
I’m going to have to write a UI. Sigh.
What we need:
Core
- Sensu-server
Agent
- Sensu-client
Graphing - Graphite
Anomaly detection - ???
Alerting - Flapjack
UI
...
In Summary

Nagios sucks.
There are good tools for each concern
of monitoring.
If we can package them together, we
can hav...
Thank You.

Contact
andy@forward3d.com (@supersheep)
Stop using Nagios (so it can die peacefully)
Upcoming SlideShare
Loading in...5
×

Stop using Nagios (so it can die peacefully)

118,568

Published on

You shouldn't use Nagios any more - it sucks. Let's build a new, better, more awesome monitoring system.

Published in: Technology
17 Comments
149 Likes
Statistics
Notes
  • We've been using Nagios for several years in our consulting company and it is true that it works, but the presentation gets it right. There are too many drawbacks. Well, the bright side for us, was that it gave us the idea to build our own monitoring and alerting service, initialy for cloud servers but eventually for bare metals too. We wanted something easy to set up, but we weren't keen on installing closed-source agents on our servers that we had no way of knowing how secure they are. Also, we wanted a touch-friendly interface because we were a small company and we'ld rather not take shifts in front of our laptops just in case apache needed a restart.So, we created https://mist.io

    You can also host it internally, as the interface and management code is open-source (https://github.com/mistio/mist.io) and use the service only for the monitoring and alerting part. You can check it our if you're looking for alternatives.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @superdupersheep please let us know when you figure this out, or where you are working on this (e.g. Github repo)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • nagios does not get ssl right, its a trivial mitm since its not using certs but a shared 'secret' thats in the source.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sure, you can go and piece meal the things in the slide, or you can just sign up for Stackdriver and go get a beer.
    http://www.stackdriver.com/
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi Andy,

    I kinf od share your pain... Also have a look at Observium:
    * http://www.observium.com/wiki/Main_Page
    * http://demo.observium.org/ (enter with demo/demo)
    There's some really good parts from the UI that you could get some inspiration from...
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
118,568
On Slideshare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
697
Comments
17
Likes
149
Embeds 0
No embeds

No notes for slide

Transcript of "Stop using Nagios (so it can die peacefully)"

  1. 1. Please stop using Nagios (so it can die peacefully) Andy Sykes Devops @ Forward3D @supersheep andy@forward3d.com
  2. 2. Do you use Nagios? Tell me why you picked it. Go on. If you don't, why don't you?
  3. 3. Reasons for choosing Nagios •  stupid simple plugin system •  billions* of existing plugins •  years of development behind it •  you can hire people who know it "Everybody uses it."** * may not actually be true ** except me. and maybe you. and that guy at the back, who really likes Zabbix. you know who you are.
  4. 4. Reasons for choosing Nagios •  stupid simple plugin system •  billions* of existing plugins •  years of development behind it •  you can hire people who know it "Everybody uses it."** * may not actually be true ** except me. and maybe you. and that guy at the back, who really likes Zabbix. you know who you are.
  5. 5. So why did you pick Nagios? Because it's the "safe", default choice. Because we've grown accustomed to the things that really, really suck about it. It's a little like we've all got Stockholm Syndrome.
  6. 6. What Nagios gets right Incredibly simple plugin model. Fairly secure (SSL between agents + master). Very simple conceptually. Reliable.
  7. 7. Nagios, I hate thee; let me count thy ways Doesn't scale. At all. World's second most horrible configuration*. Horrendous interface**. Assumes a static infrastructure. No decent programmatic interfaces***. Throws away perfdata. Stupid wire format for clients (NRPE/NSCA). * the world's most horrible configuration is, obviously, Sendmail. ** even the paid Nagios XI one is ugly as sin and unusable. *** if I catch you parsing status.dat, I will beat your ass.
  8. 8. Expansion about config Configuration has to be in two places: Server has to know what checks to invoke via NRPE. Client has to know what checks it will be asked to invoke with NRPE. THIS IS MADNESS.
  9. 9. Scaling, or lack of it No such thing as a Nagios cluster. More checks = more work = longer before you know something's happened! Every check increases your master's load average.
  10. 10. Okay, yes, there’s mod_gearman But it’s a hack at best. No redundancy for the machine that distributes the checks, so it’s not a real cluster.
  11. 11. API poverty Can't easily integrate with other systems. Can't easily write custom dashboards. Can't get information out again! Assumes a static infra Master has to be told about a client before things can happen.
  12. 12. The bandaids we make Interface: Opsview, Icinga, Shinken, others API: Parsing status.dat, NDO Client wire format: Opsview's NRPE, NRD Config management: Puppet types, Chef cookbooks None of it is good enough.
  13. 13. The take-home point: "If we keep using Nagios, we'll never get anything better." (Writing monitoring systems is hard, and needs community involvement and real world adoption. Nagios steals mindshare by being just good enough. It's the monitoring system we deserve, but not the one we need right now.)
  14. 14. So, smart guy. What do we do? Steal all the things that are great about Nagios. (existing plugin investment, simplicity, security, reliability) Strap them to something more awesome. (scalable, API-ready, config management friendly, modern!)
  15. 15. THIS DOESN’T MEAN WRITING YOUR OWN MONITORING SYSTEM
  16. 16. Points for thought: ●  What else are people using? ●  Should we greenfield or lift existing tools? ●  What tools could we go with?
  17. 17. My suggestion: Like OMD, but better. Wrap up a series of “best in breed” tools to make one kickass monitoring tool.
  18. 18. What we need: Core Agent Graphing Anomaly detection Alerting UI
  19. 19. Core: Holds configuration about hosts / services Distributed across X masters Check execution (poke) Results queue (poke response)
  20. 20. There’s something we can use for this. Sensu! Sensu is often described as the “monitoring router”.
  21. 21. { "checks": { "chef_client": { "command": "check-chef-client.rb", "subscribers": [ "production" ], "interval": 60, "handlers": [ "pagerduty", "irc" ] } } } Only on the server
  22. 22. Client requires no registration for the server to know about it Uses Nagios status return codes Doesn’t talk to the server - talks to RabbitMQ
  23. 23. Core: Holds configuration about hosts / services Distributed across X masters Check execution (poke) Results queue (poke response)
  24. 24. What we need: Core - Sensu-server Agent - Sensu-client Graphing Anomaly detection Alerting UI
  25. 25. Graphing is easy now. If you’re not using Graphite, you should be. Sensu “metric” checks can pump data to it.
  26. 26. What we need: Core - Sensu-server Agent - Sensu-client Graphing - Graphite Anomaly detection Alerting UI
  27. 27. Anomaly detection is hard. We’ve got all this metric data, but how do we check it? - Skyline/Oculus (Etsy) - Grok (very early days) - ???
  28. 28. What we need: Core - Sensu-server Agent - Sensu-client Graphing - Graphite Anomaly detection - ??? Alerting UI
  29. 29. Alerting is tricky, but mostly solved. Flapjack! - flapjack.io Alerting is not the concern of your monitoring tool. Push all alerts at Flapjack - define gateways (PagerDuty, email) - create relationships between checks and gateways
  30. 30. What we need: Core - Sensu-server Agent - Sensu-client Graphing - Graphite Anomaly detection - ??? Alerting - Flapjack UI
  31. 31. User interfaces are hard. What do we need from it? - What’s broken - When it broke, when it broke in the past - Say “OK, I know it’s broken” - View graphs to see how quickly it broke - See every check everywhere, and filter the list
  32. 32. The Sensu Dashboard sucks. No history! Acknowledgements aren’t easy to do. No graphing. Can’t see anything that’s reporting an OK status. This won’t do.
  33. 33. I’m going to have to write a UI. Sigh.
  34. 34. What we need: Core - Sensu-server Agent - Sensu-client Graphing - Graphite Anomaly detection - ??? Alerting - Flapjack UI - ???
  35. 35. In Summary Nagios sucks. There are good tools for each concern of monitoring. If we can package them together, we can have something that rocks.
  36. 36. Thank You. Contact andy@forward3d.com (@supersheep)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×