6.8 KiB
Schemas
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) |
Additional command custom variables populated from 'vars' dictionary. Additional global custom variables populated from 'Vars' 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 and shows log attributes |
statehist | hosts, services | parses compatlog and aggregates state change attributes |
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 <<EOF
GET servicegroups
EOF
(cat servicegroups; sleep 1) | netcat 127.0.0.1 6558
Livestatus COMMAND Queries
$ echo -e 'COMMAND <externalcommandstring>' | 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 |
Command custom variables reflect the local 'vars' dictionary. Status custom variables reflect the global 'Vars' constant.