Upload
netways
View
378
Download
2
Embed Size (px)
DESCRIPTION
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.
Citation preview
WWW.ICINGA.ORG
Open Source Monitoring
Conference – 11/19/2014 State of Icinga
ABOUT US
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
About us - People
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
About us - Teams
Team Core
Team Web
Team Packages & Tools
Team Community
Team Q&A & Docs
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
About us - Activity
#osmc
30 Day Summary
• Commits: 662
• Contributers: 16
12 Month Summary
• Commits: 5814
• Contributers: 71
THE COMMUNITY
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Users
You?
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Website
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
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Icinga Camp San Francisco
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
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Icinga Exchange
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
The Community - Icinga Exchange - GitHub
ICINGA 1
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 1 - Changes
• Core
– Usability and security fixes
– Various IDO fixes for enhanced performance
• ClassicUI
– Improved downtime and comments view
– Enhanced filters for modified by attributes
– Support for compressed logfiles
• Icinga Web 1
– Rewritten session handling
– Updated ExtJS framework
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 1 - Overview
• 35 releases until today
• We’ll keep it in maintenance!
ICINGA 2 - INTRODUCTION
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!
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Install from source
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Install from source
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Install packages
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Install packages
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/>
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - CLI - Demo
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Checker
Statusdat
Gelf
Perfdata Graphite
IDO
Compat
Livestatus
#osmc
Icinga 2 - Architecture
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Livestatus
#osmc
Icinga 2 - Enable Livestatus
ICINGA 2 - CONFIGURATION
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!
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 ...
}
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“
}
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
}
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)
}
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)
}
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - One more thing
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 }
ICINGA 2 - CLUSTER
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
CA Zones API
#osmc
Icinga 2 - Cluster Overview
Cluster
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
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Cluster Distribution
Checker
Perfdata IDO
IDO
Checker
Graphite
Livestatus Checker
Statusdat
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Cluster Zones
Checker
Perfdata IDO
IDO
Checker
Graphite
Livestatus Checker
Statusdat
Host Host
Host
Checker
Perfdata IDO
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Master setup
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Master setup - State
ICINGA 2 – REMOTE MONITORING
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Remote nodes
• Challenges in remote monitoring
– Configuration format
– Different software stack and libraries
– Various platforms
– Deployment and configuration
– Used resources
– Insecure
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 – Core resources
0
100
200
300
400
500
600
700
800
0
500
1000
1500
2000
2500
3000
30.000 Services
CPU-Cycles Memory
Megabyte
Cycle
s in m
illio
ns
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Remote nodes
Checker
Perfdata IDO
Host
Checker
Perfdata IDO
Host Host
IDO
Checker
Graphite
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Remote node setup I
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Remote node setup II
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 - Remote node setup III
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Demo
#osmc
Icinga 2 - Remote Client
ICINGA WEB 2
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!
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Backends Authentication Installer
Framework / Icinga PHP Library Web 2
#osmc
Icinga Web 2 - Foundation
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Web 2
Monitoring Docs
#osmc
Icinga Web 2 - Modules
BP Graphite PNP
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga Web 2 - Installer
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Demo
#osmc
Icinga Web 2 - Demo
ROADMAP
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
CONCLUSION
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
• Enjoy the evening event!
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