why favor icinga over nagios @ debconf15

46
www.icinga.org Why favour Icinga over Nagios 2015-08-16

Upload: icinga

Post on 16-Apr-2017

7.254 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Why favor Icinga over Nagios @ DebConf15

www.icinga.org

Why favour Icinga over Nagios

2015-08-16

Page 2: Why favor Icinga over Nagios @ DebConf15

Markus Frosch

• Consultant @NETWAYS• Icinga Team since 2012• Organisation of Icinga 2• Debian developer

@lazyfrosch

Page 3: Why favor Icinga over Nagios @ DebConf15

THE ICINGA PROJECT

Page 4: Why favor Icinga over Nagios @ DebConf15

Open Source Enterprise Monitoring

Icinga is a scalable and extensible monitoring system which checks the availability of your resources, notifiesusers of outages and provides extensive BI data.

Page 5: Why favor Icinga over Nagios @ DebConf15

You?

Page 6: Why favor Icinga over Nagios @ DebConf15

• originally forked from Nagios in 2009• focus on improvements and scalability• independent version Icinga 2 since 2014•web interfaces and addons

Page 7: Why favor Icinga over Nagios @ DebConf15

Icinga Core

Nagios based C-sourceMySQL, PostgreSQL, Oracle

Icinga Core

Nagios based C-sourceMySQL, 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 ToolsIcinga Webbased on PHP using ExtJS, Agavi MVCIcinga Webbased on PHP using ExtJS, Agavi MVC

IDOUTILSIDOUTILS

Icinga Web 2Based on PHP / responsive designIcinga Web 2Based on PHP / responsive design

Icinga 2

C++-based sourcewith multiple components

Icinga 2

C++-based sourcewith multiple components

IDOIDO LivestatusLivestatus ClusterCluster APIAPI ……

Page 8: Why favor Icinga over Nagios @ DebConf15

Icinga 2

• release 2.3.8 (2015-07-20)•new code base• similar ideas• Puppet, Chef and Ansible integration•Packages and Vagrant Box available

Page 9: Why favor Icinga over Nagios @ DebConf15

WHY NAGIOS™ IS GOOD?

Page 10: Why favor Icinga over Nagios @ DebConf15

Nagios™ is good, because:

✔ monitoring things is very easy✔ very simple software stack ✔ no complex external dependencies

Page 11: Why favor Icinga over Nagios @ DebConf15

Nagios™ is good, because:

✔ active checks are powerful✔ gathering performance data✔ huge community✔ thousands of Plugins

Page 12: Why favor Icinga over Nagios @ DebConf15

OK, BUT WHY ICINGA THEN?

Page 13: Why favor Icinga over Nagios @ DebConf15

Nagios™ is open core

Page 14: Why favor Icinga over Nagios @ DebConf15

Nagios™ Inc. is not into community

✗ mailinglist has been converted to a „customer support forum“

✗ trademark enforcement✗ focus on selling the enterprise product

Page 15: Why favor Icinga over Nagios @ DebConf15

Icinga wants to be open

✔ community support✔ all components 100% free software✔ contributions welcome✔ we won't sell our software

Page 16: Why favor Icinga over Nagios @ DebConf15

Nagios™ does not scale

✗ it's just a single loop✗ limitations using external interfaces✗ large installations are difficult

Page 17: Why favor Icinga over Nagios @ DebConf15

Icinga 2 on the other hand

✔ provides a multithreaded C++ Core✔ distributes load in cluster automatically✔ is able to monitor thousands of devices

every few seconds

Page 18: Why favor Icinga over Nagios @ DebConf15

MODULES

Page 19: Why favor Icinga over Nagios @ DebConf15

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 }

Page 20: Why favor Icinga over Nagios @ DebConf15

CheckerChecker

NotifyNotify

API(soon)API(soon)

CompatCompat ClusterCluster

IDOIDO GELFGELF

GraphiteGraphite

PerfdataPerfdata

OpenTSDBOpenTSDB

LivestatusLivestatus

Page 21: Why favor Icinga over Nagios @ DebConf15

# icinga2 feature enable livestatus# icinga2 feature enable ido-mysql

# vim /etc/icinga2/features- available/ido-mysql.conf

Page 22: Why favor Icinga over Nagios @ DebConf15

CLUSTERING

Page 23: Why favor Icinga over Nagios @ DebConf15

How about high available Nagios™?

✗ there is no integrated failover mechanism✗ configuration is not distributed✗ no shared monitoring information

Page 24: Why favor Icinga over Nagios @ DebConf15

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

Page 25: Why favor Icinga over Nagios @ DebConf15

centra

l

datace

nter

centra

l

datace

nter

CheckerChecker ConfigConfig

LivestatusLive

status

CheckerChecker

DatabaseDatabase

IDOIDO

IDOIDO

remotelocation

CheckerChecker

Page 26: Why favor Icinga over Nagios @ DebConf15

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

Page 27: Why favor Icinga over Nagios @ DebConf15

Icinga 2 clustering is PKI TLS only

✔ bidirectional connections✔ helps you setting up a CA✔ replication of events and status

Page 28: Why favor Icinga over Nagios @ DebConf15

CONFIGURATION

Page 29: Why favor Icinga over Nagios @ DebConf15

Nagios™ config tricks are weird…

define service{host_name linux1,linux2,linux3,...,linux9service_description ssh-checkother service directives ...}

Page 30: Why favor Icinga over Nagios @ DebConf15

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}

Page 31: Why favor Icinga over Nagios @ DebConf15

Nagios™ can only do lists

define hostgroup{hostgroup_name linux-serversalias Linux Serversmembers linux1,linux2,linux3}

Page 32: Why favor Icinga over Nagios @ DebConf15

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

Page 33: Why favor Icinga over Nagios @ DebConf15

ONE MORE THING...

Page 34: Why favor Icinga over Nagios @ DebConf15

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

}

Page 35: Why favor Icinga over Nagios @ DebConf15

WHAT YOU SEE IS WHAT YOU GET

Page 36: Why favor Icinga over Nagios @ DebConf15

✗ 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

Page 37: Why favor Icinga over Nagios @ DebConf15

Icingaweb 2

• easy to extend and embed•multiple authentication providers• reads from IDO database • responsive

release soonTM

Page 38: Why favor Icinga over Nagios @ DebConf15

Web 2MySQL /PostgreSQL

MySQL /PostgreSQL2

or Icinga 1

The simplest setup

set up within a few minutes...

Page 39: Why favor Icinga over Nagios @ DebConf15
Page 40: Why favor Icinga over Nagios @ DebConf15
Page 41: Why favor Icinga over Nagios @ DebConf15
Page 42: Why favor Icinga over Nagios @ DebConf15

THE COMMUNITY

Page 43: Why favor Icinga over Nagios @ DebConf15

You?

Page 44: Why favor Icinga over Nagios @ DebConf15

Berlin 2016

March 1st

Berlin 2016

March 1st

Portland 2015

October 10th

Portland 2015

October 10th

Icinga Camp community meetups

Page 45: Why favor Icinga over Nagios @ DebConf15

Where to start?

• Start with the documentation•Download Icinga 2•Rethink you configuration• Install Icinga Web 2 and play with it•Give us feedback

#icinga

Page 46: Why favor Icinga over Nagios @ DebConf15

THANK YOU!www.icinga.org

exchange.icinga.org

docs.icinga.org

dev.icinga.org

git.icinga.org

@icinga

/icinga

+icinga