0% found this document useful (0 votes)
149 views81 pages

Icinga

The document discusses an Icinga meeting about open source monitoring. It provides an overview of Icinga 1.x and 2.x monitoring software, including recent changes, architecture, clustering capabilities and resource optimization. The agenda includes demonstrations and a discussion of Icinga's vision.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
149 views81 pages

Icinga

The document discusses an Icinga meeting about open source monitoring. It provides an overview of Icinga 1.x and 2.x monitoring software, including recent changes, architecture, clustering capabilities and resource optimization. The agenda includes demonstrations and a discussion of Icinga's vision.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 81

SIG-NOC Meeting - Stuttgart

04/08/2015 Icinga - Open Source Monitoring

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

C++-based source with C-based source based on based on Jasper


multiple components MySQL, PostgreSQL, Oracle Markdown Reports

IDO Livestatus Cluster … IDOUTILS

Icinga Web 2
Based on PHP / responsive design
3rd 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
600

Megabyte
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


– regex(), 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
Icinga 2 - Migration
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• 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
Icinga 2 – Migration: Assign service to hosts in Icinga 1.x
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

define service{
host_name linux1,linux2,linux3,...,linux9
service_description ssh-check
other service directives ...
}

#icinga
Icinga 2 – Migration: Apply service to hosts in Icinga 2
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

apply Service "ssh" {


import "generic-service”
check_command = "ssh”
assign where host.address && host.vars.os == "Linux”
}

#icinga
Icinga 2 – Migration – Assign members to Hostgroup in Icinga 1.x
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

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

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

#osmc
ICINGA WEB 2
Icinga Web 2 - Motivation: Classic UI
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• 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

#icinga
Icinga Web 2 – Motivation: Icinga Web 1.x
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• Complicated XML configuration


• Cached configuration
• Framework overhead
• Not useable on mobile devices
• Slow in big environments
• Complicated API

#icinga
Icinga Web 2: Key features
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• 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!

#icinga
Icinga Web 2 - Overview
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• 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

#icinga
Icinga Web 2 - Foundation
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Framework / Icinga PHP2Library


Web

Backends Authentication Setup Wizard

#icinga
Icinga Web 2 - Modules
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Business
Graphite PNP
Process

Monitoring Docs

Web 2

#icinga
Icinga Web 2 - Dashboard
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga
Icinga Web 2 – Detail View
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga
Icinga Web 2 – Event Grid
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga
Icinga Web 2 – Service Grid
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga
Icinga Web 2: CLI
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• Uses Icinga Web 2 framework & backends

#icinga
Icinga Web 2: Responsiveness
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• Your dashboard
• Workstation
• Tablet
• Mobile
• …

#icinga
Icinga Web 2 – Modules: PNP
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga
Icinga Web 2 – Modules: Business Processes
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga
Icinga Web 2 – Modules: Ticketsystems
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga
Icinga Web 2 – Modules: More, more, more
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• Currently in development
– PNP (Graphing)
– Business Process
– Generic TTS (Ticket System Intergration)
• Coming
– Graphite (Graphing)
– Logstash as History Detail
– …

#icinga
Icinga Web 2 – Modules: Prototypes
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• Ask Mr. Gelf 

#icinga
Icinga 2 - Demo
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

DEMO

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

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

#icinga
THE COMMUNITY
The Community - Users
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

You?
#icinga
The Community - Icinga Camps 2015
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Kuala
Antwerp
Lumpur
2015
2015

April
June13th
9th

Portland 2015

October 10th

#icinga
CONCLUSION
Conclusion
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• 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
VISION
Vision
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

• No enterprise edition
• Enterprise integration

#icinga
Questions & Answers
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Web www.icinga.org

Git git.icinga.org

Development dev.icinga.org

Wiki wiki.icinga.org Get heard


Support support.icinga.org
Get involved
Twitter twitter.com/icinga

Facebook facebook.com/icinga Get support


#icinga

You might also like