Icinga - Open Source Monitoring 04/08/2015 WWW.ICINGA.ORG Me - - PowerPoint PPT Presentation

icinga open source monitoring
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

WWW.ICINGA.ORG SIG-NOC Meeting - Stuttgart 04/08/2015

Icinga - Open Source Monitoring

slide-2
SLIDE 2
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Me

  • Michael Friedrich
  • @dnsmichi, 31, Austrian
  • Application Developer @NETWAYS
  • Icinga responsibilities
  • Core 1.x & 2.x Developer
  • Release Manager
  • On the team since 2009
slide-3
SLIDE 3
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Agenda

  • Icinga Project
  • Icinga 1.x
  • Icinga 2
  • Icinga Web 2
  • Demo
  • Conclusion & Vision
slide-4
SLIDE 4

THE ICINGA PROJECT

slide-5
SLIDE 5
  • 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.

slide-6
SLIDE 6
  • 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
slide-7
SLIDE 7
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Icinga Project - Icinga Exchange

slide-8
SLIDE 8
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Icinga Project - Icinga Exchange - GitHub

slide-9
SLIDE 9
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#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 …

slide-10
SLIDE 10

ICINGA 1

slide-11
SLIDE 11
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 1 - Overview

  • 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!
slide-12
SLIDE 12
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 1 – Changes 2014/2015

  • 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

slide-13
SLIDE 13

ICINGA 2 - INTRODUCTION

slide-14
SLIDE 14
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Host Databases Network

Icinga 2 – Use cases

#icinga

Monitors

Apps Hardware OS Storage Host Switches Services

slide-15
SLIDE 15
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 – Use cases

#icinga

Alerts

Mail SMS Voice Ticket

slide-16
SLIDE 16
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 – Use cases

#icinga

Reports

slide-17
SLIDE 17
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 - Overview

  • 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

slide-18
SLIDE 18
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 - Overview

  • Powerful CLI
  • MySQL & PostgreSQL support
  • New configuration format
  • Includes a extensive template library
  • Compatible with plugins, addons, UIs
slide-19
SLIDE 19
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Vagrant

slide-20
SLIDE 20
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Checker Notify Gelf Perfdata Graphite IDO Compat Livestatus Icinga 2 - Architecture

#icinga

slide-21
SLIDE 21
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Livestatus

Icinga 2 - Enable Livestatus

#icinga

slide-22
SLIDE 22

ICINGA 2 - CLUSTER

slide-23
SLIDE 23
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

CA Zones API Icinga 2 - Cluster Overview

Cluster

#icinga

slide-24
SLIDE 24
  • 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
slide-25
SLIDE 25
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Cluster Distribution

Checker Perfdata GELF IDO Open TSDB Graphite

Livestatus

Checker

Statusdat

#icinga

slide-26
SLIDE 26
  • 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

slide-27
SLIDE 27
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

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

slide-28
SLIDE 28

ICINGA 2 - CONFIGURATION

slide-29
SLIDE 29
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Configuration

  • New configuration format
  • Won’t miss the old config syntax!
  • It is really time for change
  • You will love it!

#icinga

slide-30
SLIDE 30
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#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

  • Use syntax highlighting!
slide-31
SLIDE 31
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Console

# yum install rlwrap # rlwrap icinga2 console

  • Use ‘icinga2 console’ to test values, functions, etc!
  • https://www.icinga.org/resources/live-console/
  • Install rlwrap 
slide-32
SLIDE 32
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Value Types

  • Get to know all the value types!
slide-33
SLIDE 33
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Constants

  • PluginDir, MysqlPassword, SnmpCommunity, …
slide-34
SLIDE 34
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Templates

  • Templates for generic attributes
slide-35
SLIDE 35
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Custom Attributes

  • Numbers, Strings, Booleans, Arrays, Dictionaries
  • Filters, Match Conditions, additional information
slide-36
SLIDE 36
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Commands

  • Optional/conditional arguments, functions, default values
slide-37
SLIDE 37
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Hosts and Services

  • Checkable objects and attributes
slide-38
SLIDE 38
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Apply Services

  • Match on (custom) attributes, names (assign)
  • Exclude objects (ignore)
slide-39
SLIDE 39
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Apply For

  • For loops over arrays/dictionaries
slide-40
SLIDE 40
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Notifications

  • Dynamic notification rules
slide-41
SLIDE 41
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Dependencies

  • Host-on-Service, Service-on-Host, Classic

HOST router SERVICE router-uplink Icinga 2 HOST website-server Reachable?

slide-42
SLIDE 42
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Conditionals

  • If-then-else
slide-43
SLIDE 43
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Loops

  • While, for and break/continue
slide-44
SLIDE 44
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Type methods & Object Accessors

  • 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

slide-45
SLIDE 45
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration: Functions

  • Use pre-defined or your own

– regex(), match(), …

  • Custom attributes, command, argument values
slide-46
SLIDE 46
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 – Configuration – Another cool thing

#icinga

slide-47
SLIDE 47
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 – Configuration – Time dependent thresholds

  • Time dependent thresholds
slide-48
SLIDE 48

ICINGA 2 - MIGRATION

slide-49
SLIDE 49
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Migration

  • Start with a fresh server
  • Inventory of plugins & configuration
  • Define your configuration strategy with Icinga 2
  • Create the best Command and Apply definitions only once
  • Only add hosts (and users) in the future
  • More migration hints on the docs!

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/migration#migration

#icinga

slide-50
SLIDE 50
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 – Migration: Assign service to hosts in Icinga 1.x define service{ host_name linux1,linux2,linux3,...,linux9 service_description ssh-check

  • ther service directives ...

}

#icinga

slide-51
SLIDE 51
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#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” }

slide-52
SLIDE 52
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#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 }

slide-53
SLIDE 53
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#osmc

Icinga 2 – Migration – Assign members to Hostgroup in Icinga 1.x

  • bject Host “mysql-server1" {

address = "10.0.0.1“ check_command = "hostalive“ }

  • bject HostGroup "mysql-server" {

display_name = "MySQL Server“ assign where match("*mysql*", host.name) }

slide-54
SLIDE 54

ICINGA WEB 2

slide-55
SLIDE 55
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2 - Motivation: Classic UI

  • Not extendable
  • Lacks real user management

– Authorization based on contacts - not enough for enterprise needs

  • Not usable on mobile devices
  • Same machine as core
  • Heavy I/O
slide-56
SLIDE 56
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2 – Motivation: Icinga Web 1.x

  • Complicated XML configuration
  • Cached configuration
  • Framework overhead
  • Not useable on mobile devices
  • Slow in big environments
  • Complicated API
slide-57
SLIDE 57
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2: Key features

  • Lightweight like Classic UI & flexible as Icinga Web 1.x
  • Easy to extend and embed into other projects
  • Support for multiple authentication providers

– Internal DB – LDAP – HTTP Auth

  • Support for IDO database & Livestatus
  • Supports multiple backends simultaneously, as failover backend
  • Responsive actions (tablet, mobile, etc)
  • FAST!
slide-58
SLIDE 58
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2 - Overview

  • Beta Version: 2.0.0-beta3 (13.3.2015)
  • Release Candidate: 2.0.0-rc1 (late May 2015)
  • Final version: 2.0.0 (scheduled for Q2 2015)
  • Supports all major distributions
  • Apache & Nginx support
  • Packages and Vagrant Box available now!

https://dev.icinga.org/projects/icingaweb2/roadmap

slide-59
SLIDE 59
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Backends Authentication Setup Wizard

Framework / Icinga PHP Library

Web 2

Icinga Web 2 - Foundation

#icinga

slide-60
SLIDE 60
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Web 2

Monitoring Docs Icinga Web 2 - Modules Business Process Graphite PNP

#icinga

slide-61
SLIDE 61
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 - Dashboard

#icinga

slide-62
SLIDE 62
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 – Detail View

#icinga

slide-63
SLIDE 63
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 – Event Grid

#icinga

slide-64
SLIDE 64
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 – Service Grid

#icinga

slide-65
SLIDE 65
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2: CLI

  • Uses Icinga Web 2 framework & backends
slide-66
SLIDE 66
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2: Responsiveness

  • Your dashboard
  • Workstation
  • Tablet
  • Mobile
slide-67
SLIDE 67
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 – Modules: PNP

#icinga

slide-68
SLIDE 68
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 – Modules: Business Processes

#icinga

slide-69
SLIDE 69
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 – Modules: Ticketsystems

#icinga

slide-70
SLIDE 70
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2 – Modules: More, more, more

  • Currently in development

– PNP (Graphing) – Business Process – Generic TTS (Ticket System Intergration)

  • Coming

– Graphite (Graphing) – Logstash as History Detail – …

slide-71
SLIDE 71
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga Web 2 – Modules: Prototypes

  • Ask Mr. Gelf 
slide-72
SLIDE 72
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 - Demo

DEMO

slide-73
SLIDE 73
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#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

slide-74
SLIDE 74

THE COMMUNITY

slide-75
SLIDE 75
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Community - Users

You?

slide-76
SLIDE 76
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Community - Icinga Camps 2015

Kuala Lumpur 2015

June 9th

Portland 2015

October 10th

Antwerp 2015

April 13th

slide-77
SLIDE 77

CONCLUSION

slide-78
SLIDE 78
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Conclusion

  • Download Icinga 2

– Use packages – Play with Vagrant and VirtualBox

  • Rethink you configuration strategy

– Follow extensive migration docs, it is time for a change!

  • Install Icinga Web 2 and play with it
  • Give us feedback

– dev.icinga.org – IRC – Twitter

#icinga

slide-79
SLIDE 79

VISION

slide-80
SLIDE 80
  • EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Vision

  • No enterprise edition
  • Enterprise integration

#icinga

slide-81
SLIDE 81
  • 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