Upload
icinga
View
6.177
Download
3
Tags:
Embed Size (px)
Citation preview
WWW.ICINGA.ORG
SIG-NOC Meeting - Stuttgart
04/08/2015 Icinga - Open Source Monitoring
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Agenda
• Icinga Project
• Icinga 1.x
• Icinga 2
• Icinga Web 2
• Demo
• Conclusion & Vision
THE ICINGA PROJECT
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.
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#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
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
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!
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
ICINGA 2 - INTRODUCTION
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Host
Databases Network
Icinga 2 – Use cases
#icinga
Monitors
Apps
Hardware OS Storage
Host Switches Services
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – Use cases
#icinga
Alerts Mail
SMS
Voice
Ticket
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – Use cases
#icinga
Reports
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
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Vagrant
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Checker
Notify
Gelf
Perfdata Graphite
IDO
Compat
Livestatus
Icinga 2 - Architecture
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Livestatus
Icinga 2 - Enable Livestatus
#icinga
ICINGA 2 - CLUSTER
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
CA Zones API
Icinga 2 - Cluster Overview
Cluster
#icinga
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 - Cluster Distribution
Checker
Perfdata GELF
IDO
Open
TSDB
Graphite
Livestatus Checker
Statusdat
#icinga
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – Resource optimization
0
100
200
300
400
500
600
700
800
0
500
1000
1500
2000
2500
3000
30.000 Services
CPU-Cycles Memory
Megabyte
Cycle
s in m
illio
ns
#icinga
ICINGA 2 - CONFIGURATION
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
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!
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Value Types
• Get to know all the value types!
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Constants
• PluginDir, MysqlPassword, SnmpCommunity, …
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Templates
• Templates for generic attributes
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Custom Attributes
• Numbers, Strings, Booleans, Arrays, Dictionaries
• Filters, Match Conditions, additional information
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Commands
• Optional/conditional arguments, functions, default values
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Hosts and Services
• Checkable objects and attributes
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Apply Services
• Match on (custom) attributes, names (assign)
• Exclude objects (ignore)
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Apply For
• For loops over arrays/dictionaries
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Notifications
• Dynamic notification rules
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?
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Conditionals
• If-then-else
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration: Loops
• While, for and break/continue
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
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga 2 – Configuration – Another cool thing
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 – Configuration – Time dependent thresholds
• Time dependent thresholds
ICINGA 2 - MIGRATION
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
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
other service directives ...
}
#icinga
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”
}
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
}
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#osmc
Icinga 2 – Migration – Assign members to Hostgroup in Icinga 1.x
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)
}
ICINGA WEB 2
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
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
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!
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
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Backends Authentication Setup Wizard
Framework / Icinga PHP Library Web 2
Icinga Web 2 - Foundation
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Web 2
Monitoring Docs
Icinga Web 2 - Modules
Business
Process Graphite PNP
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga Web 2 - Dashboard
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga Web 2 – Detail View
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga Web 2 – Event Grid
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga Web 2 – Service Grid
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga Web 2: CLI
• Uses Icinga Web 2 framework & backends
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga Web 2: Responsiveness
• Your dashboard
• Workstation
• Tablet
• Mobile
• …
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga Web 2 – Modules: PNP
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga Web 2 – Modules: Business Processes
#icinga
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Icinga Web 2 – Modules: Ticketsystems
#icinga
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
– …
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga Web 2 – Modules: Prototypes
• Ask Mr. Gelf
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
Icinga 2 - Demo
DEMO
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
THE COMMUNITY
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
#icinga
The Community - Users
You?
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
CONCLUSION
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
#icinga
VISION
EXCHANGE. DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
Vision
• No enterprise edition
• Enterprise integration
#icinga
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