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 responsibilities • Core 1.x & 2.x Developer • Release Manager • On the team since 2009 #icinga
Agenda EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Icinga Project • Icinga 1.x • Icinga 2 • Icinga Web 2 • Demo • Conclusion & Vision #icinga
THE ICINGA PROJECT
The Icinga Project – Introduction EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 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 EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Originally forked from Nagios in April 2009 • Independent, redesigned version Icinga 2 since 2014 • Different teams with autonomic responsibilities #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 EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Icinga Quality, Testing and Community Support Website and Open Source Ticketing System Icinga 2 Icinga Core 1.x Icinga Doc Icinga Reports based on based on Jasper C++-based source with C-based source Markdown Reports multiple components MySQL, PostgreSQL, Oracle … IDOUTILS IDO Livestatus Cluster Icinga Web 2 Based on PHP / responsive design 3 rd Party Tools Icinga Web 1.x based on PHP using ExtJS, Agavi MVC #icinga
ICINGA 1
Icinga 1 - Overview EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Original fork from Nagios 3.2.0 • Improved Core, intergrated IDOUtils DB backend • Enhanced Classic UI & new Icinga Web 1.x • Stable version: 1.13.1 (5.4.2015) • 38 releases until today • We’ll keep it in maintenance! #icinga
Icinga 1 – Changes 2014/2015 EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Core – Usability, security & performance fixes – Recurring downtimes script • Classic UI – Enhanced filters for modified by attributes – Support for compressed logfiles • Icinga Web 1 – Rewritten session handling – Custom variables in grids #icinga
ICINGA 2 - INTRODUCTION
Icinga 2 – Use cases EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Monitors Host Switches Services OS Storage Host Hardware Apps Databases Network #icinga
Icinga 2 – Use cases EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Alerts Mail SMS Voice Ticket #icinga
Icinga 2 – Use cases EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Reports #icinga
Icinga 2 - Overview EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Stable Version: 2.3.3 (26.3.2015) • Next major version: 2.4.0 (Q4 2015) • Supports all major distributions • Puppet, Chef and Ansible support • Packages and Vagrant Box available now! https://dev.icinga.org/projects/i2/roadmap #icinga
Icinga 2 - Overview EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Powerful CLI • MySQL & PostgreSQL support • New configuration format • Includes a extensive template library • Compatible with plugins, addons, UIs #icinga
Icinga 2 – Vagrant EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG #icinga
Icinga 2 - Architecture EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Perfdata Graphite Livestatus Notify Compat Checker Gelf IDO #icinga
Icinga 2 - Enable Livestatus EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Livestatus #icinga
ICINGA 2 - CLUSTER
Icinga 2 - Cluster Overview EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Cluster CA Zones API #icinga
Icinga 2 - Cluster Architecture EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • 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 #osmc
Icinga 2 - Cluster Distribution EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG IDO Graphite Perfdata GELF Open TSDB Checker Statusdat Livestatus Checker #icinga
Icinga 2 - Cluster Zones EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG IDO Graphite Perfdata IDO Checker Checker Host Statusdat Host Host Livestatus Checker #icinga
Icinga 2 – Resource optimization EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 30.000 Services 3000 800 700 Cycles in millions 2500 Megabyte 600 2000 500 1500 400 300 1000 200 500 100 0 0 CPU-Cycles Memory #icinga
ICINGA 2 - CONFIGURATION
Icinga 2 - Configuration EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • New configuration format • Won’t miss the old config syntax! • It is really time for change • You will love it! #icinga
Icinga 2 – Configuration: Syntax Highlighting EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Use 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 EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Use ‘icinga2 console’ to test values, functions, etc! • https://www.icinga.org/resources/live-console/ • Install rlwrap # yum install rlwrap # rlwrap icinga2 console #icinga
Icinga 2 – Configuration: Value Types EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Get to know all the value types! #icinga
Icinga 2 – Configuration: Constants EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • PluginDir, MysqlPassword, SnmpCommunity , … #icinga
Icinga 2 – Configuration: Templates EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Templates for generic attributes #icinga
Icinga 2 – Configuration: Custom Attributes EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Numbers, Strings, Booleans, Arrays, Dictionaries • Filters, Match Conditions, additional information #icinga
Icinga 2 – Configuration: Commands EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Optional/conditional arguments, functions, default values #icinga
Icinga 2 – Hosts and Services EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Checkable objects and attributes #icinga
Icinga 2 – Configuration: Apply Services EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Match on (custom) attributes, names (assign) • Exclude objects (ignore) #icinga
Icinga 2 – Configuration: Apply For EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • For loops over arrays/dictionaries #icinga
Icinga 2 – Configuration: Notifications EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Dynamic notification rules #icinga
Icinga 2 – Configuration: Dependencies EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Host-on-Service, Service-on-Host, Classic Icinga 2 HOST router Reachable? SERVICE router-uplink HOST website-server #icinga
Icinga 2 – Configuration: Conditionals EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • If-then-else #icinga
Icinga 2 – Configuration: Loops EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • While, for and break/continue #icinga
Icinga 2 – Configuration: Type methods & Object Accessors EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Array#sort, Dictionary#contains, String#find , … • http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/language-reference#language-reference • http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/library-reference#library-reference • Object accessors – get_host(), get_service(), etc – Access config and runtime attributes – e.g. get_host(NodeName).state #icinga
Icinga 2 – Configuration: Functions EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Use pre-defined or your own – r egex(), match(), … • Custom attributes, command, argument values #icinga
Icinga 2 – Configuration – Another cool thing EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG #icinga
Icinga 2 – Configuration – Time dependent thresholds EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Time dependent thresholds #icinga
ICINGA 2 - MIGRATION
Recommend
More recommend