OSMC 2014: Current state of Icinga | Icinga Team
description
Transcript of OSMC 2014: Current state of Icinga | Icinga Team
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