Sunday, July 12, 2015

Introduction to Shinken and Nagios

Nagios is a mature, established, monitoring and alerting solution for your entire IT infrastructure. Nagios offers coverage for servers, switches, applications, and services. Nagios is free. Along with the software you get plenty of simple to use plugins, years of development and documentation, and a large community to reach out to / hire. And that's just about everything good Andy Sikes has to say about it in his hilarious talk at the London Devlops meetup[1].

"Monitoring" by Diglinks at en.wikipedia - Transferred from en.wikipedia; transfer was stated to be made by User:Esquilo.. Licensed under Public Domain via Wikimedia Commons


Nagios Core

At the center of Nagios XI's architecture is their Nagios Core, a highly extendable monitoring and alerting engine that hundreds of Nagios projects are built around. It's written in C, runs natively on Linux/*nix systems, and provides APIs that make it easy to build on top of.

The Interface

At this point, I may objectively be able to call the Nagios UI ugly[2]. Make sure to check out these additional frontends, Ninja, or Nagios V-Shell.

The Nagio UI ships with a variety of CGIs that will display status, status maps, network outages, the alert history, trends, notifications, and other views. Head over to this page to get an in-depth understanding of each.

Nagios Exchange

Make sure to stop by the Nagios Exchange if you'd interested in what the community is working on, or if you'd like to join and contribute, yourself.



Shinken is an open-source alternative that's based on the Nagios Core and compatible with its plugin ecosystem. I wouldn't say it's fully compatible, though, in the sense that you're going to hit some roadblocks when you set up Shinken with Nagios' monitoring packs for the first time. We'll be addressing most of these today. I'd encourage you to suggest workarounds and solutions in the comments, as setting up Shinken is something some of the community struggles with.

Shinken was written by Jean Gabès with the proposition that the new architecture would provide easier load balancing, high availability, and perform faster than the original Nagios C code. When the Nagios authors turn down his request to make Shinken the new development branch of Nagios 4[3], it moved forward as a standalone product.

The Daemons and Architecture

Shinken is primarily composed of an Arbiter, Scheduler, Poller, Reactionner, Broker, and optional Receiver. Distributed across these components are functions that consist of reading configuration files, scheduling service checks, launching plugins, responding to events, and manages data from schedulers. For small scale deployments, these daemons can be run on a single server, but it's recommended that you run multiple Schedulers as you scale. For more information, head over to Shinken's readthedocs.

That's all we're going to cover during this introductory article. If you'd like to take a look at an alternative with a much shallower learning curve, I'd recommend Sensu. I've even written a guide to setting up Sensu. Otherwise, head over to my guide on setting up a Shinken server.


No comments:

Post a Comment