Icinga 2 ist die vollständige Neuentwicklung der beliebten Open Source Monitoring Lösung Icinga. Neben der komplett überarbeiteten Architektur des Cores, wurden viele Anforderungen von IT-Administratoren wie automatische Check-Verteilung, integrierte Hochverfügbarkeit und Synchronisation der gesamten Konfiguration innerhalb einer Icinga 2 Umgebung direkt eingebaut. Darüber hinaus bietet das neue Konfigurationsschema eine wesentlich flexiblere Möglichkeit, seine Umgebung aufzubauen. Dabei helfen unter anderem die neuen Parameter „apply“, „assign“ und „ignore“.
Website: http://www.netways.de
Webinar: http://www.netways.de/de/webinare/archiv/icinga_2/#Icinga2_Enterprise_Monitoring_der_naechsten_Generation
YouTube: https://www.youtube.com/watch?v=HI4b24C7pVk
NETWAYS NWS: Icinga 2 Satelliten integrieren (Webinar vom 20. Juni 2017)
Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)
1. www.netways.de // blog.netways.de // @netways
We love Open Source
WEBINAR | 22.07.2014
ICINGA 2: ENTERPRISE MONITORING
DER NÄCHSTEN GENERATION
MICHAEL FRIEDRICH | CHRISTIAN STEIN | NETWAYS GMBH
2. www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG MITARBEITER
■ Christian Stein
Account Manager
Bei NETWAYS seit 2012
■ Michael Friedrich
Application Developer
Bei NETWAYS seit 2012
Icinga Core Developer
3. www.netways.de // blog.netways.de // @netways
We love Open Source
AGENDA
■ Vorstellung NETWAYS
■ Was ist Icinga 2
■ Unterschiede zu Nagios und Icinga 1.x
■ Live Demo
■ Icinga 2 Webinare
■ Zusammenfassung
■ Fragen und Antworten
5. www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG NETWAYS
■ Firmengründung 1995
■ Open Source seit 1997
■ Aktuell 38 Mitarbeiter
■ Spezialisierung in den Bereichen
Open Source Systems Management
und Open Source Datacenter
6. www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS KOMPETENZEN
■ Monitoring
■ Graphing
■ Logmanagement
■ Konfigurationsmanagement
■ Reporting
■ Private Cloud
■ Backup
■ Projektmanagement
■ Consulting
■ Hosting
■ Managed Services
■ Development
■ Support
■ Betrieb
■ Schulungen
■ Konferenzen
■ Monitoring Hardware
8. www.netways.de // blog.netways.de // @netways
We love Open Source
■ Open Source Backup Conference
• 22. – 23. September 2014 in Köln
• Best Practices für das Backup
■ Puppet Camp
• 16. Oktober 2014 in Düsseldorf
• 110 Teilnehmer (April 2013)
• Vorträge und Workshops
NETWAYS KONFERENZEN
9. www.netways.de // blog.netways.de // @netways
We love Open Source
■ Open Source Monitoring Conference
• 18. – 20. November 2014 in Nürnberg
• 250 Teilnehmer (2013)
• Monitoring Best Practices
■ OpenNebula Conference
• 02. – 04. Dezember 2014 in Berlin
• 100 Teilnehmer (2013)
• Cloud Virtualisierung
NETWAYS KONFERENZEN
10. www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS COMMUNITY
www.netways.org
■ NETWAYS Addons
■ NETWAYS Plugins
www.icinga.org
■ Development
■ Hosting
www.monitoringexchange.org
■ Icinga / Nagios Addons und Plugins
■ > 2000 Projekte
15. www.netways.de // blog.netways.de // @netways
We love Open Source
UNSERE LEISTUNGEN IM ÜBERBLICK
■ Konzeptionierung und Planung
■ Workshops & Consulting zur Implementierung vor Ort
■ Betrieb
Komplette Monitoringsysteme
Satellitensysteme
■ Entwicklungsleistungen
Plugins
Systemintegration
■ Schulungen
Standardisierte Schulungsmodule
Individuell vor Ort
■ Support
Standardverträge
Individuelle Supportkonzepte
■ Konferenzen
17. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2.X ARCHITEKTUR
■ Linux-Server Daemon
■ Läuft auf allen aktuellen Distributionen
■ Datenbankunterstützung: MySQL und PostgreSQL
Quelle: www.icinga.org
18. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2 FEATURES
■ Vollständig Featurebasiert
Checker, Notifications
Compat (Status Files, Perfdata, Command Pipe)
Graphite
IDO
Livestatus
Cluster
■ Direkte Anbindung von Graphite
■ Einfach skalierbar über zusätzliche Nodes
■ Automatisches Load-Balancing von Checks
■ SSL-Verschlüsselung zwischen allen Icinga 2 Instanzen
■ Nagios/Icinga Check-Plugins 100% kompatibel
19. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2.X PERFORMANCE
■ Volle Ausnutzung von moderner Serverhardware durch Multithreading
■ Mehrere tausend Checks pro Sekunde möglich
■ Geringere Komplexität großer Umgebungen
20. www.netways.de // blog.netways.de // @netways
We love Open Source
SINN UND ZWECK VON MONITORING
■ Availability
Zeitnahe Benachrichtigung
Gesamtüberblick über Netzwerk
Vereinfachung der Fehlersuche
■ Performance
Langfristige Trends
Erkennen drohender Engpässe
■ Datensammlung für SLA Überwachung/Reporting
Nachweis von Verfügbarkeiten
22. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA GRUNDAUFBAU
■ Icinga Daemon
Konfiguration
Webinterface
Benachrichtigungen
Log- und Messdaten
Event Handler
Datenbank
■ Icinga Plugins
Überwachungslogik
Executables oder Skripte
Rückgabe der Status
(OK, WARNING, CRITICAL)
Rückgabe
Performancedaten
(z.B. CPU-Auslastung)
23. www.netways.de // blog.netways.de // @netways
We love Open Source
KOMMUNIKATIONSWEGE
■ Flexible Kommunikationsprotokolle
Eigene Icinga Protokolle (NRPE, NSCA, NsClient++)
Standardprotokolle (SSH, SNMP, WMI)
Eigene Lösungen
■ Frei definierbare Ports
24. www.netways.de // blog.netways.de // @netways
We love Open Source
VERTEILTE UMGEBUNGEN
■ Aufbau
Mehrere Server überwachen
Teilbereiche
Weitermeldung der
Ergebnisse an zentralen
Server
■ Einsatzbereiche
Logische Netzstruktur
Lastverteilung
Überwachung geschützter
Bereiche
25. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2.X CLUSTER
■ Eingebauter Cluster
■ Sichere Kommunikation zwischen den Knoten
■ Automatische Verteilung von Checks, Notfications und Datenbank
Quelle: www.icinga.org
26. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2.X VERTEILTES MONITORING
■ Zonenmodell für eine verteilte Überwachung
■ Replikation nur zwischen den einzelnen Zonen und der Masterzone
Quelle: www.icinga.org
28. www.netways.de // blog.netways.de // @netways
We love Open Source
UNTERSCHIEDE ICINGA 2 ZU ICINGA 1.X / NAGIOS
■ Pakete für gängige Distributionen vom Icinga Projekt
■ Dynamische Konfigurationsregelsprache mit Apply/Assign
Service-Host-Relationen basierend auf Attributen
Einfache Notifizierungsregeln und Abhängigkeitsdefinitionen für
Agenten, etc
Konditionale Check Command Argumente
Icinga Template Library und Plugin Check Commands
■ Embedded Gesundheitschecks mit Performancedaten (icingastats)
■ Livestatus Protokoll nativ als Feature (kein Addon)
■ Cluster Feature ersetzt mod_gearman und andere Verteilungsaddons
■ Wiederkehrende Ausfallszeiten („Recurring Downtimes“)
■ Keine Limitierung von Checkoutput, Command Pipe Slots, etc
29. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2: KOMPATIBILITÄT
■ Plugins: 100% (neue Check Command Konfiguration erforderlich)
■ Konfiguration
Ausführliche Tipps & Tricks für manuelle Migration
Migrationsscript & LConf kompatibler Export
Empfehlung: Erlernen der neuen Konfigurationssprache!
vim/nano Syntax Highlighting
■ Datenbankschema der IDO Version 1.11.3
■ Livestatus Protokoll mit Unixsocket (zus. TCP)
■ Status.dat/objects.cache/icinga.log
■ Performancedaten
■ Externe Command Pipe
■ Checkresult Spool Reader (z.B. LConfSlaveSync)
30. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 1.X VS 2.X: TEMPLATES
define host {
name db-server
check_interval 5
retry_interval 3
check_command hostalive
register 0
}
define service {
name db-service
check_interval = 3
retry_interval = 1
register 0
}
template Host "db-server" {
check_interval = 5m
retry_interval = 3m
check_command = "hostalive"
}
template Service "db-service" {
check_interval = 3m
retry_interval = 1m
}
31. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 1.X VS 2.X: GRUPPEN
define hostgroup {
hostgroup_name mysql-server
display_name MySQL Server
members *mysql*, WTF, !WTF, !*internal
}
define host {
host_name mysql-db1
use db-server,mysql-server
address 192.168.70.10
}
define host {
host_name customer-db7
use db-server,mysql-server
address 192.168.71.30
_PROD_MYSQL_DB db-customer-xy
}
object HostGroup "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)
}
object Host "mysql-db1" {
import "db-server"
import "mysql-server"
address = "192.168.70.10"
}
object Host "customer-db7" {
import "db-server"
import "mysql-server"
address = "192.168.71.30"
vars.prod_mysql_db = "db-customer-xy"
}
32. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 1.X VS 2.X: HOST, GRUPPEN UND SERVICES
define host {
host_name mysql-db1
use db-server,mysql-server
address 192.168.70.10
}
define host {
host_name customer-db7
use db-server,mysql-server
address 192.168.71.30
_PROD_MYSQL_DB db-customer-xy
}
define serivce {
service_description mysql-health
use mysql-service
check_command mysql
//nur hostgroup möglich
hostgroup_name mysql-server
}
object Host "mysql-db1" {
import "db-server"
import "mysql-server"
address = "192.168.70.10"
}
object Host "customer-db7" {
import "db-server"
import "mysql-server"
address = "192.168.71.30"
vars.prod_mysql_db = "db-customer-xy„
//vars.no_health_check = true
}
apply Service "mysql-health" {
import "mysql-service"
check_command = "mysql"
assign where match(“192.168.7*”, host.address)
assign where "mysql-server" in host.groups
ignore where host.vars.no_health_check == true
}
33. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 1.X VS 2.X: NOTIFIZIERUNGEN
template Notification "cust--notification" {
users = [ "noc-icinga", "mgmt-icinga" ]
command = "mail-service-notification"
}
apply Notification "notify-cust-icinga-mysql" to Service {
import "cust-icinga-notification"
assign where match("*mysql*", service.check_command) && host.vars.customer == "icinga"
ignore where match("*internal", host.name)
ignore where service.vars.sla != "24x7"
}
■ Mit Icinga 1.x nicht abbildbar
34. www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 1.X VS 2.X: DEPENDENCIES
define service {
service_description nrpe-health
use generic-service
check_command nrpe
hostgroup_name nrpe-servers ;keine CV möglich
}
define service {
service_description nrpe-disk
use generic-service
check_command nrpe_1arg!check_disk
hostgroup_name nrpe-servers ;keine CV möglich
}
define host {
use generic-host
address 192.168.1.5
_AGENT nrpe
}
Define dependency {
hostgroup_name nrpe-servers ; nur mit Zusätz-Dummy-Hostgruppe
service_description nrpe-health ; parent
dependent_hostgroup_name nrpe-servers
dependent_service_description disk, ….
execution_failure_criteria w,u.c
notification_failure_criteria w,u.c
}
apply Service "nrpe-health" {
import "generic-service"
check_command = "nrpe"
assign where host.vars.agent == "nrpe"
}
apply Service "nrpe-disk" {
import "generic-service"
check_command = "nrpe"
vars.nrpe_command = "check_disk"
assign where host.vars.agent == "nrpe"
}
object Host "nrpe-server" {
import "generic-host"
address = "192.168.1.5"
vars.agent = "nrpe"
}
apply Dependency "disable-nrpe-checks" to Service {
parent_service_name = "nrpe-health"
states = [ OK ]
disable_checks = true
disable_notifications = true
assign where service.check_command == "nrpe"
assign where host.vars.agent == "nrpe"
ignore where service.name == "nrpe-health"
}
37. www.netways.de // blog.netways.de // @netways
We love Open Source
UNTERSCHIEDE ICINGA 2 ZU ICINGA 1.X / NAGIOS
■ Icinga 2: Migration von Nagios oder Icinga 1.x leicht gemacht
02. September 2014 - 10:30 Uhr
Michael Friedrich und Christian Stein
■ Icinga 2: Integration von Graphite
25. September 2014 - 10:30 Uhr
Markus Frosch und Christian Stein
■ Icinga 2: Integrierte Hochverfügbarkeit
07. Oktober 2014 - 10:30 Uhr
Michael Friedrich und Christian Stein