www.netways.de // blog.netways.de // @netways
We love Open Source
WEBINAR | 02.09.2014
ICINGA 2: MIGRATION VON
NAGIOS / 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{
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: info@netways.de
Website: www.netways.de
Twitter: twitter.com/netways
Facebook: facebook.com/netways
Blog: blog.netways.de

Icinga 2: Migration von Nagios oder Icinga 1.x leicht gemacht (Webinar 02.09.2014)

  • 1.
    www.netways.de // blog.netways.de// @netways We love Open Source WEBINAR | 02.09.2014 ICINGA 2: MIGRATION VON NAGIOS / ICINGA 1.X LEICHT GEMACHT 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  Im Icinga Team seit Mai 2009  Icinga Core & Icinga 2 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 ■ Migration ■ Live Demo ■ Icinga 2 Webinare ■ Zusammenfassung ■ Fragen und Antworten
  • 4.
    www.netways.de // blog.netways.de// @netways We love Open Source VORSTELLUNG NETWAYS
  • 5.
    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
  • 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
  • 7.
    www.netways.de // blog.netways.de// @netways We love Open Source NETWAYS PRODUKTE GRAPHITE
  • 8.
    www.netways.de // blog.netways.de// @netways We love Open Source NETWAYS TECHNOLOGIEN
  • 9.
    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
  • 10.
    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
  • 11.
    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
  • 12.
    www.netways.de // blog.netways.de// @netways We love Open Source NETWAYS SCHULUNGEN – MONITORING UND REPORTING
  • 13.
    www.netways.de // blog.netways.de// @netways We love Open Source NETWAYS SCHULUNGEN – PUPPET KONFIGURATIONSMANAGEMENT
  • 14.
    www.netways.de // blog.netways.de// @netways We love Open Source NETWAYS KUNDEN – CONSULTING (AUSZUG)
  • 15.
    www.netways.de // blog.netways.de// @netways We love Open Source NETWAYS KUNDEN – HOSTING (AUSZUG)
  • 16.
    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 WAS IST ICINGA 2
  • 18.
    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
  • 19.
    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
  • 20.
    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
  • 21.
    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
  • 22.
    www.netways.de // blog.netways.de// @netways We love Open Source UNTERSCHIEDE ZU ICINGA 1.X UND NAGIOS
  • 23.
    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
  • 24.
    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)
  • 25.
    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“
  • 26.
    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 }
  • 27.
    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" }
  • 28.
    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 }
  • 29.
    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{ 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 }
  • 30.
    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" }
  • 31.
    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" }
  • 32.
    www.netways.de // blog.netways.de// @netways We love Open Source LIVE DEMO
  • 33.
    www.netways.de // blog.netways.de// @netways We love Open Source ICINGA 2 WEBINARE
  • 34.
    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
  • 35.
    www.netways.de // blog.netways.de// @netways We love Open Source FRAGEN UND ANTWORTEN
  • 36.
    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: info@netways.de Website: www.netways.de Twitter: twitter.com/netways Facebook: facebook.com/netways Blog: blog.netways.de