Icinga 2 ist der Nachfolger des bekannten Nagios forks Icinga. Aufgrund immer komplexer werdender Anforderungen an das Monitoring, war es logisch und konsequent ein von Grund auf neues Tool zu entwerfen, welches Ressourcen von modernen Serversystemen (auch virtualisiert) optimal nutzt. In diesem Webinar wollen wir darauf eingehen, was Icinga 2 ist und welche Unterschiede zu Nagios und Icinga bestehen.
Webinare
Archiv Link: https://www.netways.de/webinare/archiv/icinga_webinare/icinga_2_enterprise_monitoring_der_naechsten_generation/
Aktuell: https://www.netways.de/webinare/webinare_aktuell/
NETWAYS
Konferenzen: https://www.netways.de/events_schulungen/home/
Schulungen: https://www.netways.de/events_schulungen/schulungen/home/
Shop: https://shop.netways.de/
Blog: http://blog.netways.de/
Social Media
YouTube: https://www.youtube.com/channel/UC8nIBEFmjzXjXeJV_hkkeIQ
Facebook: https://www.facebook.com/netways
Google+: https://plus.google.com/+netways/
Twitter: https://twitter.com/netways
NETWAYS NWS: Icinga 2 Satelliten integrieren (Webinar vom 20. Juni 2017)
Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 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