SlideShare a Scribd company logo
SysDB – System DataBase 
a system management and inventory collection service 
Sebastian ‘tokkee’ Harl 
<sh@tokkee.org> 
SysDB developer 
Open Source Data Center Conference 2014 
April, 10 2014 
Berlin
Disclaimer 
WARNING: 
SysDB is still under heavy development. 
Flaming, bashing or other forms of constructive 
feeback are very appreciated :-) 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 2
Background / Motivation 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 3
Motivation 
Why SysDB? 
 Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
Motivation 
Why SysDB? 
 Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? 
 Who also uses Puppet/Chef/etc.? 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
Motivation 
Why SysDB? 
 Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? 
 Who also uses Puppet/Chef/etc.? 
 Who also uses collectd/Munin/etc.? 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
Motivation 
Why SysDB? 
 Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? 
 Who also uses Puppet/Chef/etc.? 
 Who also uses collectd/Munin/etc.? 
 Who also uses some inventory service? 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
Motivation 
Why SysDB? 
 Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? 
 Who also uses Puppet/Chef/etc.? 
 Who also uses collectd/Munin/etc.? 
 Who also uses some inventory service? 
 Who also maintains a CMDB? 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
Motivation 
Why SysDB? 
 Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? 
 Who also uses Puppet/Chef/etc.? 
 Who also uses collectd/Munin/etc.? 
 Who also uses some inventory service? 
 Who also maintains a CMDB? 
 Who likes their setup? ;-) 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
History 
 Initially, I wanted a new front-end for collectd suitable for large, 
heterogeneous environments. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
History 
 Initially, I wanted a new front-end for collectd suitable for large, 
heterogeneous environments. 
 First idea: group graphs using Puppet facts. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
History 
 Initially, I wanted a new front-end for collectd suitable for large, 
heterogeneous environments. 
 First idea: group graphs using Puppet facts. 
 Second thought: oh, then we can also add monitoring 
information. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
History 
 Initially, I wanted a new front-end for collectd suitable for large, 
heterogeneous environments. 
 First idea: group graphs using Puppet facts. 
 Second thought: oh, then we can also add monitoring 
information. 
 Then: this should be generic and extensible. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
History 
 Initially, I wanted a new front-end for collectd suitable for large, 
heterogeneous environments. 
 First idea: group graphs using Puppet facts. 
 Second thought: oh, then we can also add monitoring 
information. 
 Then: this should be generic and extensible. 
 Then I realized that I don’t like web development. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
History 
 Initially, I wanted a new front-end for collectd suitable for large, 
heterogeneous environments. 
 First idea: group graphs using Puppet facts. 
 Second thought: oh, then we can also add monitoring 
information. 
 Then: this should be generic and extensible. 
 Then I realized that I don’t like web development. 
 Also, a system like that would need a good back-end. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
History 
 Initially, I wanted a new front-end for collectd suitable for large, 
heterogeneous environments. 
 First idea: group graphs using Puppet facts. 
 Second thought: oh, then we can also add monitoring 
information. 
 Then: this should be generic and extensible. 
 Then I realized that I don’t like web development. 
 Also, a system like that would need a good back-end. 
 ! the idea for SysDB was born 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
The System DataBase 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 6
SysDB – Overview 
 SysDB collects information about arbitrary hardware and software 
systems. 
 The central idea is to get a central view of your infrastructure. 
 Simple examples: 
Hosts and their attributes (“facts”) 
Services and their attributes 
Monitoring information (e.g. current state) 
 SysDB collects these information and correlates objects from 
various backends. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 7
SysDB – core features 
 https://github.com/tokkee/sysdb 
CI: https://travis-ci.org/tokkee/sysdb 
 60% code (function) unit-test coverage in the core 
 BSD license 
 Written in C 
 Easy to extend (simple plugin API) 
 Simple network protocol 
 Most of the code implemented as a library (reusable) 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 8
SysDB – Plugins 
Currently available: 
 collectd::unixsock – query collectd’s UNIX socket interface 
 mk-livestatus – query Monitoring systems (Nagios, Naemon, 
Icing, Shinken) using Check MK Livestatus 
 puppet::store-configs – query Puppet 
 cname::dns – canonicalize host-names using DNS 
 syslog – syslog logging 
Planned: Passive data collection (e.g. using Gearman), Foreman, 
PuppetDB, $your favorite system (send patches!) :-) 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 9
SysDB – Architecture 
infra 
backends 
sysdbd 
store FE 
sysdb 
network 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 10
The SysDB Store 
 The actual database implementation (in memory) 
 Stores generic objects: 
Host – any kind of physical resource 
Service – any kind of service 
Attribute – attributes of hosts and services 
 Canonicalization of hosts 
 Each object stores the timestamp of the last update and the 
(automatically calculated) update interval 
 Interface to query data 
 JSON is the external data representation 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 11
The SysDB Store – Examples 
kvm0 
kvm1 
kvm2 
ovirt0 
vhost0 
vhost0 
vhost0 
vhost0 
vhost0 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 12
Internal Data Structures 
message Host { 
required string name; 
required DateTime last_update; 
required Interval update_interval; 
repeated Attribute attributes; 
repeated Object children; // Host or Service 
optional Object parent; 
} 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 13
Internal Data Structures 
message Service { 
required string name; 
required DateTime last_update; 
required Interval update_interval; 
repeated Attribute attributes; 
repeated Object children; // Host or Service 
repeated Object parent; // multiple! 
} 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 14
Internal Data Structures 
message Attribute { 
required string name; 
required Type value; 
required DateTime last_update; 
required Interval update_interval; 
optional Object parent; 
} 
Type is either an integer, floating point number, DateTime or binary 
data. 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 15
The SysDB Client 
 Interactive client program for SysDB 
 Connects to a SysDB daemon 
 Interactive command shell 
 Receives and displays asynchronous log messages 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 16
The SysDB Query Language 
 Remotely similar to SQL 
 Meant to be easily usable in RPCs 
 Still under heavy development ;-) 
 Currently supported commands: 
LIST – returns all hosts 
FETCH hostname – returns details for a host 
LOOKUP hosts WHERE expression – query details for 
multiple hosts based on their attributes 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 17
The SysDB Query Language – Example(I) 
sysdb= LIST; 
{hosts:[{ 
name: nagios.lxc.tokkee.net, 
last_update: 2014-04-03 10:26:41 +0200, 
update_interval: 5m4s 
},{ 
name: puppet.lxc.tokkee.net, 
last_update: 2014-04-05 11:04:08 +0200, 
update_interval: 5m2s 
},{ 
name: whisky.mobile.tokkee.net, 
last_update: 2014-04-05 11:09:15 +0200, 
update_interval: 10s 
}]} 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 18
The SysDB Query Language – Example(II) 
sysdb= LOOKUP hosts WHERE attribute.architecture = ’amd64’ 
AND service.name =˜ ’postgres’; 
{ name: whisky.mobile.tokkee.net, 
last_update: 2014-04-05 11:09:15 +0200, 
update_interval: 10s, 
attributes: [{ 
name: architecture, value: amd64, 
last_update: 2014-04-03 10:26:41 +0200, 
update_interval: 5m3s },{ ... }], 
services: [{ 
name: cpu-0/cpu-idle, 
last_update: 2014-03-31 23:34:06 +0200, 
update_interval: 9.716754301s },{ ... }] 
} 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 19
Use Cases 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 20
Use Cases 
 Extend (replace?) your CMDB 
! put the CMDB behind and query it through SysDB 
 Compare the back-ends (monitoring) 
! Which hosts / services are missing in a back-end? 
! What is the global status of all Windows systems in some 
data-center? 
 More flexible web-frontend combining multiple back-ends 
! central dashboard 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 21
Future Directions 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 22
Future Directions 
 More documentation! 
 RDBMS store back-end (?) 
 Interface to query live data (monitoring status, metrics) from 
backends 
 Distributed architecture (HA and load-balancing) 
 Web-Interface 
 Extend the type system and filters 
 Add support for related informationen (?): 
persons / groups (ACLs, . . . ) 
Events / calendar (Change-Requests, . . . ) 
 . . . 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 23
SysDB – System DataBase 
Thank you for your attention! 
Questions, comments, rants? 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 24
SysDB – System DataBase 
Contakt: 
Sebastian “tokkee” Harl 
sh@tokkee.org 
https://github.com/tokkee/sysdb 
Please send patches! :-) 

c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 25

More Related Content

What's hot

Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceWebinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Altinity Ltd
 
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at TwitterHadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
DataWorks Summit
 
Hive : WareHousing Over hadoop
Hive :  WareHousing Over hadoopHive :  WareHousing Over hadoop
Hive : WareHousing Over hadoop
Chirag Ahuja
 
Introduction to Apache Hive
Introduction to Apache HiveIntroduction to Apache Hive
Introduction to Apache Hive
Avkash Chauhan
 
Cascalog internal dsl_preso
Cascalog internal dsl_presoCascalog internal dsl_preso
Cascalog internal dsl_preso
Hadoop User Group
 
Upgrading To The New Map Reduce API
Upgrading To The New Map Reduce APIUpgrading To The New Map Reduce API
Upgrading To The New Map Reduce API
Tom Croucher
 
The Hadoop Ecosystem
The Hadoop EcosystemThe Hadoop Ecosystem
The Hadoop Ecosystem
Mathias Herberts
 
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
CloudxLab
 
Spark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object storesSpark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object stores
Steve Loughran
 
ClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
ClickHouse Defense Against the Dark Arts - Intro to Security and PrivacyClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
ClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
Altinity Ltd
 
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Altinity Ltd
 
Introduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLab
CloudxLab
 
Scala+data
Scala+dataScala+data
Scala+data
Samir Bessalah
 
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
CloudxLab
 
mesos-devoxx14
mesos-devoxx14mesos-devoxx14
mesos-devoxx14
Samir Bessalah
 
Making Structured Streaming Ready for Production
Making Structured Streaming Ready for ProductionMaking Structured Streaming Ready for Production
Making Structured Streaming Ready for Production
Databricks
 
Benedutch 2011 ew_ppt
Benedutch 2011 ew_pptBenedutch 2011 ew_ppt
Benedutch 2011 ew_ppt
Antonius Intelligence Team
 
Ten tools for ten big data areas 04_Apache Hive
Ten tools for ten big data areas 04_Apache HiveTen tools for ten big data areas 04_Apache Hive
Ten tools for ten big data areas 04_Apache Hive
Will Du
 
Hadoop operations basic
Hadoop operations basicHadoop operations basic
Hadoop operations basic
Hafizur Rahman
 
Apache Hive
Apache HiveApache Hive
Apache Hive
Ajit Koti
 

What's hot (20)

Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceWebinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
 
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at TwitterHadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
 
Hive : WareHousing Over hadoop
Hive :  WareHousing Over hadoopHive :  WareHousing Over hadoop
Hive : WareHousing Over hadoop
 
Introduction to Apache Hive
Introduction to Apache HiveIntroduction to Apache Hive
Introduction to Apache Hive
 
Cascalog internal dsl_preso
Cascalog internal dsl_presoCascalog internal dsl_preso
Cascalog internal dsl_preso
 
Upgrading To The New Map Reduce API
Upgrading To The New Map Reduce APIUpgrading To The New Map Reduce API
Upgrading To The New Map Reduce API
 
The Hadoop Ecosystem
The Hadoop EcosystemThe Hadoop Ecosystem
The Hadoop Ecosystem
 
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
 
Spark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object storesSpark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object stores
 
ClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
ClickHouse Defense Against the Dark Arts - Intro to Security and PrivacyClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
ClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
 
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
Polyglot ClickHouse -- ClickHouse SF Meetup Sept 10
 
Introduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to SparkR | Big Data Hadoop Spark Tutorial | CloudxLab
 
Scala+data
Scala+dataScala+data
Scala+data
 
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
 
mesos-devoxx14
mesos-devoxx14mesos-devoxx14
mesos-devoxx14
 
Making Structured Streaming Ready for Production
Making Structured Streaming Ready for ProductionMaking Structured Streaming Ready for Production
Making Structured Streaming Ready for Production
 
Benedutch 2011 ew_ppt
Benedutch 2011 ew_pptBenedutch 2011 ew_ppt
Benedutch 2011 ew_ppt
 
Ten tools for ten big data areas 04_Apache Hive
Ten tools for ten big data areas 04_Apache HiveTen tools for ten big data areas 04_Apache Hive
Ten tools for ten big data areas 04_Apache Hive
 
Hadoop operations basic
Hadoop operations basicHadoop operations basic
Hadoop operations basic
 
Apache Hive
Apache HiveApache Hive
Apache Hive
 

Similar to SysDB – System DataBase — a system management and inventory collection service

OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...
OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...
OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...
NETWAYS
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
inovex GmbH
 
PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data Processing
Michael Peacock
 
Apache Spark and Object Stores —for London Spark User Group
Apache Spark and Object Stores —for London Spark User GroupApache Spark and Object Stores —for London Spark User Group
Apache Spark and Object Stores —for London Spark User Group
Steve Loughran
 
presentation.docx
presentation.docxpresentation.docx
presentation.docx
MaanSarayrah
 
Puppet Camp London 2014: Keynote
Puppet Camp London 2014: KeynotePuppet Camp London 2014: Keynote
Puppet Camp London 2014: Keynote
Puppet
 
Get started with Microsoft SQL Polybase
Get started with Microsoft SQL PolybaseGet started with Microsoft SQL Polybase
Get started with Microsoft SQL Polybase
Henk van der Valk
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Ganesh Raju
 
Puppet Camp DC 2014: Keynote
Puppet Camp DC 2014: KeynotePuppet Camp DC 2014: Keynote
Puppet Camp DC 2014: Keynote
Puppet
 
Data science for infrastructure dev week 2022
Data science for infrastructure   dev week 2022Data science for infrastructure   dev week 2022
Data science for infrastructure dev week 2022
ZainAsgar1
 
Docker včera, dnes a zítra
Docker včera, dnes a zítraDocker včera, dnes a zítra
Docker včera, dnes a zítra
Ladislav Prskavec
 
Data relay introduction to big data clusters
Data relay introduction to big data clustersData relay introduction to big data clusters
Data relay introduction to big data clusters
Chris Adkin
 
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
Schlomo Schapiro
 
Serverless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformServerless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud Platform
MeetupDataScienceRoma
 
Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...
Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...
Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...
Yahoo Developer Network
 
OSMC 2009 | Icinga by Icinga Team
OSMC 2009 | Icinga by Icinga TeamOSMC 2009 | Icinga by Icinga Team
OSMC 2009 | Icinga by Icinga Team
NETWAYS
 
Puppet Camp Dallas 2014: Puppet Keynote
Puppet Camp Dallas 2014: Puppet Keynote Puppet Camp Dallas 2014: Puppet Keynote
Puppet Camp Dallas 2014: Puppet Keynote
Puppet
 
breed_python_tx_redacted
breed_python_tx_redactedbreed_python_tx_redacted
breed_python_tx_redacted
Ryan Breed
 
Dynamic Hadoop Clusters
Dynamic Hadoop ClustersDynamic Hadoop Clusters
Dynamic Hadoop Clusters
Steve Loughran
 
Puppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: KeynotePuppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: Keynote
Puppet
 

Similar to SysDB – System DataBase — a system management and inventory collection service (20)

OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...
OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...
OSDC 2014: Sebastian Harl - SysDB the system management and inventory collect...
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
 
PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data Processing
 
Apache Spark and Object Stores —for London Spark User Group
Apache Spark and Object Stores —for London Spark User GroupApache Spark and Object Stores —for London Spark User Group
Apache Spark and Object Stores —for London Spark User Group
 
presentation.docx
presentation.docxpresentation.docx
presentation.docx
 
Puppet Camp London 2014: Keynote
Puppet Camp London 2014: KeynotePuppet Camp London 2014: Keynote
Puppet Camp London 2014: Keynote
 
Get started with Microsoft SQL Polybase
Get started with Microsoft SQL PolybaseGet started with Microsoft SQL Polybase
Get started with Microsoft SQL Polybase
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
 
Puppet Camp DC 2014: Keynote
Puppet Camp DC 2014: KeynotePuppet Camp DC 2014: Keynote
Puppet Camp DC 2014: Keynote
 
Data science for infrastructure dev week 2022
Data science for infrastructure   dev week 2022Data science for infrastructure   dev week 2022
Data science for infrastructure dev week 2022
 
Docker včera, dnes a zítra
Docker včera, dnes a zítraDocker včera, dnes a zítra
Docker včera, dnes a zítra
 
Data relay introduction to big data clusters
Data relay introduction to big data clustersData relay introduction to big data clusters
Data relay introduction to big data clusters
 
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
 
Serverless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformServerless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud Platform
 
Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...
Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...
Honu - A Large Scale Streaming Data Collection and Processing Pipeline__Hadoo...
 
OSMC 2009 | Icinga by Icinga Team
OSMC 2009 | Icinga by Icinga TeamOSMC 2009 | Icinga by Icinga Team
OSMC 2009 | Icinga by Icinga Team
 
Puppet Camp Dallas 2014: Puppet Keynote
Puppet Camp Dallas 2014: Puppet Keynote Puppet Camp Dallas 2014: Puppet Keynote
Puppet Camp Dallas 2014: Puppet Keynote
 
breed_python_tx_redacted
breed_python_tx_redactedbreed_python_tx_redacted
breed_python_tx_redacted
 
Dynamic Hadoop Clusters
Dynamic Hadoop ClustersDynamic Hadoop Clusters
Dynamic Hadoop Clusters
 
Puppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: KeynotePuppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: Keynote
 

Recently uploaded

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 

Recently uploaded (20)

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 

SysDB – System DataBase — a system management and inventory collection service

  • 1. SysDB – System DataBase a system management and inventory collection service Sebastian ‘tokkee’ Harl <sh@tokkee.org> SysDB developer Open Source Data Center Conference 2014 April, 10 2014 Berlin
  • 2. Disclaimer WARNING: SysDB is still under heavy development. Flaming, bashing or other forms of constructive feeback are very appreciated :-) c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 2
  • 3. Background / Motivation c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 3
  • 4. Motivation Why SysDB? Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
  • 5. Motivation Why SysDB? Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? Who also uses Puppet/Chef/etc.? c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
  • 6. Motivation Why SysDB? Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? Who also uses Puppet/Chef/etc.? Who also uses collectd/Munin/etc.? c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
  • 7. Motivation Why SysDB? Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? Who also uses Puppet/Chef/etc.? Who also uses collectd/Munin/etc.? Who also uses some inventory service? c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
  • 8. Motivation Why SysDB? Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? Who also uses Puppet/Chef/etc.? Who also uses collectd/Munin/etc.? Who also uses some inventory service? Who also maintains a CMDB? c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
  • 9. Motivation Why SysDB? Who uses Nagios/Icinga/Naemon/OpenNMS/etc.? Who also uses Puppet/Chef/etc.? Who also uses collectd/Munin/etc.? Who also uses some inventory service? Who also maintains a CMDB? Who likes their setup? ;-) c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 4
  • 10. History Initially, I wanted a new front-end for collectd suitable for large, heterogeneous environments. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
  • 11. History Initially, I wanted a new front-end for collectd suitable for large, heterogeneous environments. First idea: group graphs using Puppet facts. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
  • 12. History Initially, I wanted a new front-end for collectd suitable for large, heterogeneous environments. First idea: group graphs using Puppet facts. Second thought: oh, then we can also add monitoring information. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
  • 13. History Initially, I wanted a new front-end for collectd suitable for large, heterogeneous environments. First idea: group graphs using Puppet facts. Second thought: oh, then we can also add monitoring information. Then: this should be generic and extensible. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
  • 14. History Initially, I wanted a new front-end for collectd suitable for large, heterogeneous environments. First idea: group graphs using Puppet facts. Second thought: oh, then we can also add monitoring information. Then: this should be generic and extensible. Then I realized that I don’t like web development. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
  • 15. History Initially, I wanted a new front-end for collectd suitable for large, heterogeneous environments. First idea: group graphs using Puppet facts. Second thought: oh, then we can also add monitoring information. Then: this should be generic and extensible. Then I realized that I don’t like web development. Also, a system like that would need a good back-end. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
  • 16. History Initially, I wanted a new front-end for collectd suitable for large, heterogeneous environments. First idea: group graphs using Puppet facts. Second thought: oh, then we can also add monitoring information. Then: this should be generic and extensible. Then I realized that I don’t like web development. Also, a system like that would need a good back-end. ! the idea for SysDB was born c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 5
  • 17. The System DataBase c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 6
  • 18. SysDB – Overview SysDB collects information about arbitrary hardware and software systems. The central idea is to get a central view of your infrastructure. Simple examples: Hosts and their attributes (“facts”) Services and their attributes Monitoring information (e.g. current state) SysDB collects these information and correlates objects from various backends. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 7
  • 19. SysDB – core features https://github.com/tokkee/sysdb CI: https://travis-ci.org/tokkee/sysdb 60% code (function) unit-test coverage in the core BSD license Written in C Easy to extend (simple plugin API) Simple network protocol Most of the code implemented as a library (reusable) c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 8
  • 20. SysDB – Plugins Currently available: collectd::unixsock – query collectd’s UNIX socket interface mk-livestatus – query Monitoring systems (Nagios, Naemon, Icing, Shinken) using Check MK Livestatus puppet::store-configs – query Puppet cname::dns – canonicalize host-names using DNS syslog – syslog logging Planned: Passive data collection (e.g. using Gearman), Foreman, PuppetDB, $your favorite system (send patches!) :-) c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 9
  • 21. SysDB – Architecture infra backends sysdbd store FE sysdb network c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 10
  • 22. The SysDB Store The actual database implementation (in memory) Stores generic objects: Host – any kind of physical resource Service – any kind of service Attribute – attributes of hosts and services Canonicalization of hosts Each object stores the timestamp of the last update and the (automatically calculated) update interval Interface to query data JSON is the external data representation c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 11
  • 23. The SysDB Store – Examples kvm0 kvm1 kvm2 ovirt0 vhost0 vhost0 vhost0 vhost0 vhost0 c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 12
  • 24. Internal Data Structures message Host { required string name; required DateTime last_update; required Interval update_interval; repeated Attribute attributes; repeated Object children; // Host or Service optional Object parent; } c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 13
  • 25. Internal Data Structures message Service { required string name; required DateTime last_update; required Interval update_interval; repeated Attribute attributes; repeated Object children; // Host or Service repeated Object parent; // multiple! } c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 14
  • 26. Internal Data Structures message Attribute { required string name; required Type value; required DateTime last_update; required Interval update_interval; optional Object parent; } Type is either an integer, floating point number, DateTime or binary data. c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 15
  • 27. The SysDB Client Interactive client program for SysDB Connects to a SysDB daemon Interactive command shell Receives and displays asynchronous log messages c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 16
  • 28. The SysDB Query Language Remotely similar to SQL Meant to be easily usable in RPCs Still under heavy development ;-) Currently supported commands: LIST – returns all hosts FETCH hostname – returns details for a host LOOKUP hosts WHERE expression – query details for multiple hosts based on their attributes c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 17
  • 29. The SysDB Query Language – Example(I) sysdb= LIST; {hosts:[{ name: nagios.lxc.tokkee.net, last_update: 2014-04-03 10:26:41 +0200, update_interval: 5m4s },{ name: puppet.lxc.tokkee.net, last_update: 2014-04-05 11:04:08 +0200, update_interval: 5m2s },{ name: whisky.mobile.tokkee.net, last_update: 2014-04-05 11:09:15 +0200, update_interval: 10s }]} c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 18
  • 30. The SysDB Query Language – Example(II) sysdb= LOOKUP hosts WHERE attribute.architecture = ’amd64’ AND service.name =˜ ’postgres’; { name: whisky.mobile.tokkee.net, last_update: 2014-04-05 11:09:15 +0200, update_interval: 10s, attributes: [{ name: architecture, value: amd64, last_update: 2014-04-03 10:26:41 +0200, update_interval: 5m3s },{ ... }], services: [{ name: cpu-0/cpu-idle, last_update: 2014-03-31 23:34:06 +0200, update_interval: 9.716754301s },{ ... }] } c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 19
  • 31. Use Cases c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 20
  • 32. Use Cases Extend (replace?) your CMDB ! put the CMDB behind and query it through SysDB Compare the back-ends (monitoring) ! Which hosts / services are missing in a back-end? ! What is the global status of all Windows systems in some data-center? More flexible web-frontend combining multiple back-ends ! central dashboard c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 21
  • 33. Future Directions c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 22
  • 34. Future Directions More documentation! RDBMS store back-end (?) Interface to query live data (monitoring status, metrics) from backends Distributed architecture (HA and load-balancing) Web-Interface Extend the type system and filters Add support for related informationen (?): persons / groups (ACLs, . . . ) Events / calendar (Change-Requests, . . . ) . . . c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 23
  • 35. SysDB – System DataBase Thank you for your attention! Questions, comments, rants? c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 24
  • 36. SysDB – System DataBase Contakt: Sebastian “tokkee” Harl sh@tokkee.org https://github.com/tokkee/sysdb Please send patches! :-) c 2014 Sebastian ‘tokkee’ Harl The System DataBase – slide 25