WWW.ICINGA.ORG SIG-NOC Meeting - Stuttgart 04/08/2015
Icinga - Open Source Monitoring
Icinga - Open Source Monitoring 04/08/2015 WWW.ICINGA.ORG Me - - PowerPoint PPT Presentation
SIG-NOC Meeting - Stuttgart Icinga - Open Source Monitoring 04/08/2015 WWW.ICINGA.ORG Me EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Michael Friedrich @dnsmichi, 31, Austrian Application Developer @NETWAYS Icinga
WWW.ICINGA.ORG SIG-NOC Meeting - Stuttgart 04/08/2015
Icinga - Open Source Monitoring
#icinga
Me
#icinga
Agenda
THE ICINGA PROJECT
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.
#icinga
The Icinga Project – About us
#icinga
The Icinga Project - Icinga Exchange
#icinga
The Icinga Project - Icinga Exchange - GitHub
#icinga
The Icinga Project – Tools & Platform Icinga Core 1.x
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 1.x
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 1
#icinga
Icinga 1 - Overview
#icinga
Icinga 1 – Changes 2014/2015
– Usability, security & performance fixes – Recurring downtimes script
– Enhanced filters for modified by attributes – Support for compressed logfiles
– Rewritten session handling – Custom variables in grids
ICINGA 2 - INTRODUCTION
Host Databases Network
Icinga 2 – Use cases
#icinga
Monitors
Apps Hardware OS Storage Host Switches Services
Icinga 2 – Use cases
#icinga
Alerts
Mail SMS Voice Ticket
Icinga 2 – Use cases
#icinga
Reports
#icinga
Icinga 2 - Overview
https://dev.icinga.org/projects/i2/roadmap
#icinga
Icinga 2 - Overview
#icinga
Icinga 2 – Vagrant
Checker Notify Gelf Perfdata Graphite IDO Compat Livestatus Icinga 2 - Architecture
#icinga
Livestatus
Icinga 2 - Enable Livestatus
#icinga
ICINGA 2 - CLUSTER
CA Zones API Icinga 2 - Cluster Overview
Cluster
#icinga
#osmc
Icinga 2 - Cluster Architecture
Icinga 2 - Cluster Distribution
Checker Perfdata GELF IDO Open TSDB Graphite
Livestatus
Checker
Statusdat
#icinga
Icinga 2 - Cluster Zones
IDO Checker Graphite
Livestatus
Checker
Statusdat
Host Host Host#icinga
Checker Perfdata IDO
Icinga 2 – Resource optimization
100 200 300 400 500 600 700 800 500 1000 1500 2000 2500 3000
30.000 Services
CPU-Cycles Memory Megabyte Cycles in millions
#icinga
ICINGA 2 - CONFIGURATION
Icinga 2 - Configuration
#icinga
#icinga
Icinga 2 – Configuration: Syntax Highlighting
# cd /usr/share/doc/icinga2-common*/syntax # PREFIX=~/.vim # mkdir –p $PREFIX/{syntax,ftdetect} # cp vim/syntax/icinga2.vim $PREFIX/syntax/ # cp vim ftdetect/icinga2.vim $PREFIX/ftdetect/ # vim /etc/icinga2/icinga2.conf
#icinga
Icinga 2 – Configuration: Console
# yum install rlwrap # rlwrap icinga2 console
#icinga
Icinga 2 – Configuration: Value Types
#icinga
Icinga 2 – Configuration: Constants
#icinga
Icinga 2 – Configuration: Templates
#icinga
Icinga 2 – Configuration: Custom Attributes
#icinga
Icinga 2 – Configuration: Commands
#icinga
Icinga 2 – Hosts and Services
#icinga
Icinga 2 – Configuration: Apply Services
#icinga
Icinga 2 – Configuration: Apply For
#icinga
Icinga 2 – Configuration: Notifications
#icinga
Icinga 2 – Configuration: Dependencies
HOST router SERVICE router-uplink Icinga 2 HOST website-server Reachable?
#icinga
Icinga 2 – Configuration: Conditionals
#icinga
Icinga 2 – Configuration: Loops
#icinga
Icinga 2 – Configuration: Type methods & Object Accessors
– get_host(), get_service(), etc – Access config and runtime attributes – e.g. get_host(NodeName).state
#icinga
Icinga 2 – Configuration: Functions
– regex(), match(), …
Icinga 2 – Configuration – Another cool thing
#icinga
#icinga
Icinga 2 – Configuration – Time dependent thresholds
ICINGA 2 - MIGRATION
Icinga 2 - Migration
http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/migration#migration
#icinga
Icinga 2 – Migration: Assign service to hosts in Icinga 1.x define service{ host_name linux1,linux2,linux3,...,linux9 service_description ssh-check
}
#icinga
#icinga
Icinga 2 – Migration: Apply service to hosts in Icinga 2 apply Service "ssh" { import "generic-service” check_command = "ssh” assign where host.address && host.vars.os == "Linux” }
#osmc
Icinga 2 – Migration – Assign members to Hostgroup in Icinga 1.x define hostgroup{ hostgroup_name linux-servers alias Linux Servers members linux1,linux2,linux3 }
#osmc
Icinga 2 – Migration – Assign members to Hostgroup in Icinga 1.x
address = "10.0.0.1“ check_command = "hostalive“ }
display_name = "MySQL Server“ assign where match("*mysql*", host.name) }
ICINGA WEB 2
#icinga
Icinga Web 2 - Motivation: Classic UI
– Authorization based on contacts - not enough for enterprise needs
#icinga
Icinga Web 2 – Motivation: Icinga Web 1.x
#icinga
Icinga Web 2: Key features
– Internal DB – LDAP – HTTP Auth
#icinga
Icinga Web 2 - Overview
https://dev.icinga.org/projects/icingaweb2/roadmap
Backends Authentication Setup Wizard
Framework / Icinga PHP Library
Web 2
Icinga Web 2 - Foundation
#icinga
Web 2
Monitoring Docs Icinga Web 2 - Modules Business Process Graphite PNP
#icinga
Icinga Web 2 - Dashboard
#icinga
Icinga Web 2 – Detail View
#icinga
Icinga Web 2 – Event Grid
#icinga
Icinga Web 2 – Service Grid
#icinga
#icinga
Icinga Web 2: CLI
#icinga
Icinga Web 2: Responsiveness
Icinga Web 2 – Modules: PNP
#icinga
Icinga Web 2 – Modules: Business Processes
#icinga
Icinga Web 2 – Modules: Ticketsystems
#icinga
#icinga
Icinga Web 2 – Modules: More, more, more
– PNP (Graphing) – Business Process – Generic TTS (Ticket System Intergration)
– Graphite (Graphing) – Logstash as History Detail – …
#icinga
Icinga Web 2 – Modules: Prototypes
#icinga
Icinga 2 - Demo
#icinga
Icinga 2 – Demo
Get VirtualBox >= 4.2.16 && Vagrant >= 1.6.5 $ git clone --recursive https://github.com/Icinga/icinga-vagrant.git $ cd icinga-vagrant $ cd icinga2x-cluster $ vagrant up $ vagrant ssh icinga2a $ vagrant ssh icinga2b $> sudo –i http://192.168.33.10 & http://192.168.33.20
THE COMMUNITY
#icinga
The Community - Users
#icinga
The Community - Icinga Camps 2015
Kuala Lumpur 2015
June 9th
Portland 2015
October 10th
Antwerp 2015
April 13th
CONCLUSION
Conclusion
– Use packages – Play with Vagrant and VirtualBox
– Follow extensive migration docs, it is time for a change!
– dev.icinga.org – IRC – Twitter
#icinga
VISION
Vision
#icinga
#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