Nagios Core vs Icinga

Nagios Core suits small, stable estates that accept text configuration and a basic CGI interface. Icinga 2 suits teams that need rule-based configuration, a REST API, distributed HA masters and a migration path from Nagios.

On this page

Nory: Nagios Core vs Icinga, when each one fits

If your Nagios Core estate is stable, text-configured and meets your needs, staying on Nagios Core is a defensible choice. If host counts are growing, your team is repeating the same definitions across many hosts, or you need distributed monitoring with redundant masters, Icinga 2 is the better fit. Nagios Core is a C engine released under GPL-2.0, with manual text-based configuration, a plugin interface for user-developed checks and an optional CGI web interface. Its plugins are the same check programs many teams already maintain, and Icinga 2 was originally a fork of Nagios, so much of that check logic carries over. Staying suits a fixed host set, a team comfortable editing configuration files by hand, and an environment where GPL-2.0 licensing is a hard requirement.

Icinga 2 fits when configuration has become the bottleneck. Its object model and apply rules with assign where expressions replace per-host definitions, and its distributed model uses master, satellite and agent roles organized in zones, with two master nodes supported in a high-availability setup. Its REST API and the Icinga Director give automation and configuration management a programmatic path. Icinga 2 v2.16.0 and later are licensed GPL-3.0-or-later, so a GPL-2.0-only rule in your organization is a reason to confirm which Icinga versions you may use before you plan the move.

The decision turns on four things: how much configuration you have to rewrite, whether you need a web interface beyond CGI, which license terms your organization accepts, and whether you must buy paid support. Count your hosts, services and notification contacts, then check the Icinga migration chapter to see how much maps directly to apply rules. Icinga's free edition covers unlimited hosts and services, but installation packages for RHEL, SLES and Amazon Linux require a paid Repository Subscription, so confirm your operating systems with Icinga before you commit. Ask Nagios Enterprises and Icinga GmbH to quote support against your written scope.

Which platform fits which scenario

This table compares Nagios Core and Icinga 2 across common operating scenarios and names the better fit for each. Read each row as a starting point, then check the condition in the last column, since that condition is what would change the answer.

ScenarioBetter fit and reasonCondition that would change the answer
Small static estate at one siteNagios Core. Its text configuration and CGI interface are free under GPL-2.0, and a small set of hosts can be managed by hand without a configuration layer.Switch to Icinga 2 if you expect the host count to grow, or if you want rule-based configuration from the start rather than hand-maintained object files.
Growing estate with many similar hostsIcinga 2. Apply rules with assign where expressions replace per-host and hostgroup lists, which reduces duplicated definitions as similar hosts are added.Stay on Nagios Core if the estate is stable and your team already maintains its define blocks reliably, since the migration effort may not be justified.
Multi-site or segmented networks needing local checksIcinga 2. Its distributed monitoring uses master, satellite and agent roles organized in zones, so checks can run inside each segment and report back.Nagios Core can be arranged for distributed use, but confirm the exact layout you need against the Nagios documentation before choosing it.
Strict GPL-2.0 policy constraintNagios Core. It is distributed under GPL-2.0, the license your policy names, and Icinga 2 moved to GPL-3.0-or-later starting with v2.16.0.Icinga 2 versions before v2.16.0 remain GPL-2.0 or later, so a pinned older release may satisfy the policy, but confirm this with your legal team.
Team wanting a REST API or config management integrationIcinga 2. The README names the Icinga Director, configuration management tools and a plain text DSL as configuration paths, which suits teams automating their monitoring setup.Nagios Core may be enough if your integration needs are limited to plugins and event handlers, and you do not need a DSL or Director layer.
Team that must buy vendor supportDepends on the vendor path. Nagios XI is the commercial product on the Nagios engine, while Icinga offers paid Support subscriptions starting from 15,000 euros per year (per the Icinga subscription page).Ask both vendors for a written quote covering your server count and coverage hours, and confirm which packages your operating system requires.
Team that wants a free edition with no feature gateIcinga 2. The Forever Free edition lists unlimited hosts and services, and installation packages for other operating systems remain free.Packages for RHEL, SLES and Amazon Linux need a paid Repository Subscription, so confirm which operating systems you run before relying on free packages.

How Nagios Core and Icinga 2 are built and deployed

Nagios Core and Icinga 2 share a monitoring heritage but differ in how they store configuration, reload changes and scale across sites. The cards below cover the components a team runs, plans for and patches under each option, so the operating load is visible before a migration starts.

Nagios Core engine and text configuration

Nagios Core is a C program that reads plain text object definitions from files on the monitoring server. Changes mean editing those files, verifying them with the built-in configuration check, and reloading the daemon. Teams often keep the files in version control and deploy them by hand or with their own scripts. Check who owns those files today, how a bad edit is caught before reload, and which plugin versions must be patched alongside the core.

CGI web interface

Nagios Core ships an optional CGI web interface that runs under the web server on the monitoring host. It presents status and history but is a basic interface, and configuration is not edited through it. Confirm whether operators need it at all, how it is authenticated, and whether it is exposed beyond the monitoring network. It is a separate attack surface to harden and patch with the web server.

Icinga 2 engine and DSL

Icinga 2 is a separate C++ engine that reads its own configuration language, which uses object blocks, templates and apply rules. Hosts and services can be generated from rules rather than listed one by one, which changes how the configuration is reviewed. Expect to learn the DSL and to rewrite the Nagios definitions rather than convert them mechanically. Check how your team will test configuration changes before they reach production.

Icinga Web 2 frontend

Icinga 2 requires Icinga Web 2 as its frontend, so it is a second component to plan, install, patch and back up alongside the engine. It runs on its own web stack and needs its own authentication and access decisions. The current release is v2.14.0. Confirm the web server, PHP and database requirements for your operating system before you size the monitoring host.

Icinga Director for configuration management

The Icinga Director is a web module that stores host, service and rule definitions in a database and renders them into Icinga 2 configuration. It suits teams that want an inventory-driven workflow and central configuration rather than files edited on the server. It adds one more component to run and a database to back up, and the team must decide who approves changes. Ask whether your sources of truth, such as a CMDB or CSV exports, can feed it cleanly.

Master, satellite and agent zones

Icinga 2 distributed monitoring organizes nodes into zones with master, satellite and agent roles and supports two master nodes in a high-availability setup. Config sync and command endpoint modes control where checks run and where configuration originates. This topology adds certificates, zone design and inter-zone firewall rules to operate. Nagios Core has no built-in equivalent, so plan how remote sites and failover will be handled before choosing either path.

Side-by-side capabilities for Nagios Core and Icinga 2

This table compares Nagios Core and Icinga 2 on license, configuration, web interface, plugin reuse, distributed monitoring, API and paid options. Treat each row as a starting point, and confirm any row you will rely on against the exact version and plugins in your environment. The main takeaway is that Icinga 2 changes the configuration model and the frontend, so the migration effort depends on how much of your current Nagios configuration you carry over.

CapabilityNagios Core 4.5.14Icinga 2 v2.16.5
LicenseGPL-2.0, published August 5, 2026 for 4.5.14GPL-3.0-or-later from v2.16.0, published August 18, 2026; earlier versions GPLv2 or later
Configuration modelManual text definitions with host and hostgroup listsIcinga DSL with apply rules and assign where expressions; Director optional
Web interfaceBasic optional CGI web interfaceIcinga Web 2 frontend, v2.14.0 published July 6, 2026
Plugin reuseRuns Nagios Plugins, a separate project of check programsExpected to run Nagios-style plugins; verify each check in your environment
Distributed monitoringParent host hierarchies; confirm any multi-site design in your versionMaster, satellite and agent zones, with two master nodes in an HA setup
REST APINot covered by supplied sources; confirm availability in your versionProvides a REST API; confirm endpoints and auth for your release
Paid optionsNagios XI on the same engine, adding configuration, reporting and supportSubscriptions from the Icinga subscription page, with support from 15,000 euros per year

What is free, what is paid and what the license allows

Nagios Core is the free monitoring engine released under the GNU General Public License version 2. It is written in C, configured through text files and ships with a basic web interface. Nagios Enterprises sells Nagios XI, which is built on the same Core engine. XI adds configuration tooling, reporting, access control, advanced dashboards and professional support. Nagios.org states that existing Nagios Core configuration imports into XI, so a team can move to the paid product without rebuilding its checks from scratch.

  • Core licence: GPL-2.0 covers the engine. Running it internally carries no licence fee.
  • Commercial layer: Nagios XI is a separate paid product on the same engine. Its features are configuration, reporting, access control, advanced dashboards and professional support.
  • Import path: Existing Core configuration imports into XI, according to Nagios.org.
  • Plugins: Nagios Plugins is a separate project that supplies the check programs Core runs. Confirm its licence terms before bundling it in a redistributed product.
  • Cost drivers: Your staff time for manual configuration, plus any XI licence and support you add.

Confirm Nagios XI pricing, licence scope and support terms directly with Nagios Enterprises, because this page does not publish them.

What drives the running cost of each monitoring stack

The engine license costs nothing on either side: Nagios Core is GPL-2.0, and Icinga 2 is GPL-3.0-or-later from v2.16.0 onward. The recurring costs are staff time and servers. On Nagios Core, someone writes and maintains text definitions for every host, service, contact and command, and each change is hand-edited and reviewed. On Icinga 2, the same work moves into the DSL and apply rules, and teams that adopt the Icinga Director spend that effort on import sources and templates instead. Server needs follow the design: a single host for a small estate, compared with master and satellite nodes per zone, two masters for high availability and a separate host for Icinga Web 2, which Icinga 2 requires. Measure the configuration hours for your own estate before comparing license costs, because that effort is the cost most teams underestimate.

Subscriptions are the main fee on the Icinga side, and they recur. The Forever Free edition covers unlimited hosts and services. Packages for RHEL, SLES and Amazon Linux require a Repository Subscription listed at 5,000 euros per year, the Module Subscription is listed at 2,000 euros per year, and support starts from 15,000 euros per year, according to the Icinga subscription page. Other operating systems keep free packages. Nagios XI is a separate commercial product from Nagios Enterprises, so confirm its price and renewal terms in writing. Both lines need upgrade time: plan a test cycle against your plugins and configuration each time you move to a new release, because that work repeats for as long as you run the platform.

A quote is only comparable if the scope is written down. Ask for the number of hosts and services, the number of sites and Icinga zones, and the number of masters, satellites and agents at each site, since support tiers are sized by Icinga servers (2, 5 or 10). State whether you need 8x5 or 24/7 coverage and the response hours your on-call team requires. List your operating systems, because RHEL, SLES or Amazon Linux packages trigger the Repository Subscription. Confirm whether a Nagios XI or Icinga support contract is included, and whether configuration migration, Director setup and plugin porting are priced separately. DeployOpen agrees fixed scopes, deliverables and timelines in writing before work starts, so the written scope is the document to compare across vendors.

How to move a Nagios Core estate to Icinga 2

The sequence turns a Nagios Core configuration into Icinga 2 objects, runs both engines side by side, and ends with notifications on Icinga 2 and the old engine retired. The rewrite effort depends on how clean the existing configuration is, because no automated converter is described in the Icinga 2 migration chapter.

  1. Inventory defines, hostgroups and contacts

    Export every object file Nagios Core loads, including host, service, hostgroup, servicegroup, contact, contactgroup, command and timeperiod definitions. Count the objects by type and mark which ones are referenced by host_name or hostgroup_name lists, since those lists are what become apply rules later. Note any custom macros, event handlers and CGI-specific settings you depend on. The step is done when every object type has a count and an owner, and nobody on the team is aware of a monitored system missing from the inventory. Keep this inventory as the baseline for the parallel run.

  2. Confirm which plugins run unchanged

    List every check command and the plugin binary it calls. Run each plugin manually against a representative host with the same arguments Nagios Core uses, and confirm the output and exit codes match what Nagios Core expects. Check commands and plugin logic transfer as they are, so most plugins should need no change, but any custom plugin that depends on Nagios-specific environment variables or macros needs a test on the Icinga 2 side. The step is done when each command has a recorded pass or a named fix, with the plugin version pinned.

  3. Choose the configuration source

    Decide where Icinga 2 objects will come from. The Icinga 2 migration chapter does not describe an automated converter. It recommends feeding sources such as a CMDB, PuppetDB, or CSV and JSON files into the Icinga Director, or re-creating the configuration the Icinga 2 way in the Icinga DSL. Choose the Director path if you have a clean inventory source that can drive host records. Choose hand-written DSL if the estate is small or the object model needs a redesign. The step is done when the source of truth for hosts is named and a team member owns it.

  4. Rewrite host and hostgroup lists as apply rules

    Replace explicit host_name and hostgroup_name lists with object blocks and apply rules that use assign where expressions, based on host attributes or custom variables. Start with the most repeated service definitions, because they account for the bulk of the duplicated configuration. Test each apply rule with the Icinga 2 configuration validator before deployment, and compare the generated service list with the inventory from step one. The step is done when the set of services Icinga 2 generates matches the Nagios Core service list, with any intentional differences documented. Expect this to be the largest part of the effort on a long-lived, hand-edited estate.

  5. Move contacts into Notification objects

    Nagios Core ties alerts to contacts and contact groups inside service and host definitions. The Icinga 2 migration chapter explains that notifications move into separate Notification objects, which reference users, user groups, and time periods. Recreate each contact as a user, group the users to match the old contactgroups, and attach Notification objects with the same escalation logic. Test notifications using a test host, and confirm the recipients and time windows match the old configuration. The step is done when every alert route from the inventory has a matching Notification object and a test message has been received by each intended recipient.

  6. Run both engines in parallel and compare alerts

    Keep Nagios Core running and feed the same hosts to Icinga 2, with notifications disabled on the Icinga 2 side at first. Over a period you set with your operations team, compare state changes, problem counts, and check results between the two engines for the same hosts. Investigate every mismatch, which usually points to a missing apply rule, a plugin argument difference, or a timing change. Icinga 2 distributed monitoring can be used during this phase if you plan a master pair with satellite zones, but that topology is a design choice to make before the parallel run starts. The step is done when mismatches are explained and the team signs off on the comparison.

  7. Cut over notifications and retire Nagios Core

    Enable notifications on Icinga 2 and disable them on Nagios Core in the same change window, so no alert is sent twice or dropped. Confirm that acknowledgements, downtimes, and escalations work from the Icinga Web 2 frontend or the team's chosen tooling. Keep the Nagios Core configuration and inventory archived for audit and rollback for as long as your change policy requires. Then stop the Nagios Core service and remove it from the monitoring hosts. The step is done when Icinga 2 is the only source of notifications, the old service is stopped, and the archive is confirmed readable.

  8. Document what was rebuilt and what transferred

    Write a short record of what transferred unchanged, which is check commands and plugin logic, and what was rebuilt, which is the object model, notification routing, and dashboards. Dashboards and reports from the old CGI interface do not carry over as configuration, so list each one and decide whether to recreate it in Icinga Web 2 or retire it. Include the owner for each area and the plugin versions in use. The step is done when operations staff can answer where a given alert route is defined without reading the Nagios Core files.

Where Nagios Core and Icinga 2 projects usually run long

The longest part of a Nagios Core project is usually the configuration, not the install. Nagios Core keeps hosts, services, contacts and commands in plain text files that someone must read, edit and review by hand. Over years these files accumulate duplicated service definitions, hostgroup lists that nobody fully trusts, and contacts tied to people who have left. The basic web interface shows the state of checks but does not give management reporting, so teams often add a reporting layer later. Plan time for an inventory of what the current configuration actually does, and confirm with your own change records which checks are still wanted before any file is moved.

For Icinga 2, the same effort shows up as learning and design work. Teams need to understand the DSL and the apply model, deploy Icinga Web 2 and decide whether the Icinga Director will manage configuration or whether configuration management tools will. Zones, satellites and the two-master high availability setup need a written network design before rollout. The migration chapter notes that contacts become separate Notification objects, so alerting rules must be rebuilt rather than copied. Projects run long where undocumented custom plugins and event handlers exist, since each one must be re-tested under the new engine, and where large hostgroup-based estates are converted to apply rules that match the same hosts.

Multiple network segments that need satellites and long parallel running periods add the most schedule risk. Confirm with Icinga GmbH or your reseller which operating systems and package routes apply to your estate, because the subscription FAQ states that packages for RHEL, SLES and Amazon Linux require a paid Repository Subscription while other operating systems remain free. Ask Nagios Enterprises or your support provider whether your Nagios Core version and plugin set are covered for your own support needs. Agree in writing when the old system will stop sending notifications, and check each step against your own environment and change control before setting a cutover date.

Questions buyers ask before choosing Nagios Core or Icinga

How much effort does a migration from Nagios Core to Icinga 2 take?

The effort depends mainly on how much configuration you have and how much of it is undocumented. Icinga's migration guidance does not describe an automated converter. It recommends feeding existing sources such as a CMDB, PuppetDB or CSV and JSON files into the Icinga Director, or re-creating the configuration the Icinga 2 way. Effort rises with the number of hosts and services, custom event handlers, complex escalation chains, contact groups, and any CGI customizations your operators rely on. Before you ask for a quote, inventory the objects and document which checks and notifications are business critical. That inventory is what turns a vague estimate into a written scope.

Do existing Nagios plugins still work in Icinga 2?

Most of your check programs can stay in place, because the plugins are a separate project from the engine. Nagios Plugins provides the check programs that Nagios Core runs, and those same programs are what you call from Icinga 2 commands. What changes is the object definitions that call them. Test each command in a staging environment with the same arguments, exit codes and performance data, and check any local scripts that read Nagios-specific files or depend on the CGI. The supplied migration guidance focuses on configuration, so confirm plugin behavior against the Icinga 2 documentation for the version you plan to deploy.

What does the internal team need to run the migration?

Your team needs people who can read the existing Nagios configuration, write Icinga 2 objects in the Icinga DSL, and operate Icinga Web 2, which Icinga 2 requires as its frontend. If you plan to use the Icinga Director, assign someone to own its import and sync workflow. You also need a named owner for notification mapping, since contacts become separate Notification objects, plus an on-call owner who signs off on alert behavior. If the estate spans several sites, someone must understand how masters, satellites and agents organized in zones will be laid out. Plan change control for the cutover window as well.

Can our team migrate to Icinga 2 without outside help?

A capable Linux team can often handle a small, simple estate with well-documented checks, provided it tests everything in staging first. The work gets harder with many hosts, intricate escalation logic, custom integrations, or a requirement that alerting never lapses during cutover. The question is less about skill and more about capacity and risk tolerance. DeployOpen plans, implements, documents and supports self-hosted open-source platforms inside your own infrastructure, and most engagements are fixed-scope with deliverables and timelines agreed in writing before work starts. Ongoing support and upgrades are available as retainers. Ask any provider for a written scope that names the systems in play before you commit.

What does paid Icinga support cover, and what does it cost?

Icinga publishes list prices on its subscription page, which you should confirm before budgeting. A Forever Free edition offers unlimited hosts and services. The Repository Subscription is listed at 5,000 euros per year and covers packages for RHEL, SLES and Amazon Linux, while packages for other operating systems remain free. The Module Subscription is listed at 2,000 euros per year and currently offers the Dependency Views module, with Microsoft Teams, ServiceNow and SAML modules listed as upcoming. The Support Subscription starts from 15,000 euros per year and covers all Icinga components with 8x5 or 24/7 coverage for 2, 5 or 10 Icinga servers, unlimited hosts and unlimited cases. Nagios Enterprises sells Nagios XI on the same engine, but no price was supplied here, so request a written quote from them.

Does the move to GPL-3.0 change how we can use Icinga 2?

For most internal use, the license change matters less than the version you choose. Icinga 2 is GPL version 3 or later from v2.16.0, because newer Apache-2.0 dependencies are incompatible with GPLv2. Versions before v2.16.0 remain GPLv2 or later, and Nagios Core is GPL-2.0. Running unmodified software inside your own organization does not usually raise the same questions as distributing modified binaries or embedding code in products you ship. If you redistribute builds, patch the source or combine it with other code, have your legal team review the obligations. Confirm the license of any Icinga add-on modules separately.

How long does a parallel run of Nagios Core and Icinga 2 last?

The length of a parallel run depends on how much alert behavior you need to validate, not on a fixed period. Plan for time to compare alerts, notifications, downtimes and acknowledgements between the two systems, and for at least one full cycle of your normal operational events, such as maintenance windows and on-call handovers. Dependencies on the CGI interface, dashboards and reports extend the validation. A phased cutover by site or zone, with Nagios Core kept read-only as a rollback path, usually shortens risk exposure. Ask for a written plan with explicit exit criteria before you agree to a cutover date.

How DeployOpen helps choose, implement or migrate

DeployOpen is a Chainscore Labs company that plans, implements and supports self-hosted open-source platforms inside your own infrastructure. For Nagios Core vs Icinga, we start with your existing Nagios estate and the decision you need to make, then scope the work in writing before any change is made.

How we scope

  • We inventory existing Nagios hosts, services, plugins, notification paths and event handlers before recommending Core or Icinga 2.
  • The written scope states which checks, plugins and contacts move, which are retired, and which stay on Nagios Core during overlap.
  • Most engagements are fixed-scope, so deliverables and timelines are agreed in writing before work starts.
  • We confirm the licensing position for your edition and distribution, including GPL-2.0 or GPL-3.0-or-later obligations, before design begins.

How we build

  • We rebuild the configuration the Icinga 2 way, mapping define blocks to object blocks and host lists to apply rules with assign where expressions.
  • Notification logic is redesigned around separate Notification objects, then tested against a non-production set of hosts first.
  • Where distributed monitoring is needed, we design master, satellite and agent zones and the high-availability master pair in your environment.
  • Plugin reuse is validated check by check so existing Nagios Plugins keep producing the same results under the new engine.

How we hand over

  • You receive configuration in version control, runbooks for daily operation and a record of every mapped object and its origin.
  • Parallel-run results are documented so your team can see where Nagios Core and Icinga 2 agree and where they differ.
  • We train the operators who will own the platform, covering the Icinga Director or plain-text DSL workflow you choose.
  • Cutover and rollback steps are written down and rehearsed before the Nagios Core instance is switched off.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • We track Nagios Core and Icinga 2 release lines and plan upgrades against your change windows and approval process.
  • Ask whether paid support from Nagios Enterprises or Icinga GmbH is needed for your environment, and we will scope it alongside our work.
  • Retainer scope, response expectations and review cadence are agreed in writing, with no SLA assumed unless it is contracted.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.