SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
www.netways.de
Verteilte Icinga 2-Umgebungen
realisieren und automatisieren mit
Puppet
Lennart Betz & Janina Tritschler | 23.11.2017
www.netways.de
• Monitoring mit Icinga 2
• Automatisierung mit Puppet
• Icinga 2 Puppetmodul
• Live Demo
Agenda
www.netways.de
Monitoring mit Icinga 2
www.netways.de
• Open Source Monitoring Framework (GPL v2)
• Multi-Threading für tausende Checks pro Sekunde
• Cluster-Protokoll für verteiltes Monitoring
• Tausende Plugins verfügbar
Icinga 2 - Open Source Monitoring
www.netways.de
• Icinga 2 Core
• Icinga Web 2 (Webinterface)
• IDO DB auf MySQL / PostgreSQL
• Überwachung per Plugins
• Icinga 2 Agent für eine sichere Verbindung
(Linux und Windows)
Icinga 2 - Architektur
www.netways.de
• Warum?
• Netzwerksicherheit
• Standorte
• Skalierung
• Wie?
• Mehrere Icinga 2 Instanzen
• Sichere Kommunikation (TLS, CA)
• Satelliten als Proxy
• Zentrale Konfiguration
Icinga 2 - Verteiltes Monitoring
www.netways.de
• Master
object Endpoint "master.tld" {
}
object Endpoint "satellite.tld" {
host = "x.x.x.x"
}
object Zone "dmz" {
endpoints = ["satellite.tld"]
parent = "master"
}
object Zone "master" {
endpoints = ["master.tld"]
}
Icinga 2 - Cluster-Konfiguration
• Satellite
object Endpoint "master.tld" {
host = "x.x.x.x"
}
object Endpoint "satellite.tld" {
}
object Zone "dmz" {
endpoints = ["satellite.tld"]
parent = "master"
}
object Zone "master" {
endpoints = ["master.tld"]
}
www.netways.de
Icinga 2 - Agenten-Konfiguration
• Agent
object Endpoint "agent.tld" {
}
object Endpoint "satellite.tld" {
host = "x.x.x.x"
}
object Zone "dmz" {
endpoints = ["satellite.tld"]
}
object Zone "agent.tld" {
endpoints = ["agent.tld"]
partent = "dmz"
}
• Konfiguration (Master)
object Endpoint "agent.tld" {
}
object Zone "agent.tld" {
endpoints = ["agent.tld"]
partent = "dmz"
}
object Host "agent.tld" {
import "generic-host"
address = "x.x.x.x"
}
www.netways.de
Icinga 2 - Cluster-Kommunikation
• Datenaustausch nur über Zonen
• Konfiguration vom Parent
• Checkresultate zum Parent
www.netways.de
• Installation
• Icinga 2
• Plugins
• Konfiguration
• Cluster-Anbindung
• Monitoring zentral auf Master
• Beziehen von Zertifikaten
Icinga 2 – Aufwand
www.netways.de
Automatisierung mit Puppet
www.netways.de
• Prozess zur Etablierung der Konfigurationen auf beliebigen Systemen
koordiniert angewendet und überprüft
• Einheitlich
• Reproduzierbar
• Effizient
• Nachvollziehbar
Konfigurationsmanagement
www.netways.de
Puppet - Workflow
SSL-Verschlüsselung
bei jedem
Datentransport
www.netways.de
• Puppet nutzt Facter um Daten über das Hostsystem zu sammeln
• Liste von Key-Value Paaren
Puppet - Facts
www.netways.de
• Resource – Einzelner Baustein
• Jede Resource hat einen type, einen title und einen Satz an Attributen mit Werten
• Main Resources: package, file, service, user, group, host, …
• Defined Resources: selbst definierte types, z.B. icinga2::object::host
• Dependencies: Reihenfolge festlegen zwischen einzelnen Resources
Puppet - DSL (Domain Specific Language)
www.netways.de
Puppet - deklarativ
www.netways.de
Puppet - RAL (Resource Abstraction Layer)
www.netways.de
• Definiert Abhängigkeiten zwischen
Resources auf unterschiedlichen Knoten
• Erfordert Feature „Stored Config“, d.h.
PuppetDB
• Virtuelle Deklaration auf Exporter,
Realisierung auf Collector
Puppet - Exported Resources
www.netways.de
• Klasse - Zusammenfassung von Resourcen
Puppet - Klassen
www.netways.de
• Trennung von Code und Daten (Hiera)
• Verschlüsselung sensibler Daten in Hiera (eyaml oder gpg)
• Versionskontrolle (z.B. git)
• Dynamische Environments für Staging (Branch = Code Stage, r10k)
• Konzept „Roles & Profiles“
Puppet - Best Practices
www.netways.de
Puppet - Roles & Profiles
www.netways.de
• Vorgegebene Struktur, die Klassen und Daten zusammenfasst
• „Auto loading“ von Klassen
• „File serving“ von Daten und Templates
• Erweiterungen von Puppet, z.B. eigene Facts, Funktionen, etc.
• Einfaches Teilen mit anderen
• Puppet Forge
• https://forge.puppet.com
Puppet - Module
www.netways.de
• Verzeichnisstruktur
Puppet - Module
www.netways.de
Icinga 2 Puppetmodul
www.netways.de
• Bezugsquellen
• https://github.com/icinga/puppet-icinga2
• https://forge.puppet.com/icinga/icinga2
• Dokumentation
• README.md
• Blogserie auf https://blog.netways.de
• Beispielverzeichnis ./examples im Modul
Bezugsquellen & Dokumentation
www.netways.de
Konzept
• Zentrale Konfiguration auf Icinga 2 Master
• Informationen befinden sich aber am Puppet Agent
• Konfiguration muss vom Puppet Agenten zum Icinga 2 Master
• Stored Configuration (PuppetDB)
• Installation/Konfiguration Icinga 2 Pakete
• Verbindung Satellit und Master
• Verbindung Agent und Master/Satellit
www.netways.de
Konfiguration Icinga 2 Master
• Feature MySQL IDO DB
www.netways.de
Konfiguration Icinga 2 Master
• API Feature und Zonen Konfiguration
www.netways.de
Live Demo I
www.netways.de
• Puppet Konfiguration
Konfiguration Host
www.netways.de
• Icinga 2 Konfiguration für Host „agent.example.org“
Konfiguration Host
www.netways.de
• Service „ping4“
Konfiguration Service
www.netways.de
• Entscheidet wann und was gequotet wird, Trennung durch Leerzeichen
• +, -, &&, ||, etc.
• attr => 'string1 + string2 – string3‚
• attr => '3 * (value1 - value2) / 2‚
• attr => 'function(param1, param2, ...)‚
• true, false
• Konstanten, z.B. NodeName, ZoneName
• alle Attribute und Custom Attribute
• Attribute aus anderem Kontext, z.B. host.address oder service.name
• Zahlen: 2.5, 2h, …

Abschalten des Parsers mit Prefix -:

Eigene Konfigurationsdateien als file-Resource mit Tag icinga2::config::file
Konfigurations-Parser
www.netways.de
Live Demo II
www.netways.de
Fragen und Antworten
www.netways.de
netways
netways
netways
www.netways.de
blog.netways.de
www.netways.org
Kontaktdaten

Weitere ähnliche Inhalte

Was ist angesagt?

Nagios Conference 2006 | Monitoring von Windows Systemen by Michael Wirtgen
Nagios Conference 2006 | Monitoring von Windows Systemen by Michael WirtgenNagios Conference 2006 | Monitoring von Windows Systemen by Michael Wirtgen
Nagios Conference 2006 | Monitoring von Windows Systemen by Michael Wirtgen
NETWAYS
 
German Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als CodeGerman Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als Code
Jan Gehring
 

Was ist angesagt? (16)

OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfOSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
 
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
 
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
 
Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)
Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)
Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)
 
Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)
Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)
Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)
 
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
 
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
 
Nagios Conference 2006 | Monitoring von Windows Systemen by Michael Wirtgen
Nagios Conference 2006 | Monitoring von Windows Systemen by Michael WirtgenNagios Conference 2006 | Monitoring von Windows Systemen by Michael Wirtgen
Nagios Conference 2006 | Monitoring von Windows Systemen by Michael Wirtgen
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 
German Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als CodeGerman Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als Code
 
AKCP SP2+: Die Neuheiten und Icinga 2 Integration (Webinar vom 27. April 2017)
AKCP SP2+: Die Neuheiten und Icinga 2 Integration (Webinar vom 27. April 2017)AKCP SP2+: Die Neuheiten und Icinga 2 Integration (Webinar vom 27. April 2017)
AKCP SP2+: Die Neuheiten und Icinga 2 Integration (Webinar vom 27. April 2017)
 
Webseiten mit Selenium testen
Webseiten mit Selenium testenWebseiten mit Selenium testen
Webseiten mit Selenium testen
 
NETWAYS NWS: Icinga 2 Satelliten integrieren (Webinar vom 20. Juni 2017)
NETWAYS NWS: Icinga 2 Satelliten integrieren (Webinar vom 20. Juni 2017)NETWAYS NWS: Icinga 2 Satelliten integrieren (Webinar vom 20. Juni 2017)
NETWAYS NWS: Icinga 2 Satelliten integrieren (Webinar vom 20. Juni 2017)
 
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit Rex
 

Ähnlich wie OSMC 2017 | Verteilte icinga 2 - Umgebungen realisieren und automatisieren mit Puppet by Lennart Betz and Janina Tritschler

Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortrag
Ramon Wartala
 
OSMC 2014 | Icinga Web 2 kann mehr by Thomas Gelf
OSMC 2014 | Icinga Web 2 kann mehr by Thomas GelfOSMC 2014 | Icinga Web 2 kann mehr by Thomas Gelf
OSMC 2014 | Icinga Web 2 kann mehr by Thomas Gelf
NETWAYS
 
Puppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und BasismodulePuppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und Basismodule
inovex GmbH
 

Ähnlich wie OSMC 2017 | Verteilte icinga 2 - Umgebungen realisieren und automatisieren mit Puppet by Lennart Betz and Janina Tritschler (20)

Icinga 2: Neues in 2.4 (Webinar vom 08. Dezember 2015)
Icinga 2: Neues in 2.4 (Webinar vom 08. Dezember 2015)Icinga 2: Neues in 2.4 (Webinar vom 08. Dezember 2015)
Icinga 2: Neues in 2.4 (Webinar vom 08. Dezember 2015)
 
Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)
Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)
Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)
 
Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)
Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)
Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)
 
CKAN by Friedrich Lindenberg
CKAN by Friedrich LindenbergCKAN by Friedrich Lindenberg
CKAN by Friedrich Lindenberg
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
 
openstack Übersicht @GPN15
openstack Übersicht @GPN15openstack Übersicht @GPN15
openstack Übersicht @GPN15
 
Icinga 2: Einrichten von Notifications (Webinar vom 21. Januar 2016)
Icinga 2: Einrichten von Notifications (Webinar vom 21. Januar 2016) Icinga 2: Einrichten von Notifications (Webinar vom 21. Januar 2016)
Icinga 2: Einrichten von Notifications (Webinar vom 21. Januar 2016)
 
2 blockchain use cases
2 blockchain use cases2 blockchain use cases
2 blockchain use cases
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortrag
 
Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)
Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)
Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)
 
Icinga 2: Vorteile und Nutzen eines Monitorings (Webinar vom 13. Mai 2016)
Icinga 2: Vorteile und Nutzen eines Monitorings (Webinar vom 13.  Mai 2016)Icinga 2: Vorteile und Nutzen eines Monitorings (Webinar vom 13.  Mai 2016)
Icinga 2: Vorteile und Nutzen eines Monitorings (Webinar vom 13. Mai 2016)
 
DACHNUG50 CNX3 Monitoring.pdf
DACHNUG50 CNX3 Monitoring.pdfDACHNUG50 CNX3 Monitoring.pdf
DACHNUG50 CNX3 Monitoring.pdf
 
openHAB @ rheinJUG Düsseldorf
openHAB @ rheinJUG DüsseldorfopenHAB @ rheinJUG Düsseldorf
openHAB @ rheinJUG Düsseldorf
 
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
OSMC 2014 | Icinga Web 2 kann mehr by Thomas Gelf
OSMC 2014 | Icinga Web 2 kann mehr by Thomas GelfOSMC 2014 | Icinga Web 2 kann mehr by Thomas Gelf
OSMC 2014 | Icinga Web 2 kann mehr by Thomas Gelf
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
Puppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und BasismodulePuppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und Basismodule
 
Azure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die CloudAzure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die Cloud
 

OSMC 2017 | Verteilte icinga 2 - Umgebungen realisieren und automatisieren mit Puppet by Lennart Betz and Janina Tritschler