Icinga je open source monitorovací systém. Historicky vychází ze systému Nagios, ze kterého zdědil všechny dobré vlastnosti. Aby se stal konkurenčním monitorovacím produktem, přináší klíčové vlastnosti, které chybí Nagios Core.

Icinga core

Jádrem systému je modul Icinga Core, který provádí kontroly pomocí pluginů. Spouštění kontrol řeší integrovaný plánovač úloh, který řadí jednotlivé kontroly do fronty. Plánovači lze nastavit souběžný počet prováděných kontrol. Přes webové rozhraní lze také nastavit předbíhání kontrol.

Výsledky kontrol jsou ukládány jednak do cache, ve které je aktuální obraz stavu sítě, tak pomocí IDOMOD do perzistentního úložiště. Module IDO2DB v současné době podporuje databáze MySQL, PostgreSQL, Oracle. Architektura umožňuje mít oddělený stroj s komponentou IDO2DB.Z tohoto úložiště umí modul Core generovat reporty a počítat dostupnost služby  SLA.

Tento modul se také stará o notifikace uživatelů. Notifikace jsou zasílány přes plugin architekturu, takže se Icinga vůbec nestará jakou metodou jsou tyto notifikace odeslány. Administrátor si může zvolit téměř jakoukoliv notifikační metodu, kterou je schopen na serveru zkonfigurovat.

Plugin Architektura

Dlouhou dobu byla Icinga forkem Nagiosu. Protože docházelo k neshodám vývojářů, kdy opravy chyb nebyly začleňovány do jádra Nagios, Icinga zcela oddělila vývoj. Protože Nagios je nepsaným standardem pro vytváření monitorovacích pluginů, snaží se Icinga být s ním zpětně kompatibilní. Architektura pluginů je velmi jednoduchá, ale zároveň velmi mocná. Tyto pluginy jsou použity jak pro kontroly strojů, tak pro notifikace uživatele a případné vykonávání automatických oprav. Architektura pluginů je postavena na vykonávání příkazů z příkazové řádky a přebírání výsledků ze standardního výstupu. Díky tomuto přístupu lze napsat plugin v jakémkoliv jazyce, který lze poté vykonat na příkazové řádce. Notifikace o problémech fungují úplně stejně, takže například odeslání notifikace e-mailem je řešeno skriptem, který zavolá příkaz mail s potřebnými parametry.

Icinga Web

Je webovým rozhraním pro zobrazení stavu monitorované sítě. Využívá moderní technologie souhrnně nazývané AJAX. Serverová strana Icinga Web je naprogramována jazyce PHP a využívá frameworku Agavi. Klientská strana je téměř kompletně celá realizována javascriptovým frameworkem ExtJS. Pro přenos živých dat mezi serverem a klientem se používá standardu JSON, autoři to zdůvodňují tím, že to byla přirozená volba, vzhledem k tomu, že celé rozhraní je naprogramováno v javascriptu. Uživatelské prostředí je velmi flexibilní a konfigurovatelné a to hlavně díky využití Widgetů, ty se v Icinga se nazývají Cronky. Autoři si dali velmi záležet na zobrazení mapy sítě, která je nyní celá interaktivní a ani při velkém počtu uzlů navázaných na jeden uzel se mapa nestává nepřehlednou.