icinga open source monitoring
play

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


  1. SIG-NOC Meeting - Stuttgart Icinga - Open Source Monitoring 04/08/2015 WWW.ICINGA.ORG

  2. 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

  3. Agenda EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Icinga Project • Icinga 1.x • Icinga 2 • Icinga Web 2 • Demo • Conclusion & Vision #icinga

  4. THE ICINGA PROJECT

  5. 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

  6. 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

  7. The Icinga Project - Icinga Exchange EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG #icinga

  8. The Icinga Project - Icinga Exchange - GitHub EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG #icinga

  9. 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

  10. ICINGA 1

  11. 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

  12. 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

  13. ICINGA 2 - INTRODUCTION

  14. Icinga 2 – Use cases EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Monitors Host Switches Services OS Storage Host Hardware Apps Databases Network #icinga

  15. Icinga 2 – Use cases EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Alerts Mail SMS Voice Ticket #icinga

  16. Icinga 2 – Use cases EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Reports #icinga

  17. 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

  18. 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

  19. Icinga 2 – Vagrant EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG #icinga

  20. Icinga 2 - Architecture EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Perfdata Graphite Livestatus Notify Compat Checker Gelf IDO #icinga

  21. Icinga 2 - Enable Livestatus EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Livestatus #icinga

  22. ICINGA 2 - CLUSTER

  23. Icinga 2 - Cluster Overview EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG Cluster CA Zones API #icinga

  24. 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

  25. Icinga 2 - Cluster Distribution EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG IDO Graphite Perfdata GELF Open TSDB Checker Statusdat Livestatus Checker #icinga

  26. 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

  27. 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

  28. ICINGA 2 - CONFIGURATION

  29. 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

  30. 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

  31. 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

  32. Icinga 2 – Configuration: Value Types EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Get to know all the value types! #icinga

  33. Icinga 2 – Configuration: Constants EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • PluginDir, MysqlPassword, SnmpCommunity , … #icinga

  34. Icinga 2 – Configuration: Templates EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Templates for generic attributes #icinga

  35. Icinga 2 – Configuration: Custom Attributes EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Numbers, Strings, Booleans, Arrays, Dictionaries • Filters, Match Conditions, additional information #icinga

  36. Icinga 2 – Configuration: Commands EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Optional/conditional arguments, functions, default values #icinga

  37. Icinga 2 – Hosts and Services EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Checkable objects and attributes #icinga

  38. Icinga 2 – Configuration: Apply Services EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Match on (custom) attributes, names (assign) • Exclude objects (ignore) #icinga

  39. Icinga 2 – Configuration: Apply For EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • For loops over arrays/dictionaries #icinga

  40. Icinga 2 – Configuration: Notifications EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Dynamic notification rules #icinga

  41. 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

  42. Icinga 2 – Configuration: Conditionals EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • If-then-else #icinga

  43. Icinga 2 – Configuration: Loops EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • While, for and break/continue #icinga

  44. 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

  45. 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

  46. Icinga 2 – Configuration – Another cool thing EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG #icinga

  47. Icinga 2 – Configuration – Time dependent thresholds EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG • Time dependent thresholds #icinga

  48. ICINGA 2 - MIGRATION

Recommend


More recommend