Icinga 2011 at Chemnitzer Linuxtage


Published on

Icinga Team presenting current development.

  • Be the first to comment

  • Be the first to like this

Icinga 2011 at Chemnitzer Linuxtage

  1. 1. Icinga – Open Source MonitoringIcinga Development Team@ Chemnitzer Linux-Tage 201119.03.2011 - Chemnitz
  2. 2. Agenda Introduction Icinga Team Project Structure & Communication Tools and Platform Current Architecture HTTP Interface Future Architecture Addons for Icinga Live-Demo Roadmap Questions & Answers
  3. 3. Introduction 33 years old Icinga-Member from day one Background in Database Infrastructure and Service Oriented Architecture Responsibilities • Organization • Architecture
  4. 4. Introduction into the project
  5. 5. Icinga Team
  6. 6. Icinga Team - Locations
  7. 7. Project Structure & Communication feedback.icinga.orgwww.icinga.org dev.icinga.org docs.icinga.org wiki.icinga.org Mailing-Lists Icinga-Core Icinga-API Icinga-Web Icinga-Docs translate. icinga.org
  8. 8. Tools and Platform Icinga Quality, Testing and Community Support website and open source ticketing system Icinga- Icinga- Icinga- Icinga- Icinga- Core API Web Doc Reports C based based on based on based on based on source PHP PHP using Docbook in Jasper - MySQL Sencha, english and ReportingPostgreSQL Agavi MVC german Oracle GIT GIT GIT GIT GIT
  9. 9. Single node architecture - today Icinga-Web ExtJS / Agavi Icinga-API IDO Icinga-Core •MySQL •PostgreSQL IDMOD and •Oracle IDO2DB
  10. 10. Multi node architecture - today Icinga-Web Icinga- Icinga- Slave Slave ExtJS / Agavi •NSCA •SSH Icinga-API •OTHERS IDO Icinga-Core •MySQL •PostgreSQL IDMOD and •Oracle IDO2DB
  11. 11. 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
  12. 12. 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
  13. 13. NEB disadvantages 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 server in the worst-case scenario a NEB could crash the Icinga process changes to the Icinga-Core can break a NEB
  14. 14. Future architecture Icinga-Web and DB-API ExtJS / Agavi ExtJS / Agavi Icinga-API CORE-API •MySQL •PostgreSQL Icinga-Core •Oracle
  15. 15. Future architecture – Core API XML - RPC • XML based remote procedure call • firewall awareness • de facto standard bidirectional connection initiation checkresult reaper replacement CORE-API Icinga-Core
  16. 16. Future architecture - ABA - ABA switch in configABA: From A -> B -> A Icinga-CoreABA: Zulu for distribute CORE-API XML-RPC - external configuration ABA-Dispatcher - various schedulers - zoning and monitoring HTTP/HTTPS ABA- -load indicator ABA- ABA- Worker -health status Worker Worker
  17. 17. Future architecture - Advantages Icinga-Core Icinga-Core CORE-API CORE-API XML-RPC ABA-Dispatcher -caching ABA- ABA- -self learning schedulerWorker Worker -single ABA failback
  18. 18. 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
  19. 19. 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
  20. 20. HTTP Interface - Example http://localhost/icinga- web/web/api/service/filter[AND(HOST_CURRENT_STATE|=|0;OR(SERVICE_CURRENT_STATE|=|1;SE RVICE_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_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>
  21. 21. Addons contribute folder • integration for PNP4Nagios • Business-Process-View and -Editor EventDB Cronk for SNMP and logfile integration LConf Heatmap
  22. 22. 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)
  23. 23. Live Demo Demo
  24. 24. 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
  25. 25. Questions and Answers Q&A