State of Icinga - Linux Stammtisch München

55
WWW.ICINGA.ORG Linux Stammtisch Munich 27/01/2015 State of Icinga

Transcript of State of Icinga - Linux Stammtisch München

Page 1: State of Icinga - Linux Stammtisch München

WWW.ICINGA.ORG

Linux Stammtisch Munich

27/01/2015 State of Icinga

Page 2: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Me

• Bernd Erk

• Working @NETWAYS

• Icinga responsibilities

– Project management

– Community

• In the Icinga game since 2009

• @gethash

[email protected]

Page 3: State of Icinga - Linux Stammtisch München

ABOUT US

Page 4: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

About us - People

Page 5: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

About us - Teams

Team Core

Team Web

Team Packages & Tools

Team Community

Team Q&A & Docs

Page 6: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

About us - Activity

30 Day Summary

• Commits: 400

• Contributers: 14

12 Month Summary

• Commits: 7012

• Contributers: 83

Page 7: State of Icinga - Linux Stammtisch München

THE COMMUNITY

Page 8: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Community - Users

You?

Page 9: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

The Community - Icinga Camp San Francisco

#icinga

Page 10: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Community - Icinga Camps 2015

Barcelona 2015

February 27th

Antwerp 2015

April 13rd

Kuala Lumpur 2015

April 24th

Portland 2015

October 10th

Page 11: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Community - Icinga Exchange

Page 12: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

The Community - Icinga Exchange - GitHub

Page 13: State of Icinga - Linux Stammtisch München

ICINGA 1

Page 14: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 1 - Changes

• Core

– Usability and security fixes

– Various IDO fixes for enhanced performance

• ClassicUI

– Improved downtime and comments view

– Enhanced filters for modified by attributes

– Support for compressed logfiles

• Icinga Web 1

– Rewritten session handling

– Updated ExtJS framework

Page 15: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 1 - Overview

• 36 releases until today

• We’ll keep it in maintenance!

Page 16: State of Icinga - Linux Stammtisch München

ICINGA 2 - INTRODUCTION

Page 17: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 - Overview

• Based on C++ and Boost

– Supports all major *NIX and Windows platforms

• Included cluster stack

• Powerful CLI

• Supports multiple backends

– MySQL

– PostgreSQL

• Livestatus support included

• Packages and Vagrant Box available now!

Page 18: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

#icinga

Icinga 2 - CLI - Overview

# icinga2

icinga2 - The Icinga 2 network monitoring daemon (version: v2.2)

Usage:icinga2 <command> [<arguments>]

Supported commands:* daemon (starts Icinga 2)* feature …* node …* object list (lists all objects)* pki …* repository …* variable get (gets a variable)* variable list (lists all variables)

Global options:-h [ --help ] show this help message-V [ --version ] show version information--color use VT100 color codes even when stdout is not a

terminal-D [ --define ] arg define a constant-l [ --library ] arg load a library-I [ --include ] arg add include search directory-x [ --log-level ] arg specify the log level for the console log

Command options:

Report bugs at <https://dev.icinga.org/>Icinga home page: <http://www.icinga.org/>

Page 19: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Checker

Statusdat

Gelf

Perfdata Graphite

IDO

Compat

Livestatus

Icinga 2 - Architecture

#icinga

Page 20: State of Icinga - Linux Stammtisch München

ICINGA 2 - CONFIGURATION

Page 21: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Configuration

• Different config format

– there is a conversion script!

– but you won’t miss the old config!

• It is really time for change

• Could be that you hate it now, but you’ll love it later!

• See it in action!

#icinga

Page 22: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Assign a service to multiple hosts in the old world

define service{

host_name linux1,linux2,linux3,...,linux9

service_description ssh-check

other service directives ...

}

#icinga

Page 23: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Assign a service to multiple hosts in the new world

apply Service "ssh" {

import "generic-service"

check_command = "ssh“

assign where host.address && host.vars.os == "Linux“

}

#icinga

Page 24: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Assign to Hostgroup in the old world

define hostgroup{

hostgroup_name linux-servers

alias Linux Servers

members linux1,linux2,linux3

}

#icinga

Page 25: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Assign to Hostgroup in the new world

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

Page 26: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Assign to Hostgroup in the extended new world

object Host “mysql-server1" {

address = "10.0.0.1“

check_command = "hostalive“

vars.test_server = true

}

object Host “mysql-server2" {

address = "10.0.0.1“

check_command = "hostalive“

}

object HostGroup "mysql-server" {

display_name = "MySQL Server"

assign where match("*mysql*", host.name)

ignore where host.vars.test_server

ignore where match("*internal", host.name)

}

#icinga

Page 27: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 – Some cool new things

#icinga

Page 28: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Working with arrays

object Host "localhost" {check_command = "hostalive“address = "127.0.0.1"

vars.http_vhosts["http"] = {http_uri = "/“

}

vars.http_vhosts["Icinga Web 2"] = {http_uri = "/icingaweb“

}}

apply Service for (http_vhost => config in host.vars.http_vhosts) {check_command = "http“vars += config

assign where host.vars.http_vhosts}

#icinga

Page 29: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Working with conditionals

object Host "localhost" {

check_command = "hostalive“

address = "127.0.0.1"

vars.http_vhosts["icinga.org"] = {

http_address = "icinga.org"

interval = 1m

}

vars.http_vhosts["dev.icinga.org"] = {

http_address = "dev.icinga.org"

}

}

#icinga

Page 30: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Working with conditionals

apply Service "vhost " for (vhost => config in host.vars.http_vhosts) {

host_name = "localhost“

check_command = "http"

if (config.interval) {

check_interval = config.interval

} else {

check_interval = 5m

}

assign where host.vars.http_vhosts

}

#icinga

Page 31: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Demo

Icinga 2 - Config

#icinga

Page 32: State of Icinga - Linux Stammtisch München

ICINGA 2 - CLUSTER

Page 33: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

CA Zones API

Icinga 2 - Cluster Overview

Cluster

#icinga

Page 34: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

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

• Integrated health check

#icinga

Page 35: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Cluster Distribution

Checker

Perfdata IDO

IDO

Checker

Graphite

Livestatus Checker

Statusdat

#icinga

Page 36: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Cluster Zones

Checker

Perfdata IDO

IDO

Checker

Graphite

Livestatus Checker

Statusdat

Host Host

Host

Checker

Perfdata IDO

#icinga

Page 37: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Master setup - State

#icinga

Page 38: State of Icinga - Linux Stammtisch München

ICINGA 2 – REMOTE MONITORING

Page 39: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Remote nodes

• Challenges in remote monitoring

– Configuration format

– Different software stack and libraries

– Various platforms

– Deployment and configuration

– Used resources

– Insecure

#icinga

Page 40: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 – Core resources

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

Page 41: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga 2 - Remote nodes

Checker

Perfdata IDO

Host

Checker

Perfdata IDO

Host Host

IDO

Checker

Graphite

#icinga

Page 42: State of Icinga - Linux Stammtisch München

ICINGA WEB 2

Page 43: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 - Introduction

• Lightweight like Icinga classic and flexible like Icinga Web

• Easy to extend and embed into other projects

• Support for multiple authentication providers

– Internal DB

– LDAP

• Support for multiple backends

– Database

– Livestatus

• Supports Icinga 1.x and Icinga 2.x

• Responsive layout

• FAST!

#icinga

Page 44: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Backends Authentication Installer

Framework / Icinga PHP LibraryWeb 2

Icinga Web 2 - Foundation

#icinga

Page 45: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Web 2

Monitoring Docs

Icinga Web 2 - Modules

BP Graphite PNP

#icinga

Page 46: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Icinga Web 2 - Installer

#icinga

Page 47: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Demo

#osmc

Icinga Web 2 - Demo

Page 48: State of Icinga - Linux Stammtisch München

CONCLUSION

Page 49: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Conclusion

• Download Icinga 2

– Use the packages

– Play with Vagrant and VirtualBox

– You can download the sources but we prefer the packages

• Rethink you configuration

– You can use the migration, but it is time for a change

• Install Icinga Web 2 and play with it

• Give us feedback

– dev.icinga.org

– IRC

– Twitter

#icinga

Page 50: State of Icinga - Linux Stammtisch München

VISION

Page 51: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

You want to Graphite or InfluxDB?

Vision - Graphite

#icinga

icinga2 feature enable graphite

Page 52: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

You want to use Graylog or Logstash?

Vision – Logstash or Graylog

#icinga

icinga2 feature enable gelf

Page 53: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

You want to use Livestatus?

Vision – Livestatus

#icinga

icinga2 feature enable livestatusLivestatus

Page 54: State of Icinga - Linux Stammtisch München

DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG

Vision

• No enterprise edition

• Enterprise integration

#icinga

Page 55: State of Icinga - Linux Stammtisch München

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