www.netways.de // blog.netways.de // @netways
We love Open Source
WEBINAR | 02.09.2014
ICINGA 2: MIGRATION VONNAGIOS / ICINGA 1.X LEICHT GEMACHT
MICHAEL FRIEDRICH | CHRISTIAN STEIN | NETWAYS
GMBH
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 Im Icinga Team seit Mai 2009 Icinga Core & Icinga 2 Developer
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
■ Migration
■ Live Demo
■ Icinga 2 Webinare
■ Zusammenfassung
■ Fragen und Antworten
www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG NETWAYS
www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG NETWAYS
■ Firmengründung 1995
■ Open Source seit 1997
■ Aktuell 40 Mitarbeiter
■ Spezialisierung in den Bereichen
Open Source Systems Management
und Open Source Datacenter
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
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS PRODUKTE
GRAPHITE
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS TECHNOLOGIEN
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
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
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
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS SCHULUNGEN – MONITORING UND REPORTING
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS SCHULUNGEN – PUPPET KONFIGURATIONSMANAGEMENT
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS KUNDEN – CONSULTING (AUSZUG)
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS KUNDEN – HOSTING (AUSZUG)
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
www.netways.de // blog.netways.de // @netways
We love Open Source
WAS IST ICINGA 2
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2.X: ALLGEMEINES
■ Stabile Version: 2.1.0 (29.8.2014)
■ Linux-Server Daemon
■ Läuft auf allen aktuellen Distributionen
■ Datenbankunterstützung: MySQL und PostgreSQL
Quelle: www.icinga.org
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 DB IDO Livestatus Schnittstelle Cluster
■ Direkte Anbindung von Graphite
■ Einfach skalierbar über zusätzliche Nodes
■ Automatisches Load-Balancing von Checks und Notifications
■ SSL-Verschlüsselung zwischen allen Icinga 2 Instanzen
■ Nagios/Icinga Check-Plugins 100% kompatibel
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2.X CLUSTER
■ Cluster mit Replikation, Konfigurations-Sync &
Hochverfügbarkeit
■ Sichere Kommunikation zwischen den Instanzen (SSL
x509)
■ Lastverteilung von Checks und Notifizierungen
Quelle: www.icinga.org
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
www.netways.de // blog.netways.de // @netways
We love Open Source
UNTERSCHIEDE ZU ICINGA 1.X UND NAGIOS
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
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.7
■ Livestatus Protokoll mit Unixsocket (zus. TCP)
■ Status.dat/objects.cache/icinga.log
■ Performancedaten
■ Externe Command Pipe
■ Checkresult Spool Reader (z.B. LConfSlaveSync)
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2: MIGRATION
■ Vorbereitung Inventur der bestehenden Umgebung Wie wird die Konfiguration erstellt (händisch, generiert, etc)
■ Entscheidung notwendig „magische“ Migration durch Scripts und Tools Neu-Aufbau anhand der neuen Möglichkeiten mit Icinga 2
Regeln
■ Best Practice Hosts und Hostgruppen mit Services Notifizierungsregeln anhand bestehender Kontakte und
Typen Abhängigkeiten überarbeiten Commands und Argumente neu „erfinden“
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2 MIGRATION: 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
}
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2 MIGRATION: 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"
}
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 service {
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
}
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2 MIGRATION: NOTIFIZIERUNGEN 1/2
define contact {
contact_name testconfig-user
use generic-user
alias Icinga Test User
service_notification_options c,f,s,u
email icinga@localhost
service_notification_commands notify-service-by-mail
host_notification_commands notify-host-by-mail
}
define contactgroup {
contactgroup_name cg_admin
members testconfig-user
}
define service {
use generic-service
host_name my-server
service_description my-ping
check_command my-ping-check!100.0,20%!500.0,60%
notification_options c,w
notification_interval 10
notification_period 8x5
contact_groups cg_admin
}
define host{
use linux-server-template
host_name my-server
address 192.168.1.10
notification_options d
notification_interval 120
notification_period 8x5
contact_groups cg_admin
}
define host{
use linux-server-template
host_name my-server
address 192.168.1.10
notification_options d
notification_interval 120
notification_period 8x5
contact_groups cg_admin
}
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2 MIGRATION: NOTIFIZIERUNGEN 2/2
object User "testconfig-user" {
import "generic-user"
display_name = "Icinga Test User"
states = [ Critical, Unknown, Ok ]
types = [ Problem, Recovery, DowntimeStart,
DowntimeEnd, DowntimeRemoved, FlappingStart, FlappingEnd]
email = "icinga@localhost"
}
object UserGroup "cg_admin" {
assign where user.name == "testconfig-user"
}
object Host "my-server" {
import "linux-server-template"
address = "192.168.1.10"
}
object Service "my-ping" {
import "generic-service"
check_command = "my-ping-check"
vars.ping_wrta = 100
vars.ping_wpl = 20
vars.ping_crta = 500
vars.ping_cpl = 60
}
apply Notification "service-by-mail" to Service {
command = "notify-service-by-mail"
interval = 10m
period = "8x5"
types = [ Problem, Recovery, Up ]
states = [ Warning, Critical ]
user_groups = [ "cg_admin" ]
assign where host.name == "my-server" && service.name ==
"my-ping"
}
apply Notification "host-by-mail" to Host {
command = "notify-host-by-mail"
interval = 120m
period = "8x5"
types = [ Problem, Recovery ]
states = [ Down, Up ]
user_groups = [ "cg_admin" ]
assign where host.name == "my-server"
}
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2 MIGRATION: ABHÄNGIGKEITEN
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"
}
www.netways.de // blog.netways.de // @netways
We love Open Source
LIVE DEMO
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2 WEBINARE
www.netways.de // blog.netways.de // @netways
We love Open Source
ICINGA 2: KOMMENDE WEBINARE
■ Icinga 2: Integration von Graphite 25. September 2014 - 10:30 Uhr Markus Frosch und Christian Stein
■ Icinga 2: Integrierte Hochverfügbarkeit 07. Oktober 2014 – 14:00 Uhr Michael Friedrich und Christian Stein
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
KONTAKTDATEN
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: [email protected]
Website: www.netways.de
Twitter: twitter.com/netways
Facebook:
facebook.com/netways
Blog: blog.netways.de
Top Related