SlideShare a Scribd company logo
1 of 23
Download to read offline
Icinga – Open Source Monitoring
Icinga Development Team
@ Open Source Monitoring Conference
28.10.2009 - Nuremberg
Agenda
  The Icinga Project
  Project Structure
  Tools and Plattform
  Icinga Development Team
  History
  Project Status Update
  Live-Demo
  Roadmap
  Questions & Answers
• Biweekly Skype session (short night for Scott)
• Team Mailinglist for communication
• Ticketing und project-management (dev.icinga.org)
The Project Structure
Icinga Quality, Testing and Community Support
Icinga-APIIcinga-Core Icinga-Web Icinga-Docu
Tools and Platform
Icinga Quality, Testing and Community Support
website and open source ticketing system
Icinga-API
based on PHP
Icinga-Core
C based source
MySQL
PostgreSQL
Oracle
Icinga-Web
based on PHP
using ExtJS,
YUI, Agavi MVC
and Icinga-API
Icinga-Doc
based on
Docbook in
english and
german
GIT GIT GIT GIT
The Icinga Development Team
  Core Team
•  Hendrik Bäcker
•  Michael Friedrich
•  Christoph Maser
  API Team
•  Christian Döbler / Marius Hein
•  Michael Lübben
  Web Team
•  Marius Hein / Christian Döbler
•  Michael Lübben
  Docu Team
•  Lara Berdelsmann
•  Wolfgang Nieder
  Organisation and Community-Support
•  Scott Evans
•  Bernd Erk
•  Karolina Kalisz
Semi-annual History
  Release of 5 Icinga Versions (currently 0.8.4)
  Integrated IDOMod and IDOUtils
  Migration to libdbi for database access
  Additional database-support for PostgreSQL and Oracle
  PHP based API for core-data access
  Complete Docbook manual (currently 2 languages)
Project Status Update - Doc
  Why migrate to Docbook
•  create various formats based on a single technical base
•  layout is independent from content
•  transformation into various formats using XSLT, XSL-
FO
•  HTML, XHTML, PDF, PostScript, RTF, MANPAGES
•  use different stylesheets like
•  XSL, FOSIs, DSSSL and CSS
•  modularity using includes
•  two languages (en, de) available now on
docs.icinga.org and more to come (es)
Project Status Update – docs.icinga.org
Project Status Update – Core
  Renamed core
  Fetched Nagios patches to stay compatible
  Renamed IDOUtils; version handling like core
  Added IDOUtils as core module during install
  Applied Patches from NDOUtils
  Introduced new DB Abstraction layer: libdbi
  Added SSL support over TCP sockets
  Added initial support for more RDBMs
•  PostgreSQL
•  Oracle
Project Status Update – Core: IDOUtils
  Rewritten ido2db using libdbi as DB layer
  Normalized SQL-Queries
  Rewritten INSERT OR UPDATE queries
•  Data array handed to function
•  Function decides upon RDBM which query is executed
  Experiment with housekeeping
•  Lower DB trimming intervals
•  Test partial DELETE based on COMMIT with cursors
Project Status Update – Core: IDOUtils Postgresql
  First approach to INSERT OR UPDATE
•  Extract unique constraints
•  Try update
•  If no rows affected try insert
  Last insert ID based on table sequence ID
  Experiment with string escaping
  Does not perform very well
•  Needs procedures for INSERT OR UPDATE
•  Try INSERT
•  If unique constraint exception, do UPDATE
Project Status Update – Core: IDOUtils Oracle
  Libdbi Oracle driver is broken
  Introduce ocilib as addon driver
  Integrate into configure
•  --enable-oracle
•  Set LD_LIBRARY_PATH in initscript
•  Link ocilib at runtime
•  #define USE_ORACLE, #include ocilib.h
  Break up code with #ifdef USE_ORACLE
•  If stepping back to libdbi, full reinstall required
Project Status Update – Core: IDOUtils Oracle
  INSERT OR UPDATE approach from PostgreSQL
•  MERGE ON DUAL trick
  Last insert ID based on
•  INSERT INTO trigger
•  Setting new current sequence ID
  Oracle specific changes
•  No AUTOCOMMIT
•  NOW() → SYSDATE
•  Drop table_prefix, rename one table (30 char max)
•  PK is id instead of [table]_id
•  Use CLOB (varchar2 supports 4000 bytes max)
Project Status Update – API
  fetches information from icinga
  sends commands to icinga
  no dependencies to other libraries or frameworks
  opportunity to be free from complex data schemas
  available interfaces
  output: database (PHP-PDO)
  input: pipe, ssh
Project Status Update – API Example I – Connect Icinga
$apiFile	
  =	
  'icinga-­‐api/IcingaApi.php';	
  
$idoConfig	
  =	
  array	
  (	
  
	
  'type' 	
   	
  =>	
  'mysql',	
  
	
  'host' 	
   	
  =>	
  'database_master',	
  
	
  'database'	
   	
  =>	
  'icinga_db',	
  
	
  'user' 	
   	
  =>	
  'icinga_user',	
  
	
  'password'	
   	
  =>	
  ‘very_secret',	
  
	
  'table_prefix' 	
  =>	
  'icinga_',	
  
);
Project Status Update – API Example II – Search Data
require_once($apiFile);	
  
$api	
  =	
  IcingaApi::getConnection(IcingaApi::CONNECTION_IDO,	
  $idoConfig);	
  
$apiRes	
  =	
  $api-­‐>createSearch()	
  
	
  -­‐>setSearchTarget(IcingaApi::TARGET_SERVICE)	
  
	
  -­‐>setResultColumns(array(	
  
	
   	
  'SERVICE_NAME',	
   	
   	
  	
  
	
   	
  'SERVICE_OUTPUT',	
  	
  
	
   	
  'SERVICE_PERFDATA',	
  	
  
	
   	
  'SERVICE_CURRENT_STATE'	
  
	
  ))	
  
	
  -­‐>setSearchFilter(array(	
  
	
   	
  array('CONTACTGROUP_NAME',	
  '%',	
  IcingaApi::MATCH_LIKE),	
  
	
   	
  array('HOST_NAME',	
  'localhost‘)	
  
	
   	
  ))	
  
	
  -­‐>setSearchGroup('SERVICE_NAME')	
  
	
  -­‐>setSearchOrder(array('SERVICE_NAME'))	
  
	
  -­‐>fetch();
Project Status Update – API Example III – Send Data
$config	
  =	
  array	
  (	
  
	
  'ssh_bin'	
   	
  =>	
  '/usr/bin/ssh',	
  
	
  'ssh_user'	
   	
  =>	
  'icinga',	
  
	
  'ssh_host‘	
   	
  =>	
  'monitoring_server',	
  
	
  'ssh_port‘	
   	
  =>	
  22,	
  
	
  'ssh_timeout' 	
  =>	
  20,	
  
	
  'ssh_pipe‘	
   	
  =>	
  '/usr/local/icinga/var/rw/icinga.cmd‘	
  
);	
  
$cmd	
  =	
  IcingaApi::getCommandObject();	
  
$cmd-­‐>setCommand('SCHEDULE_SVC_CHECK')	
  
	
  -­‐>setTarget(IcingaApi::COMMAND_INSTANCE,	
  '1')	
  
	
  -­‐>setTarget(IcingaApi::COMMAND_HOST,	
  'linux-­‐www-­‐20')	
  
	
  -­‐>setTarget(IcingaApi::COMMAND_SERVICE,	
  'apache-­‐procs')	
  
	
  -­‐>setTarget(IcingaApi::COMMAND_CHECKTIME,	
  '1251449262');	
  
$cmdDisp	
  =	
  IcingaApi::getCommandDispatcher();	
  
$cmdDisp-­‐>setInterface(IcingaApi::COMMAND_SSH,	
  $config)	
  
	
  -­‐>setCommand(array($cmd))	
  
	
  -­‐>send();
Project Status Update – Web architecture
Icinga-API
Icinga-Core
IDMOD and
IDO2DB
IDODB
• MySQL
• PostgreSQL
• Oracle
Icinga-Web
ExtJS / Agavi / Appkit
Your Addon
Project Status Update – Web Features
  persistent user settings
  multiple authentification adapters
•  BasicAuth
•  LDAP
•  Database
  easy extendable using custom cronks
  create custom views on all monitoring items
  state of the art web 2.0 interface
Live Demo
Demo
Project Compatbility
  downward compatible to Nagios®
•  configuration
•  plugins
•  addons
  compatible database schemas
  similar libdbi implementation planned for Nagios®
Roadmap
  Core-Roadmap
•  28. Oct - Core RC 1.0
•  16. Dec - Core 1.0 Stable
•  03. March - Core 1.0.1
•  30. June - Core 1.0.2
  Web-Roadmap
•  28. Oct- Web Alpha 0.9
•  16. Dec - Web Alpha 0.9.1
•  03. March - Web 0.9.1 Beta
•  30. June - Web 1.0 RC
unified Icinga roadmap
Questions and Answers
Q & A

More Related Content

What's hot

Tale of ISUCON and Its Bench Tools
Tale of ISUCON and Its Bench ToolsTale of ISUCON and Its Bench Tools
Tale of ISUCON and Its Bench ToolsSATOSHI TAGOMORI
 
Apache Sqoop: A Data Transfer Tool for Hadoop
Apache Sqoop: A Data Transfer Tool for HadoopApache Sqoop: A Data Transfer Tool for Hadoop
Apache Sqoop: A Data Transfer Tool for HadoopCloudera, Inc.
 
"How about no grep and zabbix?". ELK based alerts and metrics.
"How about no grep and zabbix?". ELK based alerts and metrics."How about no grep and zabbix?". ELK based alerts and metrics.
"How about no grep and zabbix?". ELK based alerts and metrics.Vladimir Pavkin
 
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and NagiosNagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and NagiosNagios
 
ELK Elasticsearch Logstash and Kibana Stack for Log Management
ELK Elasticsearch Logstash and Kibana Stack for Log ManagementELK Elasticsearch Logstash and Kibana Stack for Log Management
ELK Elasticsearch Logstash and Kibana Stack for Log ManagementEl Mahdi Benzekri
 
Introduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UK
Introduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UKIntroduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UK
Introduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UKSkills Matter
 
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...InfluxData
 
(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot Instances(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot InstancesAmazon Web Services
 
Natural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache SparkNatural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache SparkDatabricks
 
Sqoop on Spark for Data Ingestion
Sqoop on Spark for Data IngestionSqoop on Spark for Data Ingestion
Sqoop on Spark for Data IngestionDataWorks Summit
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageSATOSHI TAGOMORI
 
Elk ruminating on logs
Elk ruminating on logsElk ruminating on logs
Elk ruminating on logsMathew Beane
 
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰Wayne Chen
 
Introduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationNelson Calero
 
Data analysis scala_spark
Data analysis scala_sparkData analysis scala_spark
Data analysis scala_sparkYiguang Hu
 

What's hot (20)

Tale of ISUCON and Its Bench Tools
Tale of ISUCON and Its Bench ToolsTale of ISUCON and Its Bench Tools
Tale of ISUCON and Its Bench Tools
 
Apache Sqoop: A Data Transfer Tool for Hadoop
Apache Sqoop: A Data Transfer Tool for HadoopApache Sqoop: A Data Transfer Tool for Hadoop
Apache Sqoop: A Data Transfer Tool for Hadoop
 
"How about no grep and zabbix?". ELK based alerts and metrics.
"How about no grep and zabbix?". ELK based alerts and metrics."How about no grep and zabbix?". ELK based alerts and metrics.
"How about no grep and zabbix?". ELK based alerts and metrics.
 
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and NagiosNagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
 
ELK Elasticsearch Logstash and Kibana Stack for Log Management
ELK Elasticsearch Logstash and Kibana Stack for Log ManagementELK Elasticsearch Logstash and Kibana Stack for Log Management
ELK Elasticsearch Logstash and Kibana Stack for Log Management
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Introduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UK
Introduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UKIntroduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UK
Introduction to Sqoop Aaron Kimball Cloudera Hadoop User Group UK
 
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
 
Introduction to ELK
Introduction to ELKIntroduction to ELK
Introduction to ELK
 
(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot Instances(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot Instances
 
Natural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache SparkNatural Language Query and Conversational Interface to Apache Spark
Natural Language Query and Conversational Interface to Apache Spark
 
Sqoop on Spark for Data Ingestion
Sqoop on Spark for Data IngestionSqoop on Spark for Data Ingestion
Sqoop on Spark for Data Ingestion
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby Usage
 
Elk ruminating on logs
Elk ruminating on logsElk ruminating on logs
Elk ruminating on logs
 
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
 
Log analysis with elastic stack
Log analysis with elastic stackLog analysis with elastic stack
Log analysis with elastic stack
 
Introduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Sqoop | Big Data Hadoop Spark Tutorial | CloudxLab
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operation
 
Elk
Elk Elk
Elk
 
Data analysis scala_spark
Data analysis scala_sparkData analysis scala_spark
Data analysis scala_spark
 

Similar to Icinga Open Source Monitoring Project Update

Icinga 2009 at OSMC
Icinga 2009 at OSMCIcinga 2009 at OSMC
Icinga 2009 at OSMCIcinga
 
Icinga 2010 at Nagios Workshop
Icinga 2010 at Nagios WorkshopIcinga 2010 at Nagios Workshop
Icinga 2010 at Nagios WorkshopIcinga
 
Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21JDA Labs MTL
 
DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT_MTL
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with PuppetKris Buytaert
 
Icinga2 - Upcoming API for Icinga2
Icinga2 - Upcoming API for Icinga2Icinga2 - Upcoming API for Icinga2
Icinga2 - Upcoming API for Icinga2Icinga
 
Icinga 2010 at CeBIT
Icinga 2010 at CeBITIcinga 2010 at CeBIT
Icinga 2010 at CeBITIcinga
 
Icinga 2 API @ Icinga Camp Portland at Puppetlabs
Icinga 2 API @ Icinga Camp Portland at PuppetlabsIcinga 2 API @ Icinga Camp Portland at Puppetlabs
Icinga 2 API @ Icinga Camp Portland at PuppetlabsIcinga
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with PuppetKris Buytaert
 
Hydra - Getting Started
Hydra - Getting StartedHydra - Getting Started
Hydra - Getting Startedabramsm
 
Implementing a build manager in Ada
Implementing a build manager in AdaImplementing a build manager in Ada
Implementing a build manager in AdaStephane Carrez
 
Scaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in CloudScaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in CloudChangshu Liu
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoopclairvoyantllc
 
Spring Cloud: API gateway upgrade & configuration in the cloud
Spring Cloud: API gateway upgrade & configuration in the cloudSpring Cloud: API gateway upgrade & configuration in the cloud
Spring Cloud: API gateway upgrade & configuration in the cloudOrkhan Gasimov
 
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey Lensen
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey LensenOSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey Lensen
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey LensenNETWAYS
 
Introducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.jsIntroducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.jsRichard Rodger
 
Just one-shade-of-openstack
Just one-shade-of-openstackJust one-shade-of-openstack
Just one-shade-of-openstackRoberto Polli
 

Similar to Icinga Open Source Monitoring Project Update (20)

Icinga 2009 at OSMC
Icinga 2009 at OSMCIcinga 2009 at OSMC
Icinga 2009 at OSMC
 
Icinga 2010 at Nagios Workshop
Icinga 2010 at Nagios WorkshopIcinga 2010 at Nagios Workshop
Icinga 2010 at Nagios Workshop
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21
 
DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Icinga2 - Upcoming API for Icinga2
Icinga2 - Upcoming API for Icinga2Icinga2 - Upcoming API for Icinga2
Icinga2 - Upcoming API for Icinga2
 
Icinga 2010 at CeBIT
Icinga 2010 at CeBITIcinga 2010 at CeBIT
Icinga 2010 at CeBIT
 
Icinga 2 API @ Icinga Camp Portland at Puppetlabs
Icinga 2 API @ Icinga Camp Portland at PuppetlabsIcinga 2 API @ Icinga Camp Portland at Puppetlabs
Icinga 2 API @ Icinga Camp Portland at Puppetlabs
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with Puppet
 
Hydra - Getting Started
Hydra - Getting StartedHydra - Getting Started
Hydra - Getting Started
 
Implementing a build manager in Ada
Implementing a build manager in AdaImplementing a build manager in Ada
Implementing a build manager in Ada
 
Scaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in CloudScaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in Cloud
 
Introduction to the Archivematica API (September 2018)
Introduction to the Archivematica API (September 2018)Introduction to the Archivematica API (September 2018)
Introduction to the Archivematica API (September 2018)
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
 
Spring Cloud: API gateway upgrade & configuration in the cloud
Spring Cloud: API gateway upgrade & configuration in the cloudSpring Cloud: API gateway upgrade & configuration in the cloud
Spring Cloud: API gateway upgrade & configuration in the cloud
 
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey Lensen
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey LensenOSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey Lensen
OSMC 2011 | Case Study - Icinga at Hyves.nl by Jeffrey Lensen
 
Introducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.jsIntroducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.js
 
20120816 nodejsdublin
20120816 nodejsdublin20120816 nodejsdublin
20120816 nodejsdublin
 
Just one-shade-of-openstack
Just one-shade-of-openstackJust one-shade-of-openstack
Just one-shade-of-openstack
 

Recently uploaded

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Recently uploaded (20)

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 

Icinga Open Source Monitoring Project Update

  • 1. Icinga – Open Source Monitoring Icinga Development Team @ Open Source Monitoring Conference 28.10.2009 - Nuremberg
  • 2. Agenda   The Icinga Project   Project Structure   Tools and Plattform   Icinga Development Team   History   Project Status Update   Live-Demo   Roadmap   Questions & Answers
  • 3. • Biweekly Skype session (short night for Scott) • Team Mailinglist for communication • Ticketing und project-management (dev.icinga.org) The Project Structure Icinga Quality, Testing and Community Support Icinga-APIIcinga-Core Icinga-Web Icinga-Docu
  • 4. Tools and Platform Icinga Quality, Testing and Community Support website and open source ticketing system Icinga-API based on PHP Icinga-Core C based source MySQL PostgreSQL Oracle Icinga-Web based on PHP using ExtJS, YUI, Agavi MVC and Icinga-API Icinga-Doc based on Docbook in english and german GIT GIT GIT GIT
  • 5. The Icinga Development Team   Core Team •  Hendrik Bäcker •  Michael Friedrich •  Christoph Maser   API Team •  Christian Döbler / Marius Hein •  Michael Lübben   Web Team •  Marius Hein / Christian Döbler •  Michael Lübben   Docu Team •  Lara Berdelsmann •  Wolfgang Nieder   Organisation and Community-Support •  Scott Evans •  Bernd Erk •  Karolina Kalisz
  • 6. Semi-annual History   Release of 5 Icinga Versions (currently 0.8.4)   Integrated IDOMod and IDOUtils   Migration to libdbi for database access   Additional database-support for PostgreSQL and Oracle   PHP based API for core-data access   Complete Docbook manual (currently 2 languages)
  • 7. Project Status Update - Doc   Why migrate to Docbook •  create various formats based on a single technical base •  layout is independent from content •  transformation into various formats using XSLT, XSL- FO •  HTML, XHTML, PDF, PostScript, RTF, MANPAGES •  use different stylesheets like •  XSL, FOSIs, DSSSL and CSS •  modularity using includes •  two languages (en, de) available now on docs.icinga.org and more to come (es)
  • 8. Project Status Update – docs.icinga.org
  • 9. Project Status Update – Core   Renamed core   Fetched Nagios patches to stay compatible   Renamed IDOUtils; version handling like core   Added IDOUtils as core module during install   Applied Patches from NDOUtils   Introduced new DB Abstraction layer: libdbi   Added SSL support over TCP sockets   Added initial support for more RDBMs •  PostgreSQL •  Oracle
  • 10. Project Status Update – Core: IDOUtils   Rewritten ido2db using libdbi as DB layer   Normalized SQL-Queries   Rewritten INSERT OR UPDATE queries •  Data array handed to function •  Function decides upon RDBM which query is executed   Experiment with housekeeping •  Lower DB trimming intervals •  Test partial DELETE based on COMMIT with cursors
  • 11. Project Status Update – Core: IDOUtils Postgresql   First approach to INSERT OR UPDATE •  Extract unique constraints •  Try update •  If no rows affected try insert   Last insert ID based on table sequence ID   Experiment with string escaping   Does not perform very well •  Needs procedures for INSERT OR UPDATE •  Try INSERT •  If unique constraint exception, do UPDATE
  • 12. Project Status Update – Core: IDOUtils Oracle   Libdbi Oracle driver is broken   Introduce ocilib as addon driver   Integrate into configure •  --enable-oracle •  Set LD_LIBRARY_PATH in initscript •  Link ocilib at runtime •  #define USE_ORACLE, #include ocilib.h   Break up code with #ifdef USE_ORACLE •  If stepping back to libdbi, full reinstall required
  • 13. Project Status Update – Core: IDOUtils Oracle   INSERT OR UPDATE approach from PostgreSQL •  MERGE ON DUAL trick   Last insert ID based on •  INSERT INTO trigger •  Setting new current sequence ID   Oracle specific changes •  No AUTOCOMMIT •  NOW() → SYSDATE •  Drop table_prefix, rename one table (30 char max) •  PK is id instead of [table]_id •  Use CLOB (varchar2 supports 4000 bytes max)
  • 14. Project Status Update – API   fetches information from icinga   sends commands to icinga   no dependencies to other libraries or frameworks   opportunity to be free from complex data schemas   available interfaces   output: database (PHP-PDO)   input: pipe, ssh
  • 15. Project Status Update – API Example I – Connect Icinga $apiFile  =  'icinga-­‐api/IcingaApi.php';   $idoConfig  =  array  (    'type'    =>  'mysql',    'host'    =>  'database_master',    'database'    =>  'icinga_db',    'user'    =>  'icinga_user',    'password'    =>  ‘very_secret',    'table_prefix'  =>  'icinga_',   );
  • 16. Project Status Update – API Example II – Search Data require_once($apiFile);   $api  =  IcingaApi::getConnection(IcingaApi::CONNECTION_IDO,  $idoConfig);   $apiRes  =  $api-­‐>createSearch()    -­‐>setSearchTarget(IcingaApi::TARGET_SERVICE)    -­‐>setResultColumns(array(      'SERVICE_NAME',            'SERVICE_OUTPUT',        'SERVICE_PERFDATA',        'SERVICE_CURRENT_STATE'    ))    -­‐>setSearchFilter(array(      array('CONTACTGROUP_NAME',  '%',  IcingaApi::MATCH_LIKE),      array('HOST_NAME',  'localhost‘)      ))    -­‐>setSearchGroup('SERVICE_NAME')    -­‐>setSearchOrder(array('SERVICE_NAME'))    -­‐>fetch();
  • 17. Project Status Update – API Example III – Send Data $config  =  array  (    'ssh_bin'    =>  '/usr/bin/ssh',    'ssh_user'    =>  'icinga',    'ssh_host‘    =>  'monitoring_server',    'ssh_port‘    =>  22,    'ssh_timeout'  =>  20,    'ssh_pipe‘    =>  '/usr/local/icinga/var/rw/icinga.cmd‘   );   $cmd  =  IcingaApi::getCommandObject();   $cmd-­‐>setCommand('SCHEDULE_SVC_CHECK')    -­‐>setTarget(IcingaApi::COMMAND_INSTANCE,  '1')    -­‐>setTarget(IcingaApi::COMMAND_HOST,  'linux-­‐www-­‐20')    -­‐>setTarget(IcingaApi::COMMAND_SERVICE,  'apache-­‐procs')    -­‐>setTarget(IcingaApi::COMMAND_CHECKTIME,  '1251449262');   $cmdDisp  =  IcingaApi::getCommandDispatcher();   $cmdDisp-­‐>setInterface(IcingaApi::COMMAND_SSH,  $config)    -­‐>setCommand(array($cmd))    -­‐>send();
  • 18. Project Status Update – Web architecture Icinga-API Icinga-Core IDMOD and IDO2DB IDODB • MySQL • PostgreSQL • Oracle Icinga-Web ExtJS / Agavi / Appkit Your Addon
  • 19. Project Status Update – Web Features   persistent user settings   multiple authentification adapters •  BasicAuth •  LDAP •  Database   easy extendable using custom cronks   create custom views on all monitoring items   state of the art web 2.0 interface
  • 21. Project Compatbility   downward compatible to Nagios® •  configuration •  plugins •  addons   compatible database schemas   similar libdbi implementation planned for Nagios®
  • 22. Roadmap   Core-Roadmap •  28. Oct - Core RC 1.0 •  16. Dec - Core 1.0 Stable •  03. March - Core 1.0.1 •  30. June - Core 1.0.2   Web-Roadmap •  28. Oct- Web Alpha 0.9 •  16. Dec - Web Alpha 0.9.1 •  03. March - Web 0.9.1 Beta •  30. June - Web 1.0 RC unified Icinga roadmap