## Schemas ### Status Data Changes require newest Icinga Classic UI releases. Object | Key ------------|-------------- hoststatus | check_service > **Note** > > Command definitions get custom variables from 'vars' dictionary. > Programstatus object gets custom variables from 'IcingaVars' constant. ### DB IDO There is a detailed documentation for the Icinga IDOUtils 1.x database schema available on [http://docs.icinga.org/latest/en/db_model.html] #### DB IDO Schema Extensions Icinga 2 specific extensions are shown below: New tables: `endpoints`, `endpointstatus` Table | Column | Type | Default | Description --------------------|--------------------|----------|---------|------------- endpoints | endpoint_object_id | bigint | NULL | FK: objects table endpoints | identity | TEXT | NULL | endpoint name endpoints | node | TEXT | NULL | local node name Table | Column | Type | Default | Description --------------------|--------------------|----------|---------|------------- endpointstatus | endpoint_object_id | bigint | NULL | FK: objects table endpointstatus | identity | TEXT | NULL | endpoint name endpointstatus | node | TEXT | NULL | local node name endpointstatus | is_connected | smallint | 0 | update on endpoint connect/disconnect New columns: Table | Column | Type | Default | Description --------------------|-------------------------|----------|---------|------------- all status/history | endpoint_object_id | bigint | NULL | FK: objects table servicestatus | check_source | TEXT | NULL | node name where check was executed hoststatus | check_source | TEXT | NULL | node name where check was executed statehistory | check_source | TEXT | NULL | node name where check was executed logentries | object_id | bigint | NULL | FK: objects table (service associated with column) hosts | check_service_object_id | bigint | NULL | FK: objects table (service associated with column) > **Note** > > Additional command custom variables populated from 'vars' dictionary. > Additional global custom variables populated from 'IcingaVars' constant (object_id is NULL). ### Livestatus #### Livestatus Tables Table | Join |Description --------------|-----------|---------------------------- hosts | | host config and status attributes, services counter hostgroups | | hostgroup config, status attributes and host/service counters services | hosts | service config and status attributes servicegroups | | servicegroup config, status attributes and service counters contacts | | contact config and status attributes contactgroups | | contact config, members commands | | command name and line status | | programstatus, config and stats comments | services | status attributes downtimes | services | status attributes timeperiods | | name and is inside flag endpoints | | config and status attributes log | services, hosts, contacts, commands | parses [compatlog](#objecttype-compatlogger) and shows log attributes statehist | hosts, services | parses [compatlog](#objecttype-compatlogger) and aggregates state change attributes > **Note** > > The `commands` table is populated with `CheckCommand`, `EventCommand` and `NotificationCommand` objects. #### Livestatus Table Attributes A detailed list which table attributes are supported can be found here: [https://wiki.icinga.org/display/icinga2/Livestatus#Livestatus-Attributes] #### Livestatus GET Queries $ echo -e 'GET services' | netcat 127.0.0.1 6558 $ cat servicegroups < Livestatus COMMAND Queries $ echo -e 'COMMAND ' | netcat 127.0.0.1 6558 #### Livestatus Filters and, or, negate Operator | Negate | Description ----------|------------------------ = | != | Euqality ~ | !~ | Regex match =~ | !=~ | Euqality ignoring case ~~ | !~~ | Regex ignoring case > | | Less than < | | Greater than >= | | Less than or equal <= | | Greater than or equal #### Livestatus Stats Schema: "Stats: aggregatefunction aggregateattribute" Aggregate Function | Description -------------------|-------------- sum | min | max | avg | sum / count std | standard deviation suminv | sum (1 / value) avginv | suminv / count count | ordinary default for any stats query if not aggregate function defined Example: GET hosts Filter: has_been_checked = 1 Filter: check_type = 0 Stats: sum execution_time Stats: sum latency Stats: sum percent_state_change Stats: min execution_time Stats: min latency Stats: min percent_state_change Stats: max execution_time Stats: max latency Stats: max percent_state_change OutputFormat: json ResponseHeader: fixed16 #### Livestatus Output * CSV CSV Output uses two levels of array seperators: The members array separator is a comma (1st level) while extra info and host|service relation separator is a pipe (2nd level). Seperators can be set using ASCII codes like: Separators: 10 59 44 124 * JSON Default separators. #### Livestatus Error Codes Code | Description ----------|-------------- 200 | OK 404 | Table does not exist 452 | Exception on query #### Livestatus Schema Extensions Icinga 2 specific extensions are shown below: New table: `endpoints` Table | Column ----------|-------------- endpoints | name endpoints | identity endpoints | node endpoints | is_connected New columns: Table | Column ----------|-------------- services | check_source hosts | check_service downtimes | triggers downtimes | trigger_time commands | custom_variable_names commands | custom_variable_values commands | custom_variables status | custom_variable_names status | custom_variable_values status | custom_variables > **Note** > > Command custom variables reflect the local 'vars' dictionary. > Status custom variables reflect the global 'IcingaVars' constant.