OSDC 2014: Sebastian Harl - SysDB the system management and inventory collection service
Upcoming SlideShare
Loading in...5
×
 

OSDC 2014: Sebastian Harl - SysDB the system management and inventory collection service

on

  • 297 views

System DataBase” (SysDB) is a multi-backend system management and inventory collection service. It may be used to (continuously) collect information about your systems from various backends ...

System DataBase” (SysDB) is a multi-backend system management and inventory collection service. It may be used to (continuously) collect information about your systems from various backends (inventory services, monitoring services, etc. like Nagios, Puppet, collectd) and provides a unique interface to access the information independent of the active backends. This is done by storing and mapping the backend objects to generic objects and correlating the attributes to create a single hierarchical view of your infrastructure. This way, all important information about your systems is accessible from a central location allowing for use-cases such as central dashboards, cross-link monitoring or inventory information, identify missing pieces in your system configuration, and much more.
This talk provides an overview over SysDB and its features as well as sample use-cases. The project is still in an early development stage but already usable. The talk also covers future directions and further integration with existing services.

Statistics

Views

Total Views
297
Views on SlideShare
281
Embed Views
16

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 16

http://www.netways.de 16

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

OSDC 2014: Sebastian Harl - SysDB the system management and inventory collection service OSDC 2014: Sebastian Harl - SysDB the system management and inventory collection service Presentation Transcript

  • 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 store FE sysdbd network sysdb 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