Icinga – Open Source Monitoring .Icinga – Open Source Monitoring Icinga Development Team

  • View
    212

  • Download
    0

Embed Size (px)

Text of Icinga – Open Source Monitoring .Icinga – Open Source Monitoring Icinga Development Team

  • Icinga Open Source Monitoring

    Icinga Development Team

    @ Chemnitzer Linux-Tage 2011

    19.03.2011 - Chemnitz

  • Agenda

    Introduction

    Icinga Team

    Project Structure & Communication

    Tools and Platform

    Current Architecture

    HTTP Interface

    Future Architecture

    Addons for Icinga

    Live-Demo

    Roadmap

    Questions & Answers

  • Introduction

    33 years old

    Icinga-Member from day one

    Background in Database Infrastructure andService Oriented Architecture

    Responsibilities Organization

    Architecture

  • Introduction into the project

  • Icinga Team

  • Icinga Team - Locations

  • Project Structure & Communication

    Mailing-Lists

    Icinga-APIIcinga-Core Icinga-Web Icinga-Docs

    www.icinga.org dev.icinga.org docs.icinga.org wiki.icinga.org

    translate.icinga.org

    feedback.icinga.org

  • Tools and Platform

    Icinga Quality, Testing and Community Support

    website and open source ticketing system

    Icinga-API

    based on PHP

    Icinga-Core

    C based sourceMySQL

    PostgreSQLOracle

    Icinga-Web

    based on PHP using Sencha,

    Agavi MVC

    Icinga-Doc

    based on Docbook in english and

    german

    GIT GIT GIT GIT

    Icinga-Reports

    based on Jasper -

    Reporting

    GIT

  • Single node architecture - today

    Icinga-API

    Icinga-Core

    IDMOD and IDO2DB

    Icinga-Web

    ExtJS / Agavi

    IDOMySQL

    PostgreSQLOracle

  • Multi node architecture - today

    Icinga-API

    Icinga-Core

    IDMOD and IDO2DB

    IDOMySQL

    PostgreSQLOracle

    Icinga-Web

    ExtJS / Agavi

    Icinga-Slave

    Icinga-Slave

    NSCASSHOTHERS

  • Major problems in distributed and large environments

    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 commands ssh-quickfix solution for distributed commands

    NSCA is buggy like hell and should be replaced

    an abstract interface to the core-elements is needed

  • Problems with existing implementations

    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 looks good so far, but very new

    network protocol

    merlin

    based on NEB-Interface

  • NEB disadvantages

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

    it is not possible to change a NEB at runtime

    NEBs must reside on the same server

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

    changes to the Icinga-Core can break a NEB

  • Future architecture

    Icinga-CoreMySQL

    PostgreSQLOracle

    Icinga-Web

    ExtJS / Agavi

    CORE-API

    Icinga-API

    Icinga-Web and DB-API

    ExtJS / Agavi

  • Future architecture Core API

    Icinga-Core

    CORE-API

    XML - RPC XML based remote procedure call

    firewall awareness

    de facto standard

    bidirectional connection initiation

    checkresult reaper replacement

  • Future architecture - ABA

    Icinga-Core

    CORE-API

    ABA-Worker

    ABA-Worker

    - external configuration- various schedulers- zoning and monitoring

    XML-RPC

    ABA-Dispatcher

    - ABA switch in config

    ABA-Worker

    -load indicator-health status

    HTTP/HTTPS

    ABA: From A -> B -> A

    ABA: Zulu for distribute

  • Future architecture - Advantages

    Icinga-Core

    CORE-API

    ABA-Worker

    XML-RPC

    ABA-Dispatcher

    ABA-Worker

    Icinga-Core

    CORE-API

    -caching-self learning scheduler-single ABA failback

  • Future architecture - ABA Roadmap

    we will implement the architecture step by step

    the classic way is still working

    we have a loosely coupled transport and executing process

    flexibility

    external processes give us the possibility to check the Icinga infrastructure availability

    different protocols can be used and an individual distribution solution could be implemented

  • HTTP Interface

    request almost all Icinga database fields that are supported 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.)

    add Order, Limit, Group By

    get data via XML or JSON

    sending commands via PUT

  • HTTP Interface - Example

    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

    29513911MailQMailQError occured:error=1:0:0

    31115511POP3POP3Verbindungsaufbau abgelehnt

    2

  • Addons

    contribute folder

    integration for PNP4Nagios

    Business-Process-View and -Editor

    EventDB Cronk for SNMP and logfile integration

    LConf

    Heatmap

  • Reporting

    base reporting based on Jasper is finished

    reporting package is downloadable on

    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

    Icinga web integration is planned for this year (1.5)

    http://sourceforge.net/projects/icinga/https://git.icinga.org/?p=icinga-reports.git

  • Live Demo

    Demo

  • Roadmap

    unified roadmap

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

  • Questions and Answers

    Q & A

    Icinga Open Source MonitoringAgendaIntroductionIntroduction into the projectIcinga TeamIcinga Team - LocationsProject Structure & CommunicationTools and PlatformSingle node architecture - todayMulti node architecture - todayMajor problems in distributed and large environmentsProblems with existing implementationsNEB disadvantagesFuture architectureFuture architecture Core APIFuture architecture - ABAFuture architecture - AdvantagesFuture architecture - ABA RoadmapHTTP InterfaceHTTP Interface - ExampleAddonsReportingLive DemoRoadmapQuestions and Answers