61
WWW.ICINGA.ORG Open Source Monitoring Conference 11/19/2014 State of Icinga

State of Icinga

Embed Size (px)

Citation preview

Page 1: State of Icinga

WWW.ICINGA.ORG

Open Source Monitoring

Conference – 11/19/2014 State of Icinga

Page 2: State of Icinga

ABOUT US

Page 3: State of Icinga

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

#osmc

About us - People

Page 4: State of Icinga

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

#osmc

About us - Teams

Team Core

Team Web

Team Packages & Tools

Team Community

Team Q&A & Docs

Page 5: State of Icinga

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

#osmc

About us - Activity

#osmc

30 Day Summary

• Commits: 662

• Contributers: 16

12 Month Summary

• Commits: 5814

• Contributers: 71

Page 6: State of Icinga

THE COMMUNITY

Page 7: State of Icinga

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

#osmc

The Community - Users

You?

Page 8: State of Icinga

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

#osmc

The Community - Website

Page 9: State of Icinga

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

#osmc

The Community - Expansion

0

20000

40000

60000

80000

100000

120000

IN UK US DE

Unique sessions - January till November in given year

2010

2013

2014

Page 10: State of Icinga

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

#osmc

The Community - Icinga Camp San Francisco

Page 11: State of Icinga

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

#osmc

The Community - Icinga Camps 2015

Barcelona 2015

February 27th

New York 2015

June / July

Kuala Lumpur 2015

Summer

Portland 2015

October 10th

Page 12: State of Icinga

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

#osmc

The Community - Icinga Exchange

Page 13: State of Icinga

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

#osmc

The Community - Icinga Exchange - GitHub

Page 14: State of Icinga

ICINGA 1

Page 15: State of Icinga

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

#osmc

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 16: State of Icinga

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

#osmc

Icinga 1 - Overview

• 35 releases until today

• We’ll keep it in maintenance!

Page 17: State of Icinga

ICINGA 2 - INTRODUCTION

Page 18: State of Icinga

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

#osmc

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 19: State of Icinga

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

#osmc

Icinga 2 - Install from source

Page 20: State of Icinga

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

#osmc

Icinga 2 - Install from source

Page 21: State of Icinga

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

#osmc

Icinga 2 - Install packages

Page 22: State of Icinga

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

#osmc

Icinga 2 - Install packages

Page 23: State of Icinga

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

#osmc

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 24: State of Icinga

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

#osmc

Icinga 2 - CLI - Demo

Page 25: State of Icinga

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

Checker

Statusdat

Gelf

Perfdata Graphite

IDO

Compat

Livestatus

#osmc

Icinga 2 - Architecture

Page 26: State of Icinga

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

Livestatus

#osmc

Icinga 2 - Enable Livestatus

Page 27: State of Icinga

ICINGA 2 - CONFIGURATION

Page 28: State of Icinga

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

#osmc

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!

Page 29: State of Icinga

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

#osmc

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

}

Page 30: State of Icinga

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

#osmc

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“

}

Page 31: State of Icinga

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

#osmc

Icinga 2 - Assign to Hostgroup in the old world

define hostgroup{

hostgroup_name linux-servers

alias Linux Servers

members linux1,linux2,linux3

}

Page 32: State of Icinga

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

#osmc

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)

}

Page 33: State of Icinga

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

#osmc

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)

}

Page 34: State of Icinga

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

#osmc

Icinga 2 - One more thing

Page 35: State of Icinga

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

#osmc

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 }

Page 36: State of Icinga

ICINGA 2 - CLUSTER

Page 37: State of Icinga

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

CA Zones API

#osmc

Icinga 2 - Cluster Overview

Cluster

Page 38: State of Icinga

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

• Integrated health check

Page 39: State of Icinga

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

#osmc

Icinga 2 - Cluster Distribution

Checker

Perfdata IDO

IDO

Checker

Graphite

Livestatus Checker

Statusdat

Page 40: State of Icinga

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

#osmc

Icinga 2 - Cluster Zones

Checker

Perfdata IDO

IDO

Checker

Graphite

Livestatus Checker

Statusdat

Host Host

Host

Checker

Perfdata IDO

Page 41: State of Icinga

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

#osmc

Icinga 2 - Master setup

Page 42: State of Icinga

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

#osmc

Icinga 2 - Master setup - State

Page 43: State of Icinga

ICINGA 2 – REMOTE MONITORING

Page 44: State of Icinga

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

#osmc

Icinga 2 - Remote nodes

• Challenges in remote monitoring

– Configuration format

– Different software stack and libraries

– Various platforms

– Deployment and configuration

– Used resources

– Insecure

Page 45: State of Icinga

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

#osmc

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

Page 46: State of Icinga

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

#osmc

Icinga 2 - Remote nodes

Checker

Perfdata IDO

Host

Checker

Perfdata IDO

Host Host

IDO

Checker

Graphite

Page 47: State of Icinga

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

#osmc

Icinga 2 - Remote node setup I

Page 48: State of Icinga

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

#osmc

Icinga 2 - Remote node setup II

Page 49: State of Icinga

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

#osmc

Icinga 2 - Remote node setup III

Page 50: State of Icinga

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

Demo

#osmc

Icinga 2 - Remote Client

Page 51: State of Icinga

ICINGA WEB 2

Page 52: State of Icinga

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

#osmc

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!

Page 53: State of Icinga

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

Backends Authentication Installer

Framework / Icinga PHP Library Web 2

#osmc

Icinga Web 2 - Foundation

Page 54: State of Icinga

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

Web 2

Monitoring Docs

#osmc

Icinga Web 2 - Modules

BP Graphite PNP

Page 55: State of Icinga

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

#osmc

Icinga Web 2 - Installer

Page 56: State of Icinga

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

Demo

#osmc

Icinga Web 2 - Demo

Page 57: State of Icinga

ROADMAP

Page 58: State of Icinga

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

#osmc

Icinga Roadmap

• Icinga 2

– Integrate with more third party tools

– API for everything

• Icinga Web 2

– Configuration frontend

– Provide more and more modules

– Health status for core and cluster

• Improve and get better

Page 59: State of Icinga

CONCLUSION

Page 60: State of Icinga

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

• Enjoy the evening event!

Page 61: State of Icinga

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

#osmc

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