WWW.ICINGA.ORG
LOADays - Antwerp
04/12/2015 Icinga - Open Source Monitoring
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Me
• Bernd Erk
• Working @NETWAYS
• Icinga Co-Founder
• Icinga responsibilities
– Project management
– Community
• In the Icinga game since 2009
• @gethash
• bernd.erk@icinga.org
THE ICINGA PROJECT
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
The Icinga Project – Introduction
#icinga
Open Source Enterprise Monitoring
Icinga is a scalable and extensible monitoring system
which checks the availability of your resources, notifies
users of outages and provides extensive BI data.
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Icinga Project – About us
• Originally forked from Nagios in April 2009
• Independent, redesigned version Icinga 2 since 2014
• Different teams with autonomic responsibilities
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Icinga Project - Icinga Exchange
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Icinga Project - Icinga Exchange - GitHub
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Icinga Project – Tools & Platform
Icinga Core
C-based source
MySQL, PostgreSQL, Oracle
Icinga Quality, Testing and Community Support
Website and Open Source Ticketing System
Icinga Reports
based on Jasper
Reports
Icinga Doc
based on
Markdown
3rd Party Tools
Icinga Web
based on PHP using ExtJS, Agavi MVC
IDOUTILS
Icinga Web 2
Based on PHP / responsive design
Icinga 2
C++-based source with
multiple components
IDO Livestatus Cluster …
ICINGA 2 - INTRODUCTION
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Host
Databases Network
Icinga 2 – What it does?
#icinga
Monitors
Apps
HardwareOS Storage
Host Switches Services
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – What it does?
#icinga
Alerts
Mail
SMS
Voice
Ticket
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – What it does?
#icinga
Reports
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 - Overview
• Based on C++ and Boost
– Supports all major *NIX and Windows platforms
• Powerful CLI
• Supports MySQL and PostgreSQL
• Includes a extensive template library
• Version 2.3 is out since early March
• Puppet, Chef and Ansible support
• Packages and Vagrant Box available now!
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Checker
Statusdat
Gelf
Perfdata Graphite
IDO
Compat
Livestatus
Icinga 2 - Architecture
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 - Demo
DEMO
ICINGA 2 - CONFIGURATION
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 - Configuration
• Different config format
• Won’t miss the old config!
• It is really time for change
• You will love it!
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – Configuration - 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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration – Assign service using apply
apply Service "ssh" {
import "generic-service”
check_command = "ssh”
assign where host.address && host.vars.os == "Linux”
}
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 – Configuration – Assign to Hostgroup in the old world
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members linux1,linux2,linux3
}
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 – Configuration – Assign to Hostgroup using apply
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)
}
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – Configuration – Another cool thing
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration - Conditionals
• Conditionals – Time dependent thresholds
object Service ”webservice" {
import "generic-service”
check_command = ”load”
host_name = “a really great server”
vars.load_wload1 = {{
if (get_time_period(“9to5”).is_inside) {
return 40
} else {
return 60
}
}}
}
ICINGA 2 - CLUSTER
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
CA Zones API
Icinga 2 - Cluster Overview
Cluster
#icinga
EXCHANGE. 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 of checks
• Integrated health check
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 - Cluster Distribution
Checker
Perfdata GELF
IDO
Open
TSDB
Graphite
Livestatus Checker
Statusdat
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 - Cluster Zones
IDO
Checker
Graphite
Livestatus Checker
Statusdat
Host Host
Host
#icinga
Checker
Perfdata IDO
ICINGA WEB 2
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga Web 2
• 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
– HTTP Auth
• Support for all standard backends
• Supports multiple backends simultaneously, as failover backend
• Responsive actions
• FAST!
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Backends Authentication Installer
Framework / Icinga PHP LibraryWeb 2
Icinga Web 2 - Foundation
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Web 2
Monitoring Docs
Icinga Web 2 - Modules
BP Graphite PNP
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga Web 2 - Demo
DEMO
THE COMMUNITY
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Community - Users
You?
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Community - Icinga Camps 2015
Antwerp 2015
April 13th
Portland 2015
October 10th
Antwerp 2015
April 13th
CONCLUSION
EXCHANGE. 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
#icinga
EXCHANGE. 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

Loadays 2015 - Enterprise Monitoring with Icinga

  • 1.
    WWW.ICINGA.ORG LOADays - Antwerp 04/12/2015Icinga - Open Source Monitoring
  • 2.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga Me • Bernd Erk • Working @NETWAYS • Icinga Co-Founder • Icinga responsibilities – Project management – Community • In the Icinga game since 2009 • @gethash • bernd.erk@icinga.org
  • 3.
  • 4.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG The Icinga Project – Introduction #icinga Open Source Enterprise Monitoring Icinga is a scalable and extensible monitoring system which checks the availability of your resources, notifies users of outages and provides extensive BI data.
  • 5.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga The Icinga Project – About us • Originally forked from Nagios in April 2009 • Independent, redesigned version Icinga 2 since 2014 • Different teams with autonomic responsibilities
  • 6.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga The Icinga Project - Icinga Exchange
  • 7.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga The Icinga Project - Icinga Exchange - GitHub
  • 8.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga The Icinga Project – Tools & Platform Icinga Core C-based source MySQL, PostgreSQL, Oracle Icinga Quality, Testing and Community Support Website and Open Source Ticketing System Icinga Reports based on Jasper Reports Icinga Doc based on Markdown 3rd Party Tools Icinga Web based on PHP using ExtJS, Agavi MVC IDOUTILS Icinga Web 2 Based on PHP / responsive design Icinga 2 C++-based source with multiple components IDO Livestatus Cluster …
  • 9.
    ICINGA 2 -INTRODUCTION
  • 10.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Host Databases Network Icinga 2 – What it does? #icinga Monitors Apps HardwareOS Storage Host Switches Services
  • 11.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Icinga 2 – What it does? #icinga Alerts Mail SMS Voice Ticket
  • 12.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Icinga 2 – What it does? #icinga Reports
  • 13.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga Icinga 2 - Overview • Based on C++ and Boost – Supports all major *NIX and Windows platforms • Powerful CLI • Supports MySQL and PostgreSQL • Includes a extensive template library • Version 2.3 is out since early March • Puppet, Chef and Ansible support • Packages and Vagrant Box available now!
  • 14.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Checker Statusdat Gelf Perfdata Graphite IDO Compat Livestatus Icinga 2 - Architecture #icinga
  • 15.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga Icinga 2 - Demo DEMO
  • 16.
    ICINGA 2 -CONFIGURATION
  • 17.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Icinga 2 - Configuration • Different config format • Won’t miss the old config! • It is really time for change • You will love it! #icinga
  • 18.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Icinga 2 – Configuration - 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
  • 19.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga Icinga 2 – Configuration – Assign service using apply apply Service "ssh" { import "generic-service” check_command = "ssh” assign where host.address && host.vars.os == "Linux” }
  • 20.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #osmc Icinga 2 – Configuration – Assign to Hostgroup in the old world define hostgroup{ hostgroup_name linux-servers alias Linux Servers members linux1,linux2,linux3 }
  • 21.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #osmc Icinga 2 – Configuration – Assign to Hostgroup using apply 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) }
  • 22.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Icinga 2 – Configuration – Another cool thing #icinga
  • 23.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga Icinga 2 – Configuration - Conditionals • Conditionals – Time dependent thresholds object Service ”webservice" { import "generic-service” check_command = ”load” host_name = “a really great server” vars.load_wload1 = {{ if (get_time_period(“9to5”).is_inside) { return 40 } else { return 60 } }} }
  • 24.
    ICINGA 2 -CLUSTER
  • 25.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG CA Zones API Icinga 2 - Cluster Overview Cluster #icinga
  • 26.
    EXCHANGE. 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 of checks • Integrated health check
  • 27.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Icinga 2 - Cluster Distribution Checker Perfdata GELF IDO Open TSDB Graphite Livestatus Checker Statusdat #icinga
  • 28.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Icinga 2 - Cluster Zones IDO Checker Graphite Livestatus Checker Statusdat Host Host Host #icinga Checker Perfdata IDO
  • 29.
  • 30.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga Icinga Web 2 • 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 – HTTP Auth • Support for all standard backends • Supports multiple backends simultaneously, as failover backend • Responsive actions • FAST!
  • 31.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Backends Authentication Installer Framework / Icinga PHP LibraryWeb 2 Icinga Web 2 - Foundation #icinga
  • 32.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG Web 2 Monitoring Docs Icinga Web 2 - Modules BP Graphite PNP #icinga
  • 33.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga Icinga Web 2 - Demo DEMO
  • 34.
  • 35.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga The Community - Users You?
  • 36.
    EXCHANGE. DEV. WIKI.BLOG. DOC. | WWW.ICINGA.ORG #icinga The Community - Icinga Camps 2015 Antwerp 2015 April 13th Portland 2015 October 10th Antwerp 2015 April 13th
  • 37.
  • 38.
    EXCHANGE. 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 #icinga
  • 39.
    EXCHANGE. 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