Popular Icinga Stacks?

Forwarded discussion from here.

I wouldn’t say that there’s a typical Icinga stack one generally would recommend. I wouldn’t start comparing different stacks to each other, but the tools solving a specific purpose underneath.

From a personal experience, which includes reading source code and (development) docs for their interfaces, I’d rank them the following within the Icinga context. You can find such opinionated talks also in the Icinga Camp and OSMC archives.

This year’s OSMC holds some interesting talks in this direction too.

Logs & Events

  • Elastic Stack. Their docs and product line evolved a lot, innovation and stability is key. Contra: Too many moving targets, languages, packages involved, also extra licenses for X-Pack.
  • Graylog. Great filters and correlation analysis, RBAC management with AD integration ootb. Contra: Hard to create dashboard widgets compared to Kibana, always depends on a specific ES backend version. Not so many developers like Elastic though.

Metrics

  • Graphite. Everything is Open Source, used widely and metrics can be inserted from the past (RRDTool cannot do that). Contra: Python and missing package dependencies make it hard to install. Scaling sometimes needs replacements with addons (carbon-cache-ng, etc.).
  • InfluxDB. Scaling and feature rich query language. Contra: Missing features just as partial deletes from data points. Distributed and large scale features are closed source enterprise only.
  • RRDTool. Fast and simple API. Contra: No REST-like interface to query, impossible to alter metrics after insert. PNP on top solves a few points.

In combination with the above, Grafana is the one and only interface I’d always use in combination.

Automation

  • Puppet. Descriptive and declarative language which defines the state, configuration and packages. Agent based with a central master. Contra: The weight between Open Source and Enterprise features is sometimes critical. They don’t like “The Foreman” project which competes with the PE console, adding a complete lifecycle system.
  • Ansible. Direct via SSH, no master/agent involved. Contra: Needs direct SSH access, config language is yaml.
  • Chef. (never used it, but I can see it being used for automated installs e.g. inside the GitLab package)
  • Salt. (never used it, but active minion management sounds like a nifty idea)

If you say Puppet or Ansible, I say “The Foreman” including lifecycle management and monitoring integration. Provision machines with KVM (OpenNebula, OpenStack, etc.) and have them organized in a frontend.

More Integrations with Icinga Web 2 Modules

  • Maps.
  • Graphite & Grafana.
  • Director for web based configuration and automated object sync rules from external sources (CMDB, AD, RDBMS, etc.)
  • Visualization with NagVis, when needed.
  • Custom Dashboards.

Conclusion

Always define the key elements your environment needs, and tackle the tools out there. There’s no single centric tool providing all of them, better weigh whether 3 tools and maintenance may solve the (manager’s) requirements.

We here at Sol1 have coined an acronym for our favourite stack - DING!
Director, Icinga, Netbox and Grafana
Netbox provides the source of truth, and integrates with Director, which provides the automation. Checks with Icinga and graphs are done with Grafana,
You could also go with DAING, and chuck Ansible in the mix as well :slight_smile:
We have used Nagvis for critical dashboards very successfully, so you could also sub in Netbox for Nagvis.
DING also has a certain ring to it :slight_smile:

1 Like

I’m also a frequent Ding / Daing User, but Netbox is in most setups just a source and not thr only. As we’re storing more and more information in Netbox about our infrastructure, we might switch to it as single source of truth.

@davekempe do you use the Director Import Source for Netbox by uberspace or do you have something build by yourself?

1 Like

We started with the userspace one, but fixed up a few bugs and added a few features, notably virtual machine support. I don’t know if we have released the code yet. I will see if I can get it out there.

2 Likes

Sounds interesting. I’d love to test your module, so let me know when it’s out!

1 Like