View
212
Download
0
Embed Size (px)
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