Upload
netways
View
3.198
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Icinga 2 ist eine vollständige Neuentwicklung der beliebten Open Source Monitoring Lösung Icinga, welche ebenfalls vollständig als Open Source Software erhältlich ist. Ziel dieses Webinares war es, einen Überblick über die Konfigurationsunterschiede zu vermitteln und Wege aufzuzeigen, wie eine Migration aussehen kann. Webinar: http://www.netways.de/de/webinare/archiv/icinga_2/#icinga2_migration_von_nagios_oder_icinga YouTube: https://www.youtube.com/watch?v=UGaO0k96ZJc
Citation preview
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