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

Icinga @ OSMC 2014

  • Upload
    icinga

  • View
    7.466

  • Download
    0

Embed Size (px)

DESCRIPTION

Icinga @ OSMC 2014 Presentation: http://www.netways.de/index.php?id=4637&L=1

Citation preview

WWW.ICINGA.ORG

Open Source Monitoring

Conference – 11/19/2014 State of Icinga

ABOUT US

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

#osmc

About us - People

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

#osmc

About us - Teams

Team Core

Team Web

Team Packages & Tools

Team Community

Team Q&A & Docs

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

THE COMMUNITY

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

#osmc

The Community - Users

You?

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

#osmc

The Community - Website

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

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

#osmc

The Community - Icinga Camp San Francisco

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

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

#osmc

The Community - Icinga Exchange

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

#osmc

The Community - Icinga Exchange - GitHub

ICINGA 1

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

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

#osmc

Icinga 1 - Overview

• 35 releases until today

• We’ll keep it in maintenance!

ICINGA 2 - INTRODUCTION

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!

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

#osmc

Icinga 2 - Install from source

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

#osmc

Icinga 2 - Install from source

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

#osmc

Icinga 2 - Install packages

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

#osmc

Icinga 2 - Install packages

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

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

#osmc

Icinga 2 - CLI - Demo

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

Checker

Statusdat

Gelf

Perfdata Graphite

IDO

Compat

Livestatus

#osmc

Icinga 2 - Architecture

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

Livestatus

#osmc

Icinga 2 - Enable Livestatus

ICINGA 2 - CONFIGURATION

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!

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

}

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“

}

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

}

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)

}

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)

}

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

#osmc

Icinga 2 - One more thing

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}

ICINGA 2 - CLUSTER

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

CA Zones API

#osmc

Icinga 2 - Cluster Overview

Cluster

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

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

#osmc

Icinga 2 - Cluster Distribution

Checker

Perfdata IDO

IDO

Checker

Graphite

Livestatus Checker

Statusdat

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

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

#osmc

Icinga 2 - Master setup

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

#osmc

Icinga 2 - Master setup - State

ICINGA 2 – REMOTE MONITORING

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

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

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

#osmc

Icinga 2 - Remote nodes

Checker

Perfdata IDO

Host

Checker

Perfdata IDO

Host Host

IDO

Checker

Graphite

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

#osmc

Icinga 2 - Remote node setup I

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

#osmc

Icinga 2 - Remote node setup II

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

#osmc

Icinga 2 - Remote node setup III

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

Demo

#osmc

Icinga 2 - Remote Client

ICINGA WEB 2

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!

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

Backends Authentication Installer

Framework / Icinga PHP LibraryWeb 2

#osmc

Icinga Web 2 - Foundation

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

Web 2

Monitoring Docs

#osmc

Icinga Web 2 - Modules

BP Graphite PNP

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

#osmc

Icinga Web 2 - Installer

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

Demo

#osmc

Icinga Web 2 - Demo

ROADMAP

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

CONCLUSION

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!

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