icinga – open source monitoringopen source monitoring · icinga – open source monitoringopen...
Embed Size (px)
TRANSCRIPT

Icinga – Open Source MonitoringIcinga Open Source Monitoring
Icinga Development Team
@ Open Source Monitoring Conference
06 10 2010 - Nuremberg06.10.2010 - Nuremberg

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

Icinga Teamg

Icinga Team - Locationsg

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

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

Single node architecture - todayg y
Icinga-Web
ExtJS / Agavi
Icinga-APIg
Icinga-Core
IDMOD and
IDOIDO•MySQL
•PostgreSQL IDMOD and IDO2DB
•PostgreSQL•Oracle

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

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

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>

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

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

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

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

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

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

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

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

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

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

Live Demo
DemoDemo

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

One more thingg
completedp

Mobile Demo
bil d i imobile.demo.icinga.org

Questions and Answers
Q & AQ & A