Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen...

25
Icinga Open Source Monitoring Icinga Open Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10 2010 - Nuremberg 06.10.2010 - Nuremberg

Transcript of Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen...

Page 1: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Icinga – Open Source MonitoringIcinga Open Source Monitoring

Icinga Development Team

@ Open Source Monitoring Conference

06 10 2010 - Nuremberg06.10.2010 - Nuremberg

Page 2: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Agendag

Icinga Team P j t St t & C i ti Project Structure & Communication Tools and Platform

C t A hit t Current Architecture HTTP Interface Future Architecture Addons for Icinga Live-Demo Roadmap Questions & Answers

Page 3: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Icinga Teamg

Page 4: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Icinga Team - Locationsg

Page 5: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Project Structure & Communicationj

feedback icinga orgfeedback.icinga.org

www.icinga.org dev.icinga.org docs.icinga.org demo.icinga.org

Mailing-Lists

Icinga-APIIcinga-Core Icinga-Web Icinga-Docu

translate.icinga.org

Page 6: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Tools and Platform

Icinga Quality Testing and Community SupportIcinga Quality, Testing and Community Support

website and open source ticketing system

Icinga-API

Icinga-Core

Icinga-Web

Icinga-Doc

Icinga-Reports

based on C based based on based on

Reports

based on PHPsource

MySQLPostgreSQL

Oracle

PHP usingSencha,

Agavi MVC

Docbook in english and

german

Jasper -Reporting

Oracle

GIT GIT GIT GIT GIT

Page 7: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Single node architecture - todayg y

Icinga-Web

ExtJS / Agavi

Icinga-APIg

Icinga-Core

IDMOD and

IDOIDO•MySQL

•PostgreSQL IDMOD and IDO2DB

•PostgreSQL•Oracle

Page 8: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Multi node architecture - todayy

Icinga-Web

ExtJS / Agavi

Icinga-Slave

Icinga-Slave

Icinga-API

•NSCA•SSH•OTHERSg OTHERS

Icinga-Core

IDMOD and

IDOIDO•MySQL

•PostgreSQL IDMOD and IDO2DB

•PostgreSQL•Oracle

Page 9: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

HTTP Interface

request almost all Icinga database fields that are supported by Icinga-API (which covers almost all fields)by Icinga-API (which covers almost all fields)

filter via nested AND and OR groups (Condition 1 AND (Condition 2 OR (Condition 3 AND Condition 4)) etc )(Condition 2 OR (Condition 3 AND Condition 4))..etc.)

add Order, Limit, Group By

get data via XML or JSON get data via XML or JSON

sending commands via PUT

Page 10: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

HTTP Interface - Examplep

http://localhost/icinga-web/web/api/service/filter[AND(HOST_CURRENT_STATE|=|0;OR(SERVICE_CURRENT_STATE|=|1;SERVICE_CURRENT_STATE|=|2))]/ columns(SERVICE NAME|HOST NAME|SERVICE CURRENT STATE|HOST NAME|HOST CURRENT STATE|HOSTGROUP_NAME)/order(SERVICE_CURRENT_STATE;DESC)/countColumn=SERVICE_ID/authkey=APITEST123456/xml

<results>

<result>

<column name="SERVICE_ID">295</column>

<column name="SERVICE OBJECT ID">139</column>/

<column name="SERVICE_IS_ACTIVE">1</column>

<column name="SERVICE_INSTANCE_ID">1</column>

<column name="SERVICE_NAME">MailQ</column>

<column name="SERVICE_DISPLAY_NAME">MailQ</column>

<column name "SERVICE OUTPUT">Error occured:error 1:0:0</column><column name="SERVICE OUTPUT">Error occured:error=1:0:0</column>

<column name="SERVICE_PERFDATA"></column>

</result>

<result>

<column name="SERVICE_ID">311</column>

<column name="SERVICE OBJECT ID">155</column>

<column name="SERVICE_IS_ACTIVE">1</column>

<column name="SERVICE_INSTANCE_ID">1</column>

<column name="SERVICE_NAME">POP3</column>

<column name="SERVICE_DISPLAY_NAME">POP3</column>

<column name="SERVICE_OUTPUT">Verbindungsaufbau abgelehnt</column>

<column name="SERVICE_PERFDATA"></column>

</result>

<total>2</total>

</results>

Page 11: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Major problems in distributed and large environmentsj p g

loadbalancing• check slave availability

• dynamic check distribution

• specific checks must be forwarded to specific instances

commands are not distributed• there is only a “workaround” for the new web available

transport-layer of check results and commandsp y• ssh-quickfix solution for distributed commands

• NSCA is buggy like hell and should be replacedNSCA is buggy like hell and should be replaced

an abstract interface to the core-elements is needed

Page 12: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Problems with existing implementationsg p

config split and distribution• difficult management

• prone to error

DNX (distributed nagios executor)• single point of failure architecture

• not able to handle specific network zones

mod gearman_g• looks good so far, but very new

• network protocolnetwork protocol

merlin

based on NEB-Interface

Page 13: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

NEB disadvantagesg

NEB-Development is limited to C/C++ Coders

it is not possible to change a NEB at runtime

NEB’s must reside on the same servers ust es de o t e sa e se e

in the worst-case scenario a NEB could crash the Icinga processprocess

changes to the Icinga-Core can break a NEB

Page 14: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Future architecture

Icinga-Web

ExtJS / Agavi

Icinga-Web and DB-API

E JS / A i

Icinga-API

ExtJS / Agavi

g

Icinga-Core•MySQL

•PostgreSQL

CORE-API

Icinga Coreg Q•Oracle

Page 15: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Future architecture – Core API

XML - RPC• XML based remote procedure call

• firewall awareness

• de facto standard

bidirectional connection initiation

checkresult reaper replacement

Icinga-Core

CORE-API

Icinga Core

Page 16: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Future architecture - ABA

I i C- ABA switch in configABA F A > B > A Icinga-Core

CORE-API

ABA switch in configABA: From A -> B -> A

ABA: Zulu for distribute

- external configurationvarious schedulers

XML-RPC

ABA Di t h - various schedulers- zoning and monitoring

ABA-Dispatcher

HTTP/HTTPS

ABA- ABA-ABA- -load indicator ABAWorker

ABAWorker

ABAWorker

load indicator-health status

Page 17: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Future architecture - Advantagesg

Icinga-Core

CORE-API

Icinga-Core

CORE-API

XML-RPC

ABA-Dispatcher

hiABA-

WorkerABA-

Worker

-caching-self learning scheduler-single ABA failback

Page 18: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Future architecture - ABA Roadmapp

we will implement the architecture step by step

• the classic way is still working

• we have a loosely coupled transport and executing processy p p g p

flexibility

t l i th ibilit t h k th• external processes give us the possibility to check the Icinga infrastructure availability

diff t t l b d d i di id l• different protocols can be used and an individual distribution solution could be implemented

Page 19: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Addons

contribute folder

• integration for PNP4Nagios

• Business Process View and Editor• Business-Process-View and -Editor

EventDB Cronk for SNMP and logfile integration

LConf

Heatmap

Page 20: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Reportingp g

base reporting based on Jasper is finished

reporting package is downloadable on

http://sourceforge net/projects/icinga/• http://sourceforge.net/projects/icinga/

• https://git.icinga.org/?p=icinga-reports.git

the only thing you need is a JasperServer

single line installation available

• /js-import sh --input-zip icinga report package zip./js import.sh input zip icinga_report_package.zip

Icinga web integration is planned for next year

Page 21: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Live Demo

DemoDemo

Page 22: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Roadmapp

unified roadmap

• 1.2 - today - stable release

• 1 3 16 02 2011 unstable Release• 1.3 - 16.02.2011 - unstable Release

• 1.4 - 11.05.2011 - stable Release

• 1.5 - 17.08.2011 - unstable Release

• 1.6 - 09.11.2011 - stable Release

bugfix releases 1.X.Xg

Page 23: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

One more thingg

completedp

Page 24: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Mobile Demo

bil d i imobile.demo.icinga.org

Page 25: Icinga – Open Source MonitoringOpen Source Monitoring · Icinga – Open Source MonitoringOpen Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 06 10

Questions and Answers

Q & AQ & A