SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Hadoop operations basic
Hadoop operations basicHadoop operations basic
Hadoop operations basic
Hafizur Rahman
 

Was ist angesagt? (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
 

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

PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data Processing
Michael Peacock
 
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
 
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
 
breed_python_tx_redacted
breed_python_tx_redactedbreed_python_tx_redacted
breed_python_tx_redacted
Ryan Breed
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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