SlideShare a Scribd company logo
www.icinga.org
Why favour Icinga over Nagios
2015-08-22
Markus Frosch
• Consultant @NETWAYS
• Icinga Team since 2012
• Organisation of Icinga 2
• Debian developer
@lazyfrosch
THE ICINGA PROJECT
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.
You?
• originally forked from Nagios in 2009
• focus on improvements and scalability
• independent version Icinga 2 since 2014
• web interfaces and addons
Icinga Core
Nagios based C-source
MySQL, PostgreSQL, Oracle
Icinga Core
Nagios based C-source
MySQL, PostgreSQL, Oracle
Icinga Quality, Testing and Community Support
Website and Open Source Ticketing System
Icinga Quality, Testing and Community Support
Website and Open Source Ticketing System
3rd
Party Tools3rd
Party Tools
Icinga Web
based on PHP using ExtJS, Agavi MVC
Icinga Web
based on PHP using ExtJS, Agavi MVC
IDOUTILSIDOUTILS
Icinga Web 2
Based on PHP / responsive design
Icinga Web 2
Based on PHP / responsive design
Icinga 2
C++-based source
with multiple components
Icinga 2
C++-based source
with multiple components
IDOIDO LivestatusLivestatus ClusterCluster APIAPI ……
ICINGA 2 INTRODUCTION
• monitors everything
• in a regular interval
• preferring active checks
• gathering status
• collect performance data / metrics
• notifies using any channel
• detects dependencies
• handles events in configured way
• forwards logs to Logstash and Graylog
• passes performance data to Graphite,
OpenTSDB or InfluxDB
• integrate with other tools?
Icinga 2
• release 2.3.8 (2015-07-20)
• new code base on C++ and Boost
• similar ideas to Nagios
• Puppet, Chef and Ansible integration
• Packages and Vagrant Box available
WHY NAGIOS™ IS GOOD?
Nagios™ is good, because:
✔ monitoring things is very easy
✔ very simple software stack
✔ no complex external dependencies
Nagios™ is good, because:
✔ active checks are powerful
✔ gathering performance data
✔ huge community
✔ thousands of Plugins
OK, BUT WHY ICINGA THEN?
Nagios™ does not scale
✗ it's just a single loop
✗ limitations using external interfaces
✗ large installations are difficult
Icinga 2 on the other hand
✔ provides a multithreaded engine
✔ distributes load in cluster automatically
✔ is able to monitor thousands of devices
every few seconds
MODULES
Modules in Nagios™?
# tar xzvf mk-livestatus-1.2.4.tar.gz
# cd mk-livestatus-1.2.4
# ./configure --prefix=/usr/local/icinga
--exec-prefix=/usr/local/icinga
# make
# cp src/livestatus.o /usr/local/icinga/bin
define module {
module_name mklivestatus
path /usr/local/icinga/bin/livestatus.o
module_type neb
args /usr/local/icinga/var/rw/live
}
CheckerChecker
NotifyNotify
API
(soon)
API
(soon)
CompatCompat ClusterCluster
IDOIDO GELFGELF
GraphiteGraphite
PerfdataPerfdata
OpenTSDBOpenTSDB
LivestatusLivestatus
# icinga2 feature enable livestatus
# icinga2 feature enable ido-mysql
# vim /etc/icinga2/features-
available/ido-mysql.conf
DEMO
CLUSTERING
How about high available Nagios™?
✗ there is no integrated failover mechanism
✗ configuration is not distributed
✗ no shared monitoring information
What Icinga 2 provides you
✔ zones for multitenancy environments
✔ support for logic splits in the config
✔ availability and scaling zones
✔ automatic redistribution of checks
✔ master / satellite / agent
central
datacenter
central
datacenter
CheckerChecker ConfigConfig
Live
status
Live
status
CheckerChecker
DatabaseDatabase
IDOIDO
IDOIDO
remote
location
CheckerChecker
Nagios™ and security
✗ NSCA works, but not in a good way
✗ NRPE has a couple of security issues
✗ You can make it secure … by hand
Icinga 2 clustering is PKI TLS only
✔ bidirectional connections
✔ helps you setting up a CA
✔ replication of events and status
DEMO
CONFIGURATION
Nagios™ config tricks are weird…
define service{
host_name linux1,linux2,linux3,...,linux9
service_description ssh-check
other service directives ...
}
Nagios™ can only do lists
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members linux1,linux2,linux3
}
Icinga 2 brings logic
apply Service "ssh" {
import "generic-service”
check_command = "ssh”
assign where host.address && host.vars.os == "Linux”
ignore where host.vars.test == true
}
Icinga 2 wants to unterstand you
object HostGroup "mysql-server" {
display_name = "MySQL Server"
assign where match("*mysql*", host.name)
assign where host.vars.role == "mysql-server"
ignore where host.vars.environment != "production"
}
Imagine a host you manage
object Host "shop1.nbg.de.bratwurst.de" {
import "generic-host"
address = "192.0.2.123"
vars = {
environment = "production"
role = "webserver"
location = "nbg1"
application = "bratwurstshop"
team = "appsupport"
}
}
Maybe add templates
template Host "webserver-default" {
import "generic-host"
vars = {
environment = "production"
role = "webserver"
}
}
object Host "shop1.nbg.de.bratwurst.de" {
import "webserver-default"
address = "192.0.2.123"
vars.location = "nbg1"
[...]
}
Now add some services
apply Service "http" {
import "generic-service"
check_command = "http"
assign where host.role == "webserver"
}
apply Service "https" {
import "generic-service"
check_command = "http"
vars.http_ssl = true
assign where host.role == "webserver"
}
Get notified
apply Notification "host-prod-oncall" to Host {
import "mail-host-notification"
user_groups = [ "datacenter-oncall" ]
timeperiod = "non-workhours"
assign where host.environment == "production"
}
apply Notification "appsupport-prod-oncall" to Service {
import "mail-service-notification"
user_groups = [ "appsupport-oncall" ]
timeperiod = "non-workhours"
assign where host.team == "appsupport" 
&& host.environment == "production"
}
Define dependencies
apply Dependency "host-in-nbg1" to Host {
parent_host_name = "router.nbg1.bratwurst.de"
disable_checks = true
disable_notifications = true
assign where host.location == "nbg1" && 
host.role != "router"
}
Safe and powerful commands
object CheckCommand "fancy-vendor-check" {
import "plugin-check-command"
command = [ PluginDir + "/check_vendor_foo" ]
arguments = {
"-H" = "$host.name$"
"-C" = "$snmp_community$"
"-m" = "$vendor_mode$"
"-w" = "$vendor_warning$"
"-c" = "$vendor_critical$"
}
vars.snmp_community = "public"
}
Easy to use
apply Service "fancy-vendor test" {
import "generic-service"
check_command = "fancy-vendor-check"
vars.snmp_community = "isthissecure"
vars.vendor_mode = "proprietary-magic"
vars.vendor_warning = "80"
vars.vendor_warning = "90"
assign where host.type = "fancy-vendor-node"
}
Using commands
●
safe against shell injections
●
clean interface, easy to write
●
just set a var in service or host
●
check our ITL template library
ONE MORE THING...
Icinga 2 is enhanceable
object Service "webservice" {
import "generic-service"
check_command = "load"
host_name = "a really great server"
vars.load_wload1 = {{
if (get_time_period("9to5").is_inside) {
return 40
} else {
return 60
}
}}
}
WHAT YOU SEE IS WHAT YOU GET
Nagios CGI
Icinga Classic
Icinga Web 1
✗ limitations in current Icinga interfaces
✗ parsing the status.dat is not fast
✗ executing commands is tedious
✗ really hard to extend and integrate
✗ no unified interface so far
Icingaweb 2
• easy to extend and embed
• multiple authentication providers
• reads from IDO database
• responsive
release soon
TM
Web 2MySQL /
PostgreSQL
MySQL /
PostgreSQL
2
or Icinga 1
The simplest setup
set up within a few minutes...
Web 2
MonitoringMonitoring DocsDocs
BPBP GraphiteGraphite PNPPNP
Demo
Why favour Icinga over Nagios @ FrOSCon 2015
CONCLUSION
Where to start?
• Go to docs.icinga.org
• Try our Vagrant VMs
• Use Icinga 2 packages
• Rethink you configuration
• Install Icinga Web 2 and play with it
• Give us feedback
#icinga
You?
Berlin 2016
March 1st
Berlin 2016
March 1st
Portland 2015
October 10th
Portland 2015
October 10th
Icinga Camp community meetups
THANK YOU!
www.icinga.org
exchange.icinga.org
docs.icinga.org
dev.icinga.org
git.icinga.org
@icinga
/icinga
+icinga

More Related Content

PDF
Why favor Icinga over Nagios @ DebConf15
Icinga
 
PDF
Icinga 2 API @ Icinga Camp Portland at Puppetlabs
Icinga
 
PPTX
Icinga 2 at Icinga Camp San Francisco
Icinga
 
PDF
State of Development - Icinga Meetup Linz August 2019
Icinga
 
PDF
ChatOps with Icinga and StackStorm
Icinga
 
PDF
Icinga 2010 at OSMC
Icinga
 
PDF
Icinga Web 2 is more - Module magic at Icinga Camp San Francisco
Icinga
 
PDF
Icinga 2011 at Chemnitzer Linuxtage
Icinga
 
Why favor Icinga over Nagios @ DebConf15
Icinga
 
Icinga 2 API @ Icinga Camp Portland at Puppetlabs
Icinga
 
Icinga 2 at Icinga Camp San Francisco
Icinga
 
State of Development - Icinga Meetup Linz August 2019
Icinga
 
ChatOps with Icinga and StackStorm
Icinga
 
Icinga 2010 at OSMC
Icinga
 
Icinga Web 2 is more - Module magic at Icinga Camp San Francisco
Icinga
 
Icinga 2011 at Chemnitzer Linuxtage
Icinga
 

What's hot (20)

PDF
Why favour Icinga over Nagios @ OSDC 2015
Icinga
 
PDF
Icinga 2011 at Nagios Workshop
Icinga
 
PPTX
Icinga lsm 2015 copy
NETWAYS
 
PPTX
Why favour Icinga over Nagios - Rootconf 2015
Icinga
 
PPTX
Icinga Camp Antwerp - Current State of Icinga
Icinga
 
PDF
Toshaan Bharvani – Icinga2 and Ansible, how to manage and migrate
Icinga
 
PDF
Icinga @CLT 2013
Icinga
 
PPTX
Icinga Camp Barcelona - Current State of Icinga
Icinga
 
PDF
Icinga @OSMC 2013
Icinga
 
PPTX
Icinga Camp Barcelona - Icinga
Icinga
 
PDF
Icinga 2010 at Nagios Workshop
Icinga
 
PPTX
Open Source Monitoring with Icinga at Fossasia 2015
Icinga
 
PDF
Icinga 2 @ SIG-NOC Meeting
Icinga
 
PDF
Icinga 2 and puppet: automate monitoring
OlinData
 
PDF
Icinga @GUUG 2013
Icinga
 
PDF
What is new in icinga2
Icinga
 
PPTX
Monitoring Open Source Databases with Icinga
Icinga
 
PPTX
Icinga2 - Upcoming API for Icinga2
Icinga
 
PPTX
Icinga Camp Antwerp - Icinga2 Cluster
Icinga
 
PPTX
Cebit 2015 icinga
Icinga
 
Why favour Icinga over Nagios @ OSDC 2015
Icinga
 
Icinga 2011 at Nagios Workshop
Icinga
 
Icinga lsm 2015 copy
NETWAYS
 
Why favour Icinga over Nagios - Rootconf 2015
Icinga
 
Icinga Camp Antwerp - Current State of Icinga
Icinga
 
Toshaan Bharvani – Icinga2 and Ansible, how to manage and migrate
Icinga
 
Icinga @CLT 2013
Icinga
 
Icinga Camp Barcelona - Current State of Icinga
Icinga
 
Icinga @OSMC 2013
Icinga
 
Icinga Camp Barcelona - Icinga
Icinga
 
Icinga 2010 at Nagios Workshop
Icinga
 
Open Source Monitoring with Icinga at Fossasia 2015
Icinga
 
Icinga 2 @ SIG-NOC Meeting
Icinga
 
Icinga 2 and puppet: automate monitoring
OlinData
 
Icinga @GUUG 2013
Icinga
 
What is new in icinga2
Icinga
 
Monitoring Open Source Databases with Icinga
Icinga
 
Icinga2 - Upcoming API for Icinga2
Icinga
 
Icinga Camp Antwerp - Icinga2 Cluster
Icinga
 
Cebit 2015 icinga
Icinga
 
Ad

Viewers also liked (20)

ODP
Icinga Camp Amsterdam - Infrastructure as Code
Icinga
 
PPTX
Icinga Camp Berlin 2017 - Welcome & State of Icinga
Icinga
 
ODP
Icinga Camp Berlin 2017 - How to write check plugins, part 1
Icinga
 
PPTX
Monitoring as code
Icinga
 
PDF
ISCSI server configuration
Thamizharasan P
 
PPT
Linux apache installation
Dima Gomaa
 
PPT
Nagios Conference 2013 - David Stern - The Nagios Light Bar
Nagios
 
PDF
Apache server configuration
Thamizharasan P
 
PDF
DNS server configurationDns server configuration
Thamizharasan P
 
PDF
Network configuration in Linux
Mohammed Yazdani
 
PDF
Webmin configuration in Linux
Thamizharasan P
 
PDF
Webinar - High Availability and Distributed Monitoring with Icinga2
OlinData
 
PDF
Samba server configuration
Thamizharasan P
 
PDF
GlusterFS CTDB Integration
Etsuji Nakai
 
ODP
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios
 
PDF
Icinga Camp San Diego: Apify them all
Icinga
 
PPTX
Presentation about Icinga at Kiratech DevOps Day in Verona
Icinga
 
PDF
Icinga Camp San Diego 2016 - Icinga Director
Icinga
 
PDF
IcingaCamp Stockholm - NSClient++
Icinga
 
PPTX
Icinga Camp Amsterdam - How to monitor Windows
Icinga
 
Icinga Camp Amsterdam - Infrastructure as Code
Icinga
 
Icinga Camp Berlin 2017 - Welcome & State of Icinga
Icinga
 
Icinga Camp Berlin 2017 - How to write check plugins, part 1
Icinga
 
Monitoring as code
Icinga
 
ISCSI server configuration
Thamizharasan P
 
Linux apache installation
Dima Gomaa
 
Nagios Conference 2013 - David Stern - The Nagios Light Bar
Nagios
 
Apache server configuration
Thamizharasan P
 
DNS server configurationDns server configuration
Thamizharasan P
 
Network configuration in Linux
Mohammed Yazdani
 
Webmin configuration in Linux
Thamizharasan P
 
Webinar - High Availability and Distributed Monitoring with Icinga2
OlinData
 
Samba server configuration
Thamizharasan P
 
GlusterFS CTDB Integration
Etsuji Nakai
 
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios
 
Icinga Camp San Diego: Apify them all
Icinga
 
Presentation about Icinga at Kiratech DevOps Day in Verona
Icinga
 
Icinga Camp San Diego 2016 - Icinga Director
Icinga
 
IcingaCamp Stockholm - NSClient++
Icinga
 
Icinga Camp Amsterdam - How to monitor Windows
Icinga
 
Ad

Similar to Why favour Icinga over Nagios @ FrOSCon 2015 (20)

PDF
OSDC 2015: Bernd Erk | Why favour Icinga over Nagios
NETWAYS
 
PPTX
State of Icinga - Linux Stammtisch München
Icinga
 
PDF
Icinga2 Hacking Session 2014-10-10
Icinga
 
PPTX
hallenges of Monitoring Big Infrastructure - Icinga Camp Milan 2019
Icinga
 
PDF
OSMC 2014: Current state of Icinga | Icinga Team
NETWAYS
 
PPTX
Icinga @ OSMC 2014
Icinga
 
PDF
OSMC 2014 | Curret State of Icinga by Icinga Team
NETWAYS
 
PDF
Automating complex infrastructures with Puppet
Kris Buytaert
 
PDF
Automating Complex Setups with Puppet
Kris Buytaert
 
ODP
Monitoring at/with SUSE 2015
Lars Vogdt
 
PPTX
drupal ci cd concept cornel univercity.pptx
rukuntravel
 
PPTX
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Patrick Chanezon
 
PDF
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey Lensen
NETWAYS
 
PDF
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Sean Chittenden
 
PDF
Icinga Workshop 2014 Icinga 2 Hacking Session
NETWAYS
 
PDF
Creating Scalable JVM/Java Apps on Heroku
Joe Kutner
 
PDF
PaaSTA: Autoscaling at Yelp
Nathan Handler
 
PPTX
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
 
PPTX
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
NGINX, Inc.
 
PDF
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
 
OSDC 2015: Bernd Erk | Why favour Icinga over Nagios
NETWAYS
 
State of Icinga - Linux Stammtisch München
Icinga
 
Icinga2 Hacking Session 2014-10-10
Icinga
 
hallenges of Monitoring Big Infrastructure - Icinga Camp Milan 2019
Icinga
 
OSMC 2014: Current state of Icinga | Icinga Team
NETWAYS
 
Icinga @ OSMC 2014
Icinga
 
OSMC 2014 | Curret State of Icinga by Icinga Team
NETWAYS
 
Automating complex infrastructures with Puppet
Kris Buytaert
 
Automating Complex Setups with Puppet
Kris Buytaert
 
Monitoring at/with SUSE 2015
Lars Vogdt
 
drupal ci cd concept cornel univercity.pptx
rukuntravel
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Patrick Chanezon
 
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey Lensen
NETWAYS
 
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Sean Chittenden
 
Icinga Workshop 2014 Icinga 2 Hacking Session
NETWAYS
 
Creating Scalable JVM/Java Apps on Heroku
Joe Kutner
 
PaaSTA: Autoscaling at Yelp
Nathan Handler
 
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
 
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
NGINX, Inc.
 
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
 

More from Icinga (20)

PDF
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
Icinga
 
PDF
Extending Icinga Web with Modules: powerful, smart and easily created - Icing...
Icinga
 
PDF
Infrastructure Monitoring for Cloud Native Enterprises - Icinga Camp Milan 2023
Icinga
 
PDF
Incident management: Best industry practices your team should know - Icinga C...
Icinga
 
PDF
Monitoring Cooling Units in a pharmaceutical GxP regulated environment - Icin...
Icinga
 
PDF
SNMP Monitoring at scale - Icinga Camp Milan 2023
Icinga
 
PPTX
Monitoring Kubernetes with Icinga - Icinga Camp Milan 2023
Icinga
 
PPTX
Current State of Icinga - Icinga Camp Milan 2023
Icinga
 
PDF
Efficient IT operations using monitoring systems and standardized tools - Ici...
Icinga
 
PPTX
Tornado Complex Event Processing Framework for Icinga - Icinga Camp Zurich 2019
Icinga
 
PDF
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Icinga
 
PDF
Moving from Icinga 1 to Icinga 2 + Director - Icinga Camp Zurich 2019
Icinga
 
PDF
Icinga Director and vSphereDB - how they play together - Icinga Camp Zurich 2019
Icinga
 
PDF
Current State of Icinga - Icinga Camp Zurich 2019
Icinga
 
PDF
NetEye 4 based on Icinga 2 - Icinga Camp Milan 2019
Icinga
 
PDF
Integrating Icinga 2 and ntopng - Icinga Camp Milan 2019
Icinga
 
PDF
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
Icinga
 
PPTX
Current State of Icinga - Icinga Camp Milan 2019
Icinga
 
PPTX
Best of Icinga Modules - Icinga Camp Milan 2019
Icinga
 
PPTX
Discover the real user experience with Alyvix - Icinga Camp Milan 2019
Icinga
 
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
Icinga
 
Extending Icinga Web with Modules: powerful, smart and easily created - Icing...
Icinga
 
Infrastructure Monitoring for Cloud Native Enterprises - Icinga Camp Milan 2023
Icinga
 
Incident management: Best industry practices your team should know - Icinga C...
Icinga
 
Monitoring Cooling Units in a pharmaceutical GxP regulated environment - Icin...
Icinga
 
SNMP Monitoring at scale - Icinga Camp Milan 2023
Icinga
 
Monitoring Kubernetes with Icinga - Icinga Camp Milan 2023
Icinga
 
Current State of Icinga - Icinga Camp Milan 2023
Icinga
 
Efficient IT operations using monitoring systems and standardized tools - Ici...
Icinga
 
Tornado Complex Event Processing Framework for Icinga - Icinga Camp Zurich 2019
Icinga
 
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Icinga
 
Moving from Icinga 1 to Icinga 2 + Director - Icinga Camp Zurich 2019
Icinga
 
Icinga Director and vSphereDB - how they play together - Icinga Camp Zurich 2019
Icinga
 
Current State of Icinga - Icinga Camp Zurich 2019
Icinga
 
NetEye 4 based on Icinga 2 - Icinga Camp Milan 2019
Icinga
 
Integrating Icinga 2 and ntopng - Icinga Camp Milan 2019
Icinga
 
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
Icinga
 
Current State of Icinga - Icinga Camp Milan 2019
Icinga
 
Best of Icinga Modules - Icinga Camp Milan 2019
Icinga
 
Discover the real user experience with Alyvix - Icinga Camp Milan 2019
Icinga
 

Recently uploaded (20)

PPTX
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
PDF
Slides: PDF Eco Economic Epochs for World Game (s) pdf
Steven McGee
 
PDF
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 
PDF
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
PPT
1965 INDO PAK WAR which Pak will never forget.ppt
sanjaychief112
 
PDF
BGP Security Best Practices that Matter, presented at PHNOG 2025
APNIC
 
PPTX
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
PDF
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
PPTX
Slides Powerpoint: Eco Economic Epochs.pptx
Steven McGee
 
PDF
KIPER4D situs Exclusive Game dari server Star Gaming Asia
hokimamad0
 
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
APNIC
 
PPTX
Black Yellow Modern Minimalist Elegant Presentation.pptx
nothisispatrickduhh
 
PDF
PDF document: World Game (s) Great Redesign.pdf
Steven McGee
 
PPTX
Microsoft PowerPoint Student PPT slides.pptx
Garleys Putin
 
PPTX
dns domain name system history work.pptx
MUHAMMADKAVISHSHABAN
 
PDF
Latest Scam Shocking the USA in 2025.pdf
onlinescamreport4
 
PPTX
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
PPTX
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
PPTX
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
PPT
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
Slides: PDF Eco Economic Epochs for World Game (s) pdf
Steven McGee
 
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
1965 INDO PAK WAR which Pak will never forget.ppt
sanjaychief112
 
BGP Security Best Practices that Matter, presented at PHNOG 2025
APNIC
 
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
Slides Powerpoint: Eco Economic Epochs.pptx
Steven McGee
 
KIPER4D situs Exclusive Game dari server Star Gaming Asia
hokimamad0
 
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
APNIC
 
Black Yellow Modern Minimalist Elegant Presentation.pptx
nothisispatrickduhh
 
PDF document: World Game (s) Great Redesign.pdf
Steven McGee
 
Microsoft PowerPoint Student PPT slides.pptx
Garleys Putin
 
dns domain name system history work.pptx
MUHAMMADKAVISHSHABAN
 
Latest Scam Shocking the USA in 2025.pdf
onlinescamreport4
 
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 

Why favour Icinga over Nagios @ FrOSCon 2015

  • 1. www.icinga.org Why favour Icinga over Nagios 2015-08-22
  • 2. Markus Frosch • Consultant @NETWAYS • Icinga Team since 2012 • Organisation of Icinga 2 • Debian developer @lazyfrosch
  • 4. 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.
  • 6. • originally forked from Nagios in 2009 • focus on improvements and scalability • independent version Icinga 2 since 2014 • web interfaces and addons
  • 7. Icinga Core Nagios based C-source MySQL, PostgreSQL, Oracle Icinga Core Nagios based C-source MySQL, PostgreSQL, Oracle Icinga Quality, Testing and Community Support Website and Open Source Ticketing System Icinga Quality, Testing and Community Support Website and Open Source Ticketing System 3rd Party Tools3rd Party Tools Icinga Web based on PHP using ExtJS, Agavi MVC Icinga Web based on PHP using ExtJS, Agavi MVC IDOUTILSIDOUTILS Icinga Web 2 Based on PHP / responsive design Icinga Web 2 Based on PHP / responsive design Icinga 2 C++-based source with multiple components Icinga 2 C++-based source with multiple components IDOIDO LivestatusLivestatus ClusterCluster APIAPI ……
  • 9. • monitors everything • in a regular interval • preferring active checks • gathering status • collect performance data / metrics
  • 10. • notifies using any channel • detects dependencies • handles events in configured way
  • 11. • forwards logs to Logstash and Graylog • passes performance data to Graphite, OpenTSDB or InfluxDB • integrate with other tools?
  • 12. Icinga 2 • release 2.3.8 (2015-07-20) • new code base on C++ and Boost • similar ideas to Nagios • Puppet, Chef and Ansible integration • Packages and Vagrant Box available
  • 14. Nagios™ is good, because: ✔ monitoring things is very easy ✔ very simple software stack ✔ no complex external dependencies
  • 15. Nagios™ is good, because: ✔ active checks are powerful ✔ gathering performance data ✔ huge community ✔ thousands of Plugins
  • 16. OK, BUT WHY ICINGA THEN?
  • 17. Nagios™ does not scale ✗ it's just a single loop ✗ limitations using external interfaces ✗ large installations are difficult
  • 18. Icinga 2 on the other hand ✔ provides a multithreaded engine ✔ distributes load in cluster automatically ✔ is able to monitor thousands of devices every few seconds
  • 20. Modules in Nagios™? # tar xzvf mk-livestatus-1.2.4.tar.gz # cd mk-livestatus-1.2.4 # ./configure --prefix=/usr/local/icinga --exec-prefix=/usr/local/icinga # make # cp src/livestatus.o /usr/local/icinga/bin define module { module_name mklivestatus path /usr/local/icinga/bin/livestatus.o module_type neb args /usr/local/icinga/var/rw/live }
  • 22. # icinga2 feature enable livestatus # icinga2 feature enable ido-mysql # vim /etc/icinga2/features- available/ido-mysql.conf
  • 23. DEMO
  • 25. How about high available Nagios™? ✗ there is no integrated failover mechanism ✗ configuration is not distributed ✗ no shared monitoring information
  • 26. What Icinga 2 provides you ✔ zones for multitenancy environments ✔ support for logic splits in the config ✔ availability and scaling zones ✔ automatic redistribution of checks ✔ master / satellite / agent
  • 28. Nagios™ and security ✗ NSCA works, but not in a good way ✗ NRPE has a couple of security issues ✗ You can make it secure … by hand
  • 29. Icinga 2 clustering is PKI TLS only ✔ bidirectional connections ✔ helps you setting up a CA ✔ replication of events and status
  • 30. DEMO
  • 32. Nagios™ config tricks are weird… define service{ host_name linux1,linux2,linux3,...,linux9 service_description ssh-check other service directives ... }
  • 33. Nagios™ can only do lists define hostgroup{ hostgroup_name linux-servers alias Linux Servers members linux1,linux2,linux3 }
  • 34. Icinga 2 brings logic apply Service "ssh" { import "generic-service” check_command = "ssh” assign where host.address && host.vars.os == "Linux” ignore where host.vars.test == true }
  • 35. Icinga 2 wants to unterstand you object HostGroup "mysql-server" { display_name = "MySQL Server" assign where match("*mysql*", host.name) assign where host.vars.role == "mysql-server" ignore where host.vars.environment != "production" }
  • 36. Imagine a host you manage object Host "shop1.nbg.de.bratwurst.de" { import "generic-host" address = "192.0.2.123" vars = { environment = "production" role = "webserver" location = "nbg1" application = "bratwurstshop" team = "appsupport" } }
  • 37. Maybe add templates template Host "webserver-default" { import "generic-host" vars = { environment = "production" role = "webserver" } } object Host "shop1.nbg.de.bratwurst.de" { import "webserver-default" address = "192.0.2.123" vars.location = "nbg1" [...] }
  • 38. Now add some services apply Service "http" { import "generic-service" check_command = "http" assign where host.role == "webserver" } apply Service "https" { import "generic-service" check_command = "http" vars.http_ssl = true assign where host.role == "webserver" }
  • 39. Get notified apply Notification "host-prod-oncall" to Host { import "mail-host-notification" user_groups = [ "datacenter-oncall" ] timeperiod = "non-workhours" assign where host.environment == "production" } apply Notification "appsupport-prod-oncall" to Service { import "mail-service-notification" user_groups = [ "appsupport-oncall" ] timeperiod = "non-workhours" assign where host.team == "appsupport" && host.environment == "production" }
  • 40. Define dependencies apply Dependency "host-in-nbg1" to Host { parent_host_name = "router.nbg1.bratwurst.de" disable_checks = true disable_notifications = true assign where host.location == "nbg1" && host.role != "router" }
  • 41. Safe and powerful commands object CheckCommand "fancy-vendor-check" { import "plugin-check-command" command = [ PluginDir + "/check_vendor_foo" ] arguments = { "-H" = "$host.name$" "-C" = "$snmp_community$" "-m" = "$vendor_mode$" "-w" = "$vendor_warning$" "-c" = "$vendor_critical$" } vars.snmp_community = "public" }
  • 42. Easy to use apply Service "fancy-vendor test" { import "generic-service" check_command = "fancy-vendor-check" vars.snmp_community = "isthissecure" vars.vendor_mode = "proprietary-magic" vars.vendor_warning = "80" vars.vendor_warning = "90" assign where host.type = "fancy-vendor-node" }
  • 43. Using commands ● safe against shell injections ● clean interface, easy to write ● just set a var in service or host ● check our ITL template library
  • 45. Icinga 2 is enhanceable object Service "webservice" { import "generic-service" check_command = "load" host_name = "a really great server" vars.load_wload1 = {{ if (get_time_period("9to5").is_inside) { return 40 } else { return 60 } }} }
  • 46. WHAT YOU SEE IS WHAT YOU GET
  • 50. ✗ limitations in current Icinga interfaces ✗ parsing the status.dat is not fast ✗ executing commands is tedious ✗ really hard to extend and integrate ✗ no unified interface so far
  • 51. Icingaweb 2 • easy to extend and embed • multiple authentication providers • reads from IDO database • responsive release soon TM
  • 52. Web 2MySQL / PostgreSQL MySQL / PostgreSQL 2 or Icinga 1 The simplest setup set up within a few minutes...
  • 53. Web 2 MonitoringMonitoring DocsDocs BPBP GraphiteGraphite PNPPNP
  • 54. Demo
  • 57. Where to start? • Go to docs.icinga.org • Try our Vagrant VMs • Use Icinga 2 packages • Rethink you configuration • Install Icinga Web 2 and play with it • Give us feedback #icinga
  • 58. You?
  • 59. Berlin 2016 March 1st Berlin 2016 March 1st Portland 2015 October 10th Portland 2015 October 10th Icinga Camp community meetups