www.netways.de // blog.netways.de // @netways 
ICINGA 2 
MONITORING REDESIGNED 
ICINGA 2 WORKSHOP | 09.10.2014 
We love Open Source 
MICHAEL FRIEDRICH | GUNNAR BEUTNER | NETWAYS GMBH
www.netways.de // blog.netways.de // @netways 
We love Open Source 
■ Michael Friedrich 
■ @dnsmichi, 31, Austria 
■ Application Developer 
■ Icinga Entwicklung 
§ Core 1.x & 2.x developer 
§ Release Manager 
■ Im Icinga Team seit 2009 
■ Gunnar Beutner 
■ Application Developer 
■ Icinga Entwicklung 
§ Core 1.x & 2.x Developer 
■ Im Icinga Team seit 2011 
VORSTELLUNG
www.netways.de // blog.netways.de // @netways 
We love Open Source 
AGENDA 
■ Überblick 
■ Icinga 2 
■ Live Demo 
■ Zusammenfassung 
■ Fragen und Antworten
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ÜBERBLICK
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – ÜBERBLICK 
■ Stabile Version: 2.1.1 (16.9.2014) 
■ Unterstützt gängige Distributionen 
■ Basiert auf C++ und Boost 
■ Neues Konfigurationsformat 
■ Kompatibel mit Plugins, Addons, UIs
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – FEATURES 
■ Features 
§ Checker, Notifications 
§ Compat (status.dat, Performancedaten, Command Pipe) 
§ Graphite 
§ DB IDO, Livestatus 
§ Cluster
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – FEATURES 
■ Wiederkehrende Ausfallszeiten („Recurring Downtimes“) 
■ Skalierbar für High Performance 
■ Integrierte Gesundheitschecks 
■ Load-Balancing für Checks und Notifications 
■ Cluster Protokoll mit SSL x509 Zertifikaten, IPv4/6 Support 
■ Monitoring Plugins 100% kompatibel
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 - CLUSTER 
■ Eingebauter Cluster 
■ Sichere Kommunikation zwischen den Knoten (SSL) 
■ Automatische Verteilung von Checks, Notifications und 
Datenbank 
■ Zonenmodell für eine verteilte Überwachung 
■ Replikation nur zwischen den einzelnen Zonen und der 
Masterzone
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – CLUSTER: HOCHVERFÜGBARKEIT
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – CLUSTER: VERTEILTE UMGEBUNG
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – CLUSTER: CLUSTER UND VERTEILTE UMGEBUNG
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 - KONFIGURATIONSUNTERSCHIEDE 
■ Neue Notifizierungsregeln statt Kontaktgruppen 
■ Dynamisches Erstellen von Services, Notifications, Dependencies 
mit 
§ assign where <Bedingung> 
§ ignore where <Bedingung> 
■ Frei definierbare Attribute für Befehlsmakros, Apply- 
Bedingungen, UIs 
■ Globale Konstanten 
■ Konditionale Befehlsargumente 
■ Template Library (ITL) & Plugin Check Commands 
■ Viele Details …
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – KONFIGURATION: TEMPLATES 
template Host "workshop-db-server" { 
check_interval = 3m 
retry_interval = 1m 
check_command = "hostalive" 
} 
template Host "workshop-db-server-customer-xyz" { 
vars.customer_name = "xyz" 
vars.sla = "8to5" 
} 
template Service "workshop-db-service" { 
check_interval = 1m 
retry_interval = 30s 
} 
object Host "workshop-mysql-db1" { 
import "workshop-db-server" 
address = "192.168.33.10" 
vars.prod_mysql_db = "db-cluster1" 
} 
object Host "workshop-mysql-db-customer-xyz" { 
import "workshop-db-server" 
import "workshop-db-server-customer-xyz" 
address = "127.0.0.1" 
//vars.no_health_check = true 
}
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – KONFIGURATION: GRUPPEN 
object HostGroup "workshop-mysql-server" { 
display_name = "MySQL Server" 
assign where match("*mysql*", host.name) 
assign where match("*db-*", host.vars.prod_mysql_db) 
ignore where host.vars.test_server == true 
ignore where match("*internal", host.name) 
}
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – KONFIGURATION: SERVICE APPLY 
apply Service "workshop-mysql-health" { 
import "workshop-db-service" 
check_command = "mysql" 
assign where match("192.168.7*", host.address) 
assign where "workshop-mysql-server" in host.groups 
ignore where host.vars.no_health_check == true 
}
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 – KONFIGURATION: NOTIFIZERUNGEN 
object User "workshop-user" { 
import "generic-user" 
email = "icinga@localhost" 
} 
object UserGroup "workshop-group" { 
assign where match("workshop*", user.name) 
} 
apply Notification "workshop-service-by-mail" to Service { 
import "mail-service-notification" 
user_groups = [ "workshop-group" ] 
assign where host.vars.sla == "8to5" 
assign where match("*workshop*", service.name) 
}
www.netways.de // blog.netways.de // @netways 
We love Open Source 
LIVE DEMO
www.netways.de // blog.netways.de // @netways 
We love Open Source 
AUSBLICK
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 - AUSBLICK 
■ Icinga 2 Version 2.2 (29.10.2014) 
§ Agent für Remote Checks 
§ Integrierte CLI-Commands 
■ Geplante Features 
§ Weitere Schnittstellen 
§ <idee> 
■ Module für Puppet, Ansible, Chef, … 
§ https://dev.icinga.org/projects/icinga-tools 
■ Roadmap 
§ https://dev.icinga.org/projects/i2/roadmap
www.netways.de // blog.netways.de // @netways 
We love Open Source 
ICINGA 2 - NETWAYS 
■ Consulting & Development 
■ Schulungen & Workshops 
§ Icinga 2 
§ Icinga 2 Advanced (soon™) 
■ Webinare 
■ Hosting von Icinga 2-Satelliten
www.netways.de // blog.netways.de // @netways 
We love Open Source 
FRAGEN UND ANTWORTEN
www.netways.de // blog.netways.de // @netways 
We love Open Source 
KONTAKT 
Vielen Dank für Ihre 
Aufmerksamkeit! 
NETWAYS GmbH 
Deutschherrnstrasse 15-19 
90429 Nürnberg 
Tel: +49 911 92885-0 
Fax: +49 911 92885-77 
E-Mail: info@netways.de 
Website: www.netways.de 
Twitter: twitter.com/netways 
Facebook: facebook.com/netways 
Blog: blog.netways.de

Icinga workshop 2014 Icinga 2

  • 1.
    www.netways.de // blog.netways.de// @netways ICINGA 2 MONITORING REDESIGNED ICINGA 2 WORKSHOP | 09.10.2014 We love Open Source MICHAEL FRIEDRICH | GUNNAR BEUTNER | NETWAYS GMBH
  • 2.
    www.netways.de // blog.netways.de// @netways We love Open Source ■ Michael Friedrich ■ @dnsmichi, 31, Austria ■ Application Developer ■ Icinga Entwicklung § Core 1.x & 2.x developer § Release Manager ■ Im Icinga Team seit 2009 ■ Gunnar Beutner ■ Application Developer ■ Icinga Entwicklung § Core 1.x & 2.x Developer ■ Im Icinga Team seit 2011 VORSTELLUNG
  • 3.
    www.netways.de // blog.netways.de// @netways We love Open Source AGENDA ■ Überblick ■ Icinga 2 ■ Live Demo ■ Zusammenfassung ■ Fragen und Antworten
  • 4.
    www.netways.de // blog.netways.de// @netways We love Open Source ÜBERBLICK
  • 5.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – ÜBERBLICK ■ Stabile Version: 2.1.1 (16.9.2014) ■ Unterstützt gängige Distributionen ■ Basiert auf C++ und Boost ■ Neues Konfigurationsformat ■ Kompatibel mit Plugins, Addons, UIs
  • 6.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – FEATURES ■ Features § Checker, Notifications § Compat (status.dat, Performancedaten, Command Pipe) § Graphite § DB IDO, Livestatus § Cluster
  • 7.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – FEATURES ■ Wiederkehrende Ausfallszeiten („Recurring Downtimes“) ■ Skalierbar für High Performance ■ Integrierte Gesundheitschecks ■ Load-Balancing für Checks und Notifications ■ Cluster Protokoll mit SSL x509 Zertifikaten, IPv4/6 Support ■ Monitoring Plugins 100% kompatibel
  • 8.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 - CLUSTER ■ Eingebauter Cluster ■ Sichere Kommunikation zwischen den Knoten (SSL) ■ Automatische Verteilung von Checks, Notifications und Datenbank ■ Zonenmodell für eine verteilte Überwachung ■ Replikation nur zwischen den einzelnen Zonen und der Masterzone
  • 9.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – CLUSTER: HOCHVERFÜGBARKEIT
  • 10.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – CLUSTER: VERTEILTE UMGEBUNG
  • 11.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – CLUSTER: CLUSTER UND VERTEILTE UMGEBUNG
  • 12.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 - KONFIGURATIONSUNTERSCHIEDE ■ Neue Notifizierungsregeln statt Kontaktgruppen ■ Dynamisches Erstellen von Services, Notifications, Dependencies mit § assign where <Bedingung> § ignore where <Bedingung> ■ Frei definierbare Attribute für Befehlsmakros, Apply- Bedingungen, UIs ■ Globale Konstanten ■ Konditionale Befehlsargumente ■ Template Library (ITL) & Plugin Check Commands ■ Viele Details …
  • 13.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – KONFIGURATION: TEMPLATES template Host "workshop-db-server" { check_interval = 3m retry_interval = 1m check_command = "hostalive" } template Host "workshop-db-server-customer-xyz" { vars.customer_name = "xyz" vars.sla = "8to5" } template Service "workshop-db-service" { check_interval = 1m retry_interval = 30s } object Host "workshop-mysql-db1" { import "workshop-db-server" address = "192.168.33.10" vars.prod_mysql_db = "db-cluster1" } object Host "workshop-mysql-db-customer-xyz" { import "workshop-db-server" import "workshop-db-server-customer-xyz" address = "127.0.0.1" //vars.no_health_check = true }
  • 14.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – KONFIGURATION: GRUPPEN object HostGroup "workshop-mysql-server" { display_name = "MySQL Server" assign where match("*mysql*", host.name) assign where match("*db-*", host.vars.prod_mysql_db) ignore where host.vars.test_server == true ignore where match("*internal", host.name) }
  • 15.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – KONFIGURATION: SERVICE APPLY apply Service "workshop-mysql-health" { import "workshop-db-service" check_command = "mysql" assign where match("192.168.7*", host.address) assign where "workshop-mysql-server" in host.groups ignore where host.vars.no_health_check == true }
  • 16.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 – KONFIGURATION: NOTIFIZERUNGEN object User "workshop-user" { import "generic-user" email = "icinga@localhost" } object UserGroup "workshop-group" { assign where match("workshop*", user.name) } apply Notification "workshop-service-by-mail" to Service { import "mail-service-notification" user_groups = [ "workshop-group" ] assign where host.vars.sla == "8to5" assign where match("*workshop*", service.name) }
  • 17.
    www.netways.de // blog.netways.de// @netways We love Open Source LIVE DEMO
  • 18.
    www.netways.de // blog.netways.de// @netways We love Open Source AUSBLICK
  • 19.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 - AUSBLICK ■ Icinga 2 Version 2.2 (29.10.2014) § Agent für Remote Checks § Integrierte CLI-Commands ■ Geplante Features § Weitere Schnittstellen § <idee> ■ Module für Puppet, Ansible, Chef, … § https://dev.icinga.org/projects/icinga-tools ■ Roadmap § https://dev.icinga.org/projects/i2/roadmap
  • 20.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 - NETWAYS ■ Consulting & Development ■ Schulungen & Workshops § Icinga 2 § Icinga 2 Advanced (soon™) ■ Webinare ■ Hosting von Icinga 2-Satelliten
  • 21.
    www.netways.de // blog.netways.de// @netways We love Open Source FRAGEN UND ANTWORTEN
  • 22.
    www.netways.de // blog.netways.de// @netways We love Open Source KONTAKT Vielen Dank für Ihre Aufmerksamkeit! NETWAYS GmbH Deutschherrnstrasse 15-19 90429 Nürnberg Tel: +49 911 92885-0 Fax: +49 911 92885-77 E-Mail: info@netways.de Website: www.netways.de Twitter: twitter.com/netways Facebook: facebook.com/netways Blog: blog.netways.de