Code

a681916c3cbcc0cdf141de7664f1a5f5d8262e1e
[sysdb.git] / README
1         SysDB -- a system management and inventory collection service
2        ===============================================================
4   “System DataBase” (SysDB) is a multi-backend system management and inventory
5   collection service. It stores system and inventory information about
6   hardware and software systems. This information is (continuously) collected
7   from various configurable backends (inventory services, monitoring services,
8   etc.) and stored in a graph-like hierarchy of generic objects. The store may
9   be queried through a generic interface independent of the active backends.
10   Object names are canonicalized before they are added to the store to ensure
11   a consistent view of your infrastructure.
13   The central object type is a host, which generally represents a physical or
14   virtual machine or any other type of physical resource. Hosts, in turn, may
15   reference a list of services which represent any kind of logical resource
16   like a software system. Both, hosts and services, may reference a list of
17   attributes which represent further information about the respective host or
18   service object. For example, attributes may specify static information like
19   a host's architecture or the software version. A host may also reference a
20   list of metrics which are references to performance data stored about the
21   host. SysDB supports querying the respective time-series from a backend's
22   data store.
24   SysDB is free and open source software, licensed under the 2-clause BSD
25   license. See COPYING for details. Changes between all SysDB releases can be
26   found in the file ReleaseNotes.
28   <https://sysdb.io/>
30 Configure and install SysDB
31 ---------------------------
33   To configure, build and install SysDB with the default settings, run
34   ‘./configure && make && make install’. For detailed, generic instructions
35   see INSTALL. For a complete list of configure options and their description,
36   run ‘./configure --help’.
38   Various third-party packages are required for a full installation of SysDB.
39   See the section ‘Prerequisites’ below for details. A summary of
40   user-supplied and auto-detected build settings is displayed at the end of
41   each ‘configure’ run. Consult this first for trouble-shooting.
43   By default, SysDB will be installed into ‘/opt/sysdb’. You can adjust this
44   setting by specifying the ‘--prefix’ configure option - see INSTALL for
45   details. If you pass DESTDIR=<path> to ‘make install’, <path> will be
46   prefixed to all installation directories. This might be useful when creating
47   packages for SysDB.
49 Prerequisites
50 -------------
52   To compile the SysDB package from source you need:
54   * A build environment: autotools, libtool, C and C++ compilers, ...
56     <http://www.gnu.org/software/automake/>
57     <http://www.gnu.org/software/autoconf/>
58     <http://www.gnu.org/software/libtool/>
59     <http://www.freedesktop.org/wiki/Software/pkg-config/>
60     <http://gcc.gnu.org/>
62   * When building from Git, you also need the flex lexical analyzer generator
63     and bison parser generator (other lex and yacc compatible tools might work
64     as well if you are lucky).
66     <http://www.gnu.org/software/bison/>
67     <http://flex.sourceforge.net/>
69   * A POSIX + Single UNIX Specification compatible C library.
71     <http://pubs.opengroup.org/onlinepubs/9699919799/>
73   * asciidoc, xmlto:
74     The AsciiDoc text document format is used to write the manpages.
76     <http://www.methods.co.nz/asciidoc/>
77     <https://fedorahosted.org/xmlto/>
79   * libedit or libreadline:
80     A readline compatible command line editor and history library is used for
81     handling input in the sysdb client program.
83     <http://thrysoee.dk/editline/>
84     <http://tiswww.case.edu/php/chet/readline/rltop.html>
86   The following optional libraries may be used by various plugins:
88   * libdbi:
89     The database independent abstraction layer is used for database access by
90     the backend::puppet::store-configs plugin.
92     <http://libdbi.sourceforge.net/>
94   * libfacter:
95     The cfacter library for gathering facts about a system is used by the
96     backend::facter plugin to retrieve attributes about the local system.
98     <https://github.com/puppetlabs/cfacter>
100   * librrd:
101     The RRDtool library is used by the timeseries::rrdtool plugin to retrieve
102     time-series from RRD files.
104     <https://oss.oetiker.ch/rrdtool/>
106 Testing
107 -------
109   Unit and integration tests for SysDB are shipped along with the source code
110   in the ‘t’ subdirectory. Run ‘make test’ to run all available tests.
112   Some tests require the ‘fopencookie’ function as provided by the GNU libc
113   library. It used used to mock I/O related functions. In case this function
114   is not available, the respective tests will be disabled automatically.
116   The integration tests require valgrind. If it is not available, integration
117   tests will be disabled automatically.
119   For the latest build status, see:
120   <https://travis-ci.org/sysdb/sysdb>
122   Code coverage testing using Gcov may be enabled when using the
123   ‘--enable-gcov’ configure option.
125   For the latest coverage report, see:
126   <https://coveralls.io/r/sysdb/sysdb>
128 Documentation
129 -------------
131   All documentation for SysDB is available as manual pages (in roff and HTML
132   formats) and shipped alongside the source code in the doc/ subdirectory.
133   Also, it is available online at <https://sysdb.io/documentation/>.
135 Getting Help
136 ------------
138   Various channels for asynchronous and real-time communication with
139   developers and users are available. See <https://sysdb.io/contact/> for
140   details about the mailing list, IRC channel, and social media.
142 Author
143 ------
145   Sebastian “tokkee” Harl <sh@tokkee.org>
147   See the file THANKS for credits and inspiration.
149   Want to contribute? Check out the website <https://sysdb.io> for details.