Seit der ersten Preview auf der OSMC 2012 ist viel passiert und Icinga 2 ist seit einigen Monaten fertig. Neben verbesserter Performance und flexibler Architektur und zentrales und dezentrales Cluster, zeichnet sich Icinga 2 vor allem durch vereinfachte Konfiguration aus. Auch bei Icinga 1 sowie bei den verschiedenen Add-ons und Webinterfaces hat sich viel getan. Highlight des Vortrags wird die Vorstellung des neuen Webinterfaces Icinga Web 2. Neben einem aktuellen Status gibt der Vortrag einen Überblick über die kommenden Entwicklungen und zeigt die aktuellen Versionen in Live Demos.
7. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Users
You?
8. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Website
9. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Expansion
0
20000
40000
60000
80000
100000
120000
IN UK US DE
Unique sessions - January till November in given year
2010
2013
2014
10. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Icinga Camp San Francisco
11. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Icinga Camps 2015
Barcelona 2015
February 27th
New York 2015
June / July
Kuala Lumpur 2015
Summer
Portland 2015
October 10th
12. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Icinga Exchange
13. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Icinga Exchange - GitHub
18. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Overview
• Based on C++ and Boost
– Supports all major *NIX and Windows platforms
• Included cluster stack
• Powerful CLI
• Supports multiple backends
– MySQL
– PostgreSQL
• Livestatus support included
• Packages and Vagrant Box available now!
23. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - CLI - Overview
# icinga2
icinga2 - The Icinga 2 network monitoring daemon (version: v2.2)
Usage:
icinga2 <command> [<arguments>]
Supported commands:
* daemon (starts Icinga 2)
* feature …
* node …
* object list (lists all objects)
* pki …
* repository …
* variable get (gets a variable)
* variable list (lists all variables)
Global options:
-h [ --help ] show this help message
-V [ --version ] show version information
--color use VT100 color codes even when stdout is not a
terminal
-D [ --define ] arg define a constant
-l [ --library ] arg load a library
-I [ --include ] arg add include search directory
-x [ --log-level ] arg specify the log level for the console log
Command options:
Report bugs at <https://dev.icinga.org/>
Icinga home page: <http://www.icinga.org/>
28. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Configuration
• Different config format
– there is a conversion script!
– but you won’t miss the old config!
• It is really time for change
• Could be that you hate it now, but you’ll love it later!
• See it in action!
29. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Assign a service to multiple hosts in the old world
define service{
host_name linux1,linux2,linux3,...,linux9
service_description ssh-check
other service directives ...
}
30. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Assign a service to multiple hosts in the new world
apply Service "ssh" {
import "generic-service"
check_command = "ssh“
assign where host.address && host.vars.os == "Linux“
}
31. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Assign to Hostgroup in the old world
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members linux1,linux2,linux3
}
32. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Assign to Hostgroup in the new world
object Host “mysql-server1" {
address = "10.0.0.1“
check_command = "hostalive“
}
object HostGroup "mysql-server" {
display_name = "MySQL Server"
assign where match("*mysql*", host.name)
}
33. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Assign to Hostgroup in the extended new world
object Host “mysql-server1" {
address = "10.0.0.1“
check_command = "hostalive“
vars.test_server = true
}
object Host “mysql-server2" {
address = "10.0.0.1“
check_command = "hostalive“
}
object HostGroup "mysql-server" {
display_name = "MySQL Server"
assign where match("*mysql*", host.name)
ignore where host.vars.test_server
ignore where match("*internal", host.name)
}
34. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - One more thing
35. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Working with arrays
object Host "localhost" {
check_command = "hostalive“
address = "127.0.0.1"
vars.http_vhosts["http"] = {
http_uri = "/“
}
vars.http_vhosts["Icinga Web 2"] = {
http_uri = "/icingaweb“
}
}
apply Service for (http_vhost => config in host.vars.http_vhosts) {
check_command = "http“
vars += config
assign where host.vars.http_vhosts
}
37. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
CA Zones API
#osmc
Icinga 2 - Cluster Overview
Cluster
38. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Cluster Architecture
• API communication using SSL
• Bidirectional connections supported
• Zone support for logic splits in the configuration
• Hash-based load distribution
• “binlog” like retention for monitoring events and messages
• Distributed components throughout the cluster
• Automatic redistribution
• Integrated health check
52. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga Web 2 - Introduction
• Lightweight like Icinga classic and flexible like Icinga Web
• Easy to extend and embed into other projects
• Support for multiple authentication providers
– Internal DB
– LDAP
• Support for multiple backends
– Database
– Livestatus
• Supports Icinga 1.x and Icinga 2.x
• Responsive layout
• FAST!
53. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Backends Authentication Installer
Framework / IcingWa PeHbP 2 L ibrary
#osmc
Icinga Web 2 - Foundation
54. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Web 2
Monitoring Docs
#osmc
Icinga Web 2 - Modules
BP Graphite PNP
58. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga Roadmap
• Icinga 2
– Integrate with more third party tools
– API for everything
• Icinga Web 2
– Configuration frontend
– Provide more and more modules
– Health status for core and cluster
• Improve and get better
60. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Conclusion
• Download Icinga 2
– Use the packages
– Play with Vagrant and VirtualBox
– You can download the sources but we prefer the packages
• Rethink you configuration
– You can use the migration, but it is time for a change
• Install Icinga Web 2 and play with it
• Give us feedback
– dev.icinga.org
– IRC
– Twitter
• Enjoy the evening event!
61. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Questions & Answers
Web www.icinga.org
Git git.icinga.org
Development dev.icinga.org
Wiki wiki.icinga.org
Support support.icinga.org
Twitter twitter.com/icinga
Facebook facebook.com/icinga Get support
Get involved
Get heard