2. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Me
• Bernd Erk
• Working @NETWAYS
• Icinga responsibilities
– Project management
– Community
• In the Icinga game since 2009
• @gethash
• bernd.erk@icinga.org
8. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Community - Users
You?
9. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
The Community - Icinga Camp San Francisco
#icinga
10. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Community - Icinga Camps 2015
Barcelona 2015
February 27th
Antwerp 2015
April 13rd
Kuala Lumpur 2015
April 24th
Portland 2015
October 10th
11. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Community - Icinga Exchange
12. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Community - Icinga Exchange - GitHub
17. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
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!
18. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
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/>
21. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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!
#icinga
22. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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 ...
}
#icinga
23. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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“
}
#icinga
24. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 - Assign to Hostgroup in the old world
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members linux1,linux2,linux3
}
#icinga
25. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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)
}
#icinga
26. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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)
}
#icinga
27. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – Some cool new things
#icinga
28. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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
}
#icinga
33. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
CA Zones API
Icinga 2 - Cluster Overview
Cluster
#icinga
34. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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
#icinga
43. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
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!
#icinga
49. 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
#icinga
55. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
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
Notas do Editor
Session-handling: 20% performance
ExtJS framework: Internet Explorer