Icinga

12.5. IDOUtils Database Model

12.5.1. Central Tables
12.5.2. Debugging Tables
12.5.3. Historical Tables
12.5.4. Current Status Tables
12.5.5. Configuration Tables

This documentation is based on the NDOUtils database model documentation by Ethan Galstad and altered to fit the changes necessary in IDOUtils.

Introduction

This documentation is still in flux, and there are undoubtably errors present, so take everything you find here with a grain of salt. If you have suggestions, changes, etc. for the documentation, please let us know.

[Important] Important

Although we took care to be accurate there may be alterations in the current code which aren't reflected here so if in doubt please take a look at the actual code.

[Note] Note

The data types and field lenghts mentioned throughout the following documentation show the definitions for MySQL. Oracle and PostgreSQL use other data types and field lengths.

Table Names

The IDOUtils addon allows users to specify a custom prefix to each table name in the database. By default, this prefix is set to "icinga_" in ido2db.cfg. The tables documented here are listed without any prefix.

[Note] Note

Due to limitations in Oracle the length of table names cannot exceed 30 characters so

  • The name of one table has been shortened: serviceescalation_contactgroups -> serviceescalationcontactgroups

  • The table prefix is ignored

Keys

Every table has a primary key (designated as "PK"). Most tables have a unique key consisting of one ("UK") or more columns ("UKn" whereas n shows the position in the key). Some tables have a non-unique key ("NK") which may be composed of several columns as well ("NKn").

There are a lot of tables containing different information so the description is divided into five parts:

12.5.1. Central Tables

There are two "core" or "central" tables, described below, that are referenced by nearly every table in the database. Read below for more information.

Table List

Relationship Diagram

Figure 12.14. Relationship of Central Tables

Relationship of Central Tables

Instance Table

Description: This table is needed to ensure that multiple instances of Icinga can store their configuration and status information in the same database. Each instance represents a different Icinga installation/process. A new instance will automatically be created when the user specifies a new instance name (when running one of the IDOUtils components) that does not already exist in the database.

Structure:

Field Type Notes Key
instance_id SERIAL Unique number identifying a distinct instance of Icinga PK
instance_name VARCHAR(64) Instance name, as passed to and used by IDOUtils components  
instance_description VARCHAR(128) Optional text describing the instance in more detail  

Objects Table

Description: This table is used to store all current (and past) objects that are (and have been) defined in your Icinga configuration files. Why are the names of the objects stored in this table and not elsewhere? Well, when you delete an object definition from your Icinga configuration, that object will no longer appear in the object tables of the database. Since you're still going to want to be able to run reports for old hosts, service, etc., we store the name of the object here so you're not completely baffled by the reports you get. :-)

Structure:

Field Type Notes Values Key
object_id SERIAL A unique number identifying the object   PK
instance_id BIGINT unsigned A number indicating the instance of Icinga to which the object belongs    
objecttype_id BIGINT unsigned A number indicating what type of object this is 1 = Host; 2 = Service; 3 = Host group; 4 = Service group; 5 = Host escalation; 6 = Service escalation; 7 = Host dependency; 8 = Service dependency; 9 = Timeperiod; 10 = Contact; 11 = Contact group; 12 = Command; 13 = Extended host info (deprecated); 14 = Extended service info (deprecated) NK1
name1 VARCHAR(128) The first name associated with the object definition, as used in your Icinga configuration files   NK2
name2 VARCHAR(128) The second name (if any) associated with the object definition, as used in your Icinga configuration files. This field is only used for service definitions which have a host name (name1 field) and service description (name2 field)   NK3
is_active SMALLINT A number indicating whether or not the object is currently defined in your Icinga configuration files. If an object definition is removed from your Icinga configuration files, it will remain in this table, but will be marked as inactive 0 = Inactive; 1 = Active  

Relationships:

Field Foreign Key
instance_id instances.instance_id

12.5.2. Debugging Tables

There is currently only one table in the database that is used to hold information that might be useful for debugging purposes. Read below for more information.

Table List

Relationship Diagram

Figure 12.15. Relationship of Debugging Tables

Relationship of Debugging Tables

Conninfo Table

Description: This table is used to store debugging information regarding the IDO2DB daemon and the user agents (e.g. LOG2DB, IDOMOD NEB module, etc.) that connect to it. This information is probably only interesting if you are attempting to debug connection problems.

Structure:

Field Type Notes Values Key
conninfo_id SERIAL Unique number identifying the connection info record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga for which data is being transmitted/processed    
agent_name VARCHAR(32) Text string identifying the user agent that is sending data to the IDO2DB daemon Typically "IDOMOD" or "LOG2IDO"  
agent_version VARCHAR(8) Text string identifying the version of the user agent that is sending data    
disposition VARCHAR(16) Text string identifying the disposition or type of data that is being sent to the IDO2DB daemon "REALTIME" if being sent directly from a running Icinga process or "ARCHIVED" if being sent from a flat file  
connect_source VARCHAR(16) Text string identifying the method that the user agent is using to connect to the IDO2DB daemon "TCPSOCKET" or "UNIXSOCKET"  
connect_type VARCHAR(16) Text string identifying whether this connect was a new connection, or if it was a reconnect due to an earlier communications failure between the user agent and the IDO2DB daemon "INITIAL" or "RECONNECT"  
connect_time TIMESTAMP The initial time the user agent connected to the daemon    
disconnect_time TIMESTAMP The time (if any) the user agent disconnect from the daemon    
last_checkin_time TIMESTAMP The time that the user agent last checked in with the daemon to indicate that it was still alive and sending data    
data_start_time TIMESTAMP The timestamp of the first data that the user agent sent to the daemon    
data_end_time TIMESTAMP The timestamp of the last (or latest) data that the user agent sent to the daemon    
bytes_processed BIGINT unsigned The number of bytes of data that have been sent by the user agent and processed by the daemon    
lines_processed BIGINT unsigned The number of lines of data that have been sent by the user agent and processed by the daemon    
entries_processed BIGINT unsigned The number of data entries that have been sent by the user agent and processed by the daemon    

Relationships:

Field Foreign Key
instance_id instances.instance_id

12.5.3. Historical Tables

Historical Data Tables

There are several tables in the database which are used to hold "historical" information about Icinga and the hosts/services it is monitoring or was monitoring at some point in the past. Keep in mind that historical items may not necessarily be "old" - they could have occurred 5 seconds ago, so the information used within these tables could/should be used when reporting current status information. Links to hosts/services which no longer exist in the Icinga configuration are maintained due to references for these previous objects existing in the objects table - this is by design.

Table List

Relationship Diagram

Notes: For clarity, the instances table (to which all these tables are related) is not shown. There are 17 historical tables, so please excuse the mess. :-)

Figure 12.16. Relationship of Historical Tables

Relationship of Historical Tables

Acknowledgements Table

Table Description: This table is used to store host and service acknowledgements for historical purposes.

Structure:

Field Type Notes Values Key
acknowledgement_id SERIAL Unique number identifying the acknowledgement record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
entry_time TIMESTAMP Date and time the acknowledgement was entered    
entry_time_usec INT Microsecond portion of acknowledgement entry time    
acknowledgement_type SMALLINT Indicates whether this is a host or service acknowledgement 0 = Host ack; 1 = Service ack  
object_id BIGINT unsigned The object id of the host or service this acknowledgement applies to    
state SMALLINT Integer indicating the state the host or service was in when the acknowledgement was made Host acks: 0 = UP; 1 = DOWN; 2 = UNREACHABLE; Service acks: 0 = OK; 1 = WARNING; 2 = CRTICAL; 3 = UNKNOWN  
author_name VARCHAR(64) Text field containing the name of the person who made the acknowledgement    
comment_data VARCHAR(255) Text field containing notes on the acknowledgement    
is_sticky SMALLINT Indicates whether or not the acknowledgement is considered "sticky" 0 = Not sticky; 1 = Sticky  
persistent_comment SMALLINT Indicates whether or not the comment associated with the acknowledgement is persistent 0 = Not persistent; 1 = Persistent  
notify_contacts SMALLINT Indicates whether or not contacts are to be notified of the acknowledgement 0 = Don't notify; 1 = Notify  
end_time TIMESTAMP Date and time the acknowledgement was deleted    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Commenthistory Table

Table Description: This table is used to store historical host and service comments. Current comments will also appear in this table, but it is recommended to use the comments table to retrieve a list of current host and service comments.

Structure:

Field Type Notes Values Key
commenthistory_id SERIAL Unique number identifying the comment record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
entry_time TIMESTAMP Date and time the comment was entered    
entry_time_usec INT Microsecond portion of comment entry time    
comment_type SMALLINT Indicates whether this is a host or service comment 1 = Host comment; 2 = Service comment  
entry_type SMALLINT Indicates how this comment came to be entered 1 = User; 2 = Scheduled downtime; 3 = Flapping; 4 = Acknowledgement  
object_id BIGINT unsigned The object id of the host or service this acknowledgement applies to    
comment_time TIMESTAMP Date and time associated with the comment   UK2
Internal_comment_id BIGINT unsigned The comment ID internal to the Icinga daemon, which may no longer be valid or present   UK3
author_name VARCHAR(64) Text field containing the name of the person who made the comment    
comment_data VARCHAR(255) Text field containing the comment    
is_persistent SMALLINT Indicates whether or not the comment is persistent 0 = Not persistent; 1 = Persistent  
comment_source SMALLINT Indicates the source of the comment 0 = Internal (Icinga); 1 = External (user)  
expires SMALLINT Indicates whether or not the comment expires 0 = Doesn't expire; 1 = Expires  
expiration_time TIMESTAMP Date and time at which the comment expires    
deletion_time TIMESTAMP Date and time (if any) when the comment was deleted    
deletion_time_usec INT Microsecond time (if any) when the comment was deleted    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Contactnotifications Table

Description: This table is used to store a historical record of host and service notifications that have been sent out to individual contacts.

Structure:

Field Type Notes Values Key
contactnotification_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
notification_id BIGINT unsigned The id of the notification this record is associated with    
contact_object_id BIGINT unsigned The object id of the contact this notification was send to   UK2
start_time TIMESTAMP The date/time the notification to this contact was started   UK3
start_time_usec INT The microsecond portion of the time the notification started   UK4
end_time TIMESTAMP The date/time the notification to this contact ended    
end_time_usec INT The microsecond portion of the time the notification ended    

Relationships:

Field Foreign Key
instance_id instances.instance_id
notification_id notifications.notification_id
contact_object_id objects.object_id

Dbversion Table

Description: This table is used to store version information about the DB.

Structure:

Field Type Notes Values Key
dbversion_id SERIAL Unique number identifying the record   PK
name VARCHAR(10) Name of the database   UK
version VARCHAR(10) Version number of the database    

Contactnotificationmethods Table

Description: This table is used to store a historical record of commands (methods) that were used to contact individuals about host and service problems and recoveries.

Structure:

Field Type Notes Values Key
contactnotificationmethod_id INT Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
contactnotification_id INT The id of the contact notification this record is associated with   UK2
start_time TIMESTAMP The date/time the notification command started   UK3
start_time_usec INT The microsecond portion of the time the notification command started   UK4
end_time TIMESTAMP The date/time the notification command ended    
end_time_usec INT The microsecond portion of the time the notification command ended    
command_object_id INT The id of the command that was used for the notification command    
command_args VARCHAR The arguments that were passed to the notification command    

Relationships:

Field Foreign Key
instance_id instances.instance_id
contactnotification_id contactnotifications.contactnotification_id
command_object_id objects.object_id

Downtimehistory Table

Description: This table is used to store a historical record of scheduled host and service downtime

Structure:

Field Type Notes Values Key
downtimehistory_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
downtime_type SMALLINT A number identifying what type of scheduled downtime this is 1 = Service downtime; 2 = Host downtime  
object_id BIGINT unsigned The object id of the host or service this scheduled downtime is associated with   UK2
entry_time TIMESTAMP The date/time the scheduled downtime was entered/submitted   UK3
author_name VARCHAR(64) The name of the person who scheduled this downtime    
comment_data VARCHAR(255) A comment, as entered by the author, associated with the scheduled downtime    
internal_downtime_id BIGINT unsigned A number (internal to the Icinga daemon) associated with the scheduled downtime   UK4
triggered_by_id BIGINT unsigned The id of another scheduled downtime entry that scheduled downtime is optionally triggered by. Non-triggered downtimes will have a value of 0 in this field    
is_fixed SMALLINT A number indicating whether or not this scheduled downtime is fixed (i.e. its start and end times are exactly what they are listed below as) or if it is flexible 0 = Flexible (Not fixed); 1 = Fixed  
duration SMALLINT The number of seconds that the scheduled downtime should last. This is only used by Icinga is the downtime is flexible. If the downtime is fixed, this value should reflect the difference between the start and end times    
scheduled_start_time TIMESTAMP The date/time the scheduled downtime is supposed to start. If this is a flexible (non-fixed) downtime, this refers to the earliest possible time that the downtime can start    
scheduled_end_time TIMESTAMP The date/time the scheduled downtime is supposed to end. If this is a flexible (non-fixed) downtime, this refers to the last possible time that the downtime can start    
was_started SMALLINT Number indicated whether or not the scheduled downtime was started. Some flexible downtimes may never actually start if the host/service they are associated with never enter a problem state 0 = Was not started; 1 = Was started  
actual_start_time TIMESTAMP The date/time the scheduled downtime was actually started (if applicable)    
actual_start_time_usec INT Microsecond portion of the actual start time    
actual_end_time TIMESTAMP The date/time the scheduled downtime actually ended    
actual_end_time_usec INT Microsecond portion of the actual end time    
was_cancelled SMALLINT Number indicating whether or not the scheduled downtime was cancelled before it ended normally 0 = Not cancelled; 1 = Cancelled early  

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id
triggered_by_id [downtimehistory.]downtimehistory_id

Eventhandlers Table

Description: This table is used to store a historical record of host and service event handlers that have been run. NOTE: This table is usually trimmed periodically by the IDO2DB daemon, as it would otherwise grow to an enormous size.

Structure:

Field Type Notes Values Key
eventhandler_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
eventhandler_type SMALLINT A number indicating what type of event handler this is 0 = Host event handler; 1 = Service event handler; 2 = Global host event handler; 3 = Global service event handler  
object_id BIGINT unsigned The object id of the host or service associated with this event handler   UK2
state SMALLINT Number indicating the state of host or service when the event handler was run. For host event handlers: 0 = UP; 1 = DOWN; 2 = UNREACHABLE; For service event handlers:; 0 = OK; 1 = WARNING; 2 = CRITICAL; 3 = UNKNOWN  
state_type SMALLINT Number indicating the state type of the host or service when the event handler was run 0 = SOFT state; 1 = HARD state  
start_time TIMESTAMP The date/time the event handler started   UK3
start_time_usec INT The microsecond portion of the time the event handler started   UK4
end_time TIMESTAMP The date/time the event handler ended    
end_time_usec INT The microsecond portion of the time the event handler ended    
command_object_id BIGINT unsigned The id of the command that was run    
command_args VARCHAR(255) Arguments to the event handler command that was run    
command_line VARCHAR(1024) Fully expanded command line of the event handler that was run    
timeout SMALLINT Timeout value in seconds for the event handler    
early_timeout SMALLINT Number indicating whether or not the event handler command timed out 0 = Did NOT time out. 1 = Timed out  
execution_time DOUBLE Time in seconds that the event handler command was running    
return_code SMALLINT The return code value from the event handler command    
output VARCHAR(255) The first line of text output (if any) from the event handler command    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id
command_object_id objects.object_id

Externalcommands Table

Description: This table is used to store a historical record of external commands that have been processed by the Icinga daemon.

Structure:

Field Type Notes Values Key
externalcommand_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
entry_time TIMESTAMP The date/time the external command was processed    
command_type SMALLINT A number indicating what type of external command this is. Each external command has its own type or "id" See Icinga source code  
command_name VARCHAR(128) The name of the command that was processed    
command_args VARCHAR(255) Optional arguments that were specified with the command.    

Relationships:

Field Foreign Key
instance_id instances.instance_id

Flappinghistory Table

Table Description: This table is used to store a historical record of host and service flapping events.

Structure:

Field Type Notes Values Key
flappinghistory_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
event_time TIMESTAMP The date/time of the flapping event    
event_time_usec INT The microsecond portion of the time of the flapping event    
event_type SMALLINT The type of flapping event indicated by this record 1000 = Flapping started; 1001 = Flapping stopped  
reason_type SMALLINT Number indicating the reason (if any) that the host or service stopped flapping. This is only valid if this records is a flapping stopped event (see event_type field) 1 = Flapping stopped normally 2 = Flapping was disabled  
flapping_type SMALLINT Number indicating whether this flapping event relates to a host or service 0 = Host 1 = Service  
object_id BIGINT unsigned The id of the host or service associated with the flapping event    
percent_state_change DOUBLE The percent state change of the host or service at the time of the event    
low_threshold DOUBLE The low flapping percent state change threshold (as configured in Icinga) of the host or service    
high_threshold DOUBLE The high flapping percent state change threshold (as configured in Icinga) of the host or service    
comment_time TIMESTAMP The date/time of the comment associated with the flapping event    
internal_comment_id BIGINT unsigned The number (internal to the Icinga daemon) of the comment associated with the flapping event.    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Hostchecks Table

Description: This table is used to store a historical record of "raw" and "processed" host checks. What's the difference between raw and processed host checks? Raw checks are the raw results from a host check command that gets executed. Icinga must do some processing on the raw host check results before it can determine the real state of the host. Host checks (plugins) cannot directly determine whether a host is DOWN or UNREACHABLE - only Icinga can do that. In fact, host checks return the same status codes as service checks (OK, WARNING, UNKNOWN, or CRITICAL). Icinga processes the raw host check result to determine the true state of the host (UP, DOWN, or UNREACHABLE). These "processed" checks contain the the true state of the host. NOTE: This table is usually trimmed periodically by the IDO2DB daemon, as it would otherwise grow to an enormous size.

Structure:

Field Type Notes Values Key
hostcheck_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
host_object_id BIGINT unsigned The id of the host this check applies to   UK2
check_type SMALLINT Number indicating whether this is an active or passive check 0 = Active check 1 = Passive check  
is_raw_check SMALLINT Number indicating whether this is a "raw" or "processed" host check 0 = Processed check; 1 = Raw check  
current_check_attempt SMALLINT Current check attempt of the host    
max_check_attempts SMALLINT Max check attempts (as defined in Icinga) for the host    
state SMALLINT Current state of the host For raw checks: 0 = UP 1 = DOWN/UNREACHABLE; For processed checks: 0 = UP 1 = DOWN 2 = UNREACHABLE  
state_type SMALLINT Number indicating whether the host is in a soft or hard state 0 = SOFT state 1 = HARD state  
start_time TIMESTAMP The date/time the host check was started   UK3
start_time_usec INT Microsecond portion of the time the host check was started   UK4
end_time TIMESTAMP The date/time the host check was completed    
end_time_usec INT Microsecond portion of the time the host check was completed    
command_object_id BIGINT unsigned The id of the command that was used to perform the host check    
command_args VARCHAR(255) The arguments that were passed to the host check command    
command_line VARCHAR(1024) The fully expanded command line that was used to check the host    
timeout SMALLINT Number of seconds before the host check command would time out    
early_timeout SMALLINT Number indicating whether or not the host check timed out early 0 = Did NOT timeout 1 = Timed out  
execution_time DOUBLE Number of seconds it took to execute the host check    
latency DOUBLE Number of seconds the host check was "late" in being executed. Scheduled host checks can have a latency, but on-demand checks will have a latency of 0. Latency is the difference between the time the check was scheduled to be executed and the time it was actually executed. For passive checks it is the different between the timestamp on the passive host check result (submitted through the external command file) and the time the passive check result was processed by Icinga    
return_code SMALLINT The return code from the host check command    
output VARCHAR(255) Status text output from the host check command (first line)    
long_output TEXT Status text output from the host check command (consecutive lines)    
perfdata TEXT Optional performance data returned from the host check command.    

Relationships:

Field Foreign Key
instance_id instances.instance_id
host_object_id objects.object_id
command_object_id objects.object_id

Logentries Table

Description: This table is used to store a historical record of entries from the Icinga log.

Structure:

Field Type Notes Values Key
logentry_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
object_id BIGINT unsigned The id of the host/service that entry was caused for (NULL if not provided)    
logentry_time TIMESTAMP The date/time associated with the log entry. This is NOT necessarily the same as the date/time that Icinga wrote the log entry to the log file (see below)    
entry_time TIMESTAMP The date/time that Icinga wrote this log entry to the log file    
entry_time_usec INT The microsecond portion of the time that Icinga wrote this log entry    
logentry_type INT A number indicating what general type of log entry this is See Icinga source code  
logentry_data VARCHAR(255) The log entry that was written out to the log file    
realtime_data SMALLINT A number used internally by the IDO2DB daemon    
inferred_data_extracted SMALLINT A number used internally by the IDO2DB daemon.    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Notifications Table

Description: This table is used to store a historical record of host and service notifications that have been sent out. For each notification, one or more contacts receive notification messages. These contact notifications are stored in the contactnotifications table.

Structure:

Field Type Notes Values Key
notification_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
notification_type SMALLINT Number indicating whether this is a host or service notification 0 = Host notification 1 = Service notification  
notification_reason SMALLINT Number indicating the type of or reason for the notification 0 = Normal notification; 1 = Problem acknowledgement; 2 = Flapping started; 3 = Flapping stopped; 4 = Flapping was disabled; 5 = Downtime started; 6 = Downtime ended; 7 = Downtime was cancelled; 99 = Custom notification  
object_id BIGINT unsigned The id of the host or service this notification applies to   UK2
start_time TIMESTAMP The date/time the notification was started   UK3
start_time_usec INT Microsecond portion of the time the notification was started   UK4
end_time TIMESTAMP The date/time the notification ended    
end_time_usec INT Microsecond portion of the time the notification ended    
state SMALLINT Number indicating the state of the host or service when the notification was sent out. For Host Notifications: 0 = UP; 1 = DOWN; 2 = CRITICAL; For Service Notifications: 0 = OK; 1 = WARNING; 2 = CRITICAL; 3 = UNKNOWN  
output VARCHAR(255) The current plugin (text) output of the host or service when the notification was sent out (first line)    
long_output TEXT The current plugin (text) output of the host or service when the notification was sent out (consecutive lines)    
escalated SMALLINT Number indicating whether or not this notification was escalated or not 0 = NOT escalated; 1 = Escalated  
contacts_notified SMALLINT Number of contacts that were notified about the host or service as part of this notification.    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Processevents Table

Description: This table is used to store a historical record of Icinga process events (program starts, restarts, shutdowns, etc.).

Structure:

Field Type Notes Values Key
processevent_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
event_type SMALLINT Number indicating the type of process event that occurred. 100 = Process start; 101 = Process daemonized; 102 = Process restart; 103 = Process shutdown; 104 = Prelaunch; 105 = Event loop start; 106 = Event loop end  
event_time TIMESTAMP The date/time that the event occurred    
event_time_usec INT The microsecond portion of the time the event occurred    
process_id INT The current process ID (PID) of the Icinga daemon    
program_name VARCHAR(16) "Icinga"    
program_version VARCHAR(20) Version of Icinga that is running (e.g. "1.0")    
program_date VARCHAR(10) Release date of Icinga    

Relationships:

Field Foreign Key
instance_id instances.instance_id

Servicechecks Table

Description: This table is used to store a historical record of service checks that have been performed. NOTE: This table is usually trimmed periodically by the IDO2DB daemon, as it would otherwise grow to an enormous size.

Structure:

Field Type Notes Values Key
servicecheck_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
service_object_id BIGINT unsigned The id of the service this record refers to   UK2
check_type SMALLINT Number indicating whether this was an active or a passive service check 0 = Active check; 1 = Passive check  
current_check_attempt SMALLINT Number indicating the current check attempt for the service    
max_check_attempts SMALLINT Number indicating the max number of check attempts for the service    
state SMALLINT Number indicating the current state of the service 0 = OK 1 = WARNING; 2 = CRITICAL; 3 = UNKNOWN  
state_type SMALLINT Number indicating the current state type of the service 0 = SOFT state; 1 = HARD state  
start_time TIMESTAMP The date/time the service check was started   UK3
start_time_usec INT Microsecond portion of the time the service check was started   UK4
end_time TIMESTAMP The date/time the service check ended    
end_time_usec INT Microsecond portion of the time the service check ended    
command_object_id BIGINT unsigned The id of the command that was run to perform the service check    
command_args VARCHAR(255) The arguments passed to the command that was run to perform the service check    
command_line VARCHAR(1024) The fully expanded command line that was executed to perform the service check    
timeout SMALLINT Number of seconds before the service check command was scheduled to timeout    
early_timeout SMALLINT Number indicating whether or not the service check timed out 0 = Did NOT timeout 1 = Timed out  
execution_time DOUBLE Number of seconds it took to execute the service check command    
latency DOUBLE Number of seconds the service check was "late" in being executed. For active checks this is the difference between the scheduled service check time and the time the check actually occurred. For passive checks this is the difference between the timestamp on the passive check result (submitted through the external command file) and the time the passive check result was picked up by the Icinga daemon for processing    
return_code SMALLINT The return code from the service check command    
output VARCHAR(255) The status output that was returned from the service check command (first line)    
long_output TEXT The status output that was returned from the service check command (consecutive lines)    
perfdata TEXT Optional performance data that was returned from the service check command    

Relationships:

Field Foreign Key
instance_id instances.instance_id
service_object_id objects.object_id
command_object_id objects.object_id

Statehistory Table

Description: This table is used to store a historical record of host and service state changes.

Structure:

Field Type Notes Values Key
statehistory_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
state_time TIMESTAMP The date/time that the state change occurred    
state_time_usec INT The microsecond portion of the time the state change occurred    
object_id BIGINT unsigned The id of the host or service object this state change applies to    
state_change SMALLINT Number indicating whether or not a state change occurred for the host or service 0 = No state change; 1 = State change  
state SMALLINT Number indicating the current state of the host or service For Hosts: 0 = UP; 1 = DOWN; 2 = UNREACHABLE; For Services: 0 = OK; 1 = WARNING; 2 = CRITICAL; 3 = UNKNOWN  
state_type SMALLINT Number indicating whether the service is in a soft or hard state 0 = SOFT state; 1 = HARD state  
current_check_attempt SMALLINT Number indicating the current check attempt for the host or service    
max_check_attempts SMALLINT Number indicating the max check attempts (as configured in Icinga) for the host or service    
last_state SMALLINT Number indicating the last state (whether hard or soft) of the host or service (if available) For Hosts: -1 = unavailable; 0 = UP; 1 = DOWN; 2 = UNREACHABLE; For Services: -1 = unavailable; 0 = OK; 1 = WARNING; 2 = CRITICAL; 3 = UNKNOWN  
last_hard_state SMALLINT Number indicating the last hard state of the host or service (if available) For Hosts: -1 = unavailable; 0 = UP; 1 = DOWN; 2 = UNREACHABLE; For Services: -1 unavailable; 0 = OK; 1 = WARNING; 2 = CRITICAL  
output VARCHAR(255) The current plugin/status output of the host or service (first line)    
long_output TEXT The current plugin/status output of the host or service (consecutive lines)    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Systemcommands Table

Description: This table is used to store a historical record of system commands that are run by the Icinga daemon. Note that each event handler, notification, OCSP command, etc. requires that Icinga execute a system command. NOTE: This table is usually trimmed periodically by the IDO2DB daemon, as it would otherwise grow to an enormous size.

Structure:

Field Type Notes Values Key
systemcommand_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
start_time TIMESTAMP The date/time the command was executed   UK2
start_time_usec INT The microsecond portion of the time the command was executed   UK3
end_time TIMESTAMP The date/time the command finished executing    
end_time_usec INT The microsecond portion of the time the command finished executing    
command_line VARCHAR(1024) Fully expanded command line that was executed    
timeout SMALLINT Number of seconds before the command should timeout    
early_timeout SMALLINT Number indicating whether or not the command timed out early 0 = Did NOT timeout; 1 = Timed out  
execution_time DOUBLE Number of seconds it took to execute the command    
return_code SMALLINT Return code of the command    
output VARCHAR(255) First line of text output (if available) that was returned from the command    
long_output TEXT Consecutive lines of text output (if available) that were returned from the command    

Relationships:

Field Foreign Key
instance_id instances.instance_id

12.5.4.  Current Status Tables

There are several tables in the database which are used to hold current status information on the Icinga process and all hosts and services that it is monitoring. Entries in these tables are cleared whenever the Icinga daemon (belonging to the same instance) (re)starts

Table List

Relationship DiagramNotes: To reduce clutter, the links to the instances table (to which all these tables are related) is not shown.

Figure 12.17. Relationship of Current Status Tables

Relationship of Current Status Tables

Comments Table

Description: This table is used to store current host and service comments. Historical comments can be found in the commenthistory table.

Structure:

Field Type Notes Values Key
comment_id SERIAL Unique number identifying the comment record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
entry_time TIMESTAMP Date and time the comment was entered    
entry_time_usec INT Microsecond portion of comment entry time    
comment_type SMALLINT Indicates whether this is a host or service comment 1 = Host comment; 2 = Service comment  
entry_type SMALLINT Indicates how this comment came to be entered 1 = User; 2 = Scheduled downtime; 3 = Flapping; 4 = Acknowledgement  
object_id BIGINT unsigned The object id of the host or service this acknowledgement applies to    
comment_time TIMESTAMP Date and time associated with the comment   UK2
internal_comment_id INT The comment ID internal to the Icinga daemon   UK3
author_name VARCHAR(64) Text field containing the name of the person who made the comment    
comment_data VARCHAR(255) Text field containing the comment    
is_persistent SMALLINT Indicates whether or not the comment is persistent 0 = Not persistent; 1 = Persistent  
comment_source SMALLINT Indicates the source of the comment 0 =internal (Icinga); 1 = External (user)  
expires SMALLINT Indicates whether or not the comment expires 0 = Doesn't expire; 1 = Expires  
expiration_time TIMESTAMP Date and time at which the comment expires.    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Customvariablestatus Table

Description: This table is used to store the current state/values of all custom host, service, and contact variables. Custom variables are only support in Icinga or Nagios 3.x and higher, so this table will be empty for Nagios 2.x.

Structure:

Field Type Notes Values Key
customvariablestatus_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
object_id BIGINT unsigned The object id of the host or service this acknowledgement applies to   UK1
status_update_time TIMESTAMP Date and time the status of the custom variable was last updated    
has_been_modified SMALLINT Indiciates whether the value of the custom variable has been modified (during runtime) from its original value in the config files 0 = Has not been modified; 1 = Has been modified  
varname VARCHAR(255) Text field containing the name of the custom variable   UK2, NK
varvalue VARCHAR(255) Text field containing the value of the custom variable    

Relationships:

Field Foreign Key
instance_id instances.instance_id
object_id objects.object_id

Hoststatus Table

Description: This table is used to store the current status of hosts that are being monitored.

Structure:

Field Type Notes Values Key
hoststatus_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
host_object_id BIGINT unsigned The object id of the host this status entry is associated with   U1
status_update_time TIMESTAMP Date and time the status data was updated    
output VARCHAR(255) Plugin output from the latest host check (first line)    
long_output TEXT Plugin output from the latest host check (consecutive lines)    
perfdata TEXT Performance data from the latest host check    
check_source TEXT Optional check result source.    
current_state SMALLINT Number indicating the current state of the host 0 = UP; 1 = DOWN; 2 = UNREACHABLE  
has_been_checked SMALLINT Number indicating whether or not the host has been checked yet 0 = Not checked; 1 = Checked  
should_be_scheduled SMALLINT Number indicating whether or not checks should be regularly scheduled for this host 0 = Not scheduled; 1 = Scheduled  
current_check_attempt SMALLINT Number indicating the current check attempt of the host. This is only interesting during soft host states    
max_check_attempts SMALLINT Number indicating how many maximum check attempts will be made to determine the hard state of the host    
last_check TIMESTAMP Time the host was last checked    
next_check TIMESTAMP The host is scheduled to be checked next. Will be set to the epoch if the host is not scheduled for another check    
check_type SMALLINT Number indicating if the last host check was an active or passive check 0 = Active; 1 = Passive  
last_state_change TIMESTAMP Time the host last had a hard or soft state change. Will be set to the epoch if the host has not changed state    
last_hard_state_change TIMESTAMP The host last had a hard state change. Will be setup to the epoch if the host has not changed state    
last_time_up TIMESTAMP Time the host was last in an UP state (if ever)    
last_time_down TIMESTAMP Time the host was last in a DOWN state (if ever)    
last_time_unreachable TIMESTAMP Time the host was last in an UNREACHABLE state (if ever)    
state_type SMALLINT Number indicating the type of state the host is in 0 = SOFT state; 1 = HARD state  
last_notification TIMESTAMP Time a notification was last sent out for the host (if ever)    
next_notification TIMESTAMP Next possible time that a notification can be sent out for the host    
no_more_notifications SMALLINT Number indicating whether or not more notifications can be sent out about the current host problem 0 = Send notifications; 1 = Do not send notifications  
notifications_enabled SMALLINT Number indicating whether or not notifications are enabled for this host 0 = Notifications disabled; 1 = Notifications enabled  
problem_has_been_acknowledged SMALLINT Number indicating whether or not the current host problem has been acknowledged 0 = Not acknowledged; 1 = Acknowledged  
acknowledgement_type SMALLINT Number indicating the type of acknowledgement associated with the host 0 = None; 1 = Normal; 2 = Sticky  
current_notification_number SMALLINT Number indicating the current notification number for the current host problem. This number gets reset to 0 when the host recovers    
passive_checks_enabled SMALLINT Number indicating whether or not passive checks are enabled for this host 0 = Disabled; 1 = Enabled  
active_checks_enabled SMALLINT Number indicating whether or not active checks are enabled for this host 0 = Disabled; 1 = Enabled  
event_handler_enabled SMALLINT Number indicating whether or not the host's event handler is enabled 0 = Disabled; 1 = Enabled  
flap_detection_enabled SMALLINT Number indicating whether or not flap detection is enabled for this host 0 = Disabled; 1 = Enabled  
is_flapping SMALLINT Number indicating whether or not the host is currently flapping 0 = Not flapping; 1 = Flapping  
percent_state_change DOUBLE Number indicating the current percent state change (a measure of stability/volatility) for the host    
latency DOUBLE Number of seconds that the host check was "late" in being executed. The different between the checks scheduled time and the time it was actually checked    
execution_time DOUBLE Number of seconds it took to perform the last check of the host    
scheduled_downtime_depth SMALLINT Number indicating how many periods of scheduled 0 = Not in scheduled dowtime downtime are currently active for this host; >0 = In scheduled downtime  
failure_prediction_enabled SMALLINT Number indicating whether or not failure prediction (not yet implemented) is enabled for this host 0 = Disabled; 1 = Enabled  
process_performance_data SMALLINT Number indicating whether or not performance data should be processed for this host 0 = Disabled; 1 = Enabled  
obsess_over_host SMALLINT Number indicating whether or not this host should be obsessed over 0 = Do not obsess; 1 = Obsess  
modified_host_attributes INT Number indicating which attributes of the host have been modified during runtime. Used by the retention data routines    
event_handler VARCHAR The current event handler command associated with the host    
check_command VARCHAR The current check command associated with the host    
check_interval DOUBLE Number of seconds between normal checks of the host    
retry_interval DOUBLE Number of seconds between retry checks of the host    
check_timeperiod_object_id BIGINT unsigned Unique number of the timeperiod object currently used for determining times the host can be checked    

Relationships:

Field Foreign Key
instance_id instances.instance_id
host_object_id objects.object_id
timeperiod_object_id objects.object_id

Programstatus Table

Description: This table stored status information on the currently (or previously) running Icinga process/daemon.

Structure:

Field Type Notes Values Key
programstatus_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   U1
status_update_time TIMESTAMP Date and time the status of the process was last updated    
program_start_time TIMESTAMP Date and time the Icinga process was started    
program_end_time TIMESTAMP Date and time the Icinga process as stopped (if currently not running)    
is_currently_running SMALLINT Indicates whether or not the Icinga process is currently running 0 = Process is not running; 1 = Process is running  
process_id BIGINT unsigned The processed ID (PID) of the Icinga process    
daemon_mode SMALLINT Indicates whether Icinga is running as a foreground process or a daemon 0 = Foreground process; 1 = Daemon  
last_command_check TIMESTAMP Date and time the Icinga process last checked external commands    
last_log_rotation TIMESTAMP Date and time the log file was last rotated (if at all)    
notifications_enabled SMALLINT Indicates whether or not notifications are enabled 0 = Disabled; 1 = Enabled  
active_service_checks_enabled SMALLINT Indicates whether or not active service checks are enabled 0 = Disabled; 1 = Enabled  
passive_service_checks_enabled SMALLINT Indicates whether or not passive service checks are enabled 0 = Disabled; 1 = Enabled  
active_host_checks_enabled SMALLINT Indicates whether or not active host checks are enabled 0 = Disabled; 1 = Enabled  
passive_host_checks_enabled SMALLINT Indicates whether or not passive host checks are enabled 0 = Disabled; 1 = Enabled  
event_handlers_enabled SMALLINT Indicates whether or not event handlers are enabled 0 = Disabled; 1 = Enabled  
flap_detection_enabled SMALLINT Indicates whether or not flap detection is enabled 0 = Disabled; 1 = Enabled  
failure_prediction_enabled SMALLINT Indicates whether or not failure prediction is enabled 0 = Disabled; 1 = Enabled  
process_performance_data SMALLINT Indicates whether or not performance data is enabled/being processed 0 = Disabled; 1 = Enabled  
obsess_over_hosts SMALLINT Indicates whether or not hosts are being obsessed over 0 = Disabled; 1 = Enabled  
obsess_over_services SMALLINT Indicates whether or not services are being obsessed over 0 = Disabled; 1 = Enabled  
modified_host_attributes INT Indicates what (if any) host-related program status variables have been modified during runtime See Icinga source code for values  
modified_service_attributes INT Indicates what (if any) service-related program status variables have been modified during runtime See Icinga source code for values  
global_host_event_handler VARCHAR(255) Text field indicating the current global host event handler command that is being used.    
global_service_event_handlers VARCHAR(255) Text field indicating the current global service event handler command that is being used    

Relationships:

Field Foreign Key
instance_id instances.instance_id

Runtimevariables Table

Table Description: This table is used to store some runtime variables from the Icinga process that may be useful to you. The only variables currently stored in this table are some initial variables calculated at startup, but more variables may be stored here in future versions.

Structure:

Field Type Notes Values Key
runtimevariable_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
varname VARCHAR(64) Text field containing the name of the variable   UK2
varvalue VARCHAR(255) Text field containing the value of the variable    

Relationships:

Field Foreign Key
instance_id instances.instance_id

Scheduleddowntime Table

Description: This table is used to store current host and service downtime, which may either be current in effect or scheduled to begin at a future time. Historical scheduled downtime information can be found in the downtimehistory table.

Structure:

Field Type Notes Values Key
scheduleddowntime_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
downtime_type SMALLINT Indicates whether this is a host or service downtime entry 1 = Service downtime; 2 = Host downtime  
object_id BIGINT unsigned The object id of the host or service this downtime applies to   UK2
entry_time TIMESTAMP Date and time this downtime was entered   UK3
author_name VARCHAR(64) Text field containing the name of the person who created this scheduled downtime    
comment_data VARCHAR(255) Text field containing information about this scheduled downtime (as entered by the user)    
internal_downtime_id BIGINT unsigned The ID number (internal to the Icinga daemon) associated with this scheduled downtime entry   UK4
triggered_by_id BIGINT unsigned The internal Icinga ID number (if any) of another scheduled downtime entry that this downtime is "triggered" (started) by. If this field is nonzero, this is a triggered downtime entry, otherwise it is not    
is_fixed SMALLINT Indicates whether this is a "fixed" scheduled downtime entry (that should start and end at the start and end times indicated) or a "flexible" entry that can start at a variable time 0 = Flexible (not fixed) 1 = Fixed  
duration SMALLINT Indicates the number of seconds that the scheduled downtime should last. This is usually only needed if this is "flexible" downtime, which can start at a variable time, but lasts for the specified duration    
scheduled_start_time TIMESTAMP Date and time that the downtime is scheduled to start if it is "fixed" dowtime. If this is a "flexible" downtime entry, this is the first possible time the downtime can start    
scheduled_end_time TIMESTAMP Date and time the downtime is scheduled to end if it is "fixed" downtime. If this is a "flexible" downtime entry, this is the last possible time the downtime can start    
was_started SMALLINT Indicates whether or not the downtime was started (is currently #FIXME) 0 = Not started (inactive) 1 = Started (active)  
actual_start_time TIMESTAMP Date and time the scheduled downtime was actually started    
actual_start_time_usec INT Microsecond portion of time the scheduled downtime was actually started    

Relationships:

Field Foreign Key  
instance_id instances.instance_id  
object_id objects.object_id  

Servicestatus Table

Description: This table is used to store current status information for all services that are being monitored.

Structure:

Field Type Notes Values Key
servicestatus_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
service_object_id BIGINT unsigned The id of the service this record is associated with   U1
status_update_time TIMESTAMP The date/time the status record was updated    
output VARCHAR(255) The text output from the most current service check (first line)    
long_output TEXT The text output from the most current service check (consecutive lines)    
perfdata TEXT Optional performance data from the most current service check    
check_source TEXT Optional check result source.    
current_state SMALLINT Number indicating the current state of the service 0 = OK; 1 = WARNING; 2 = CRITICAL; 3 = UNKNOWN  
has_been_checked SMALLINT Number indicating whether or not the service has been checked yet 0 = Has NOT been checked; 1 = Has been checked  
should_be_scheduled SMALLINT Number indicating whether or not the service should be scheduled for periodic checks on a regular basis 0 = Not scheduled; 1 = Scheduled  
current_check_attempt SMALLINT The current check attempt for the service    
max_check_attempts SMALLINT The max check attempts (as configured in Icinga) for the service    
last_check TIMESTAMP The date/time the service was last checked. Set to the epoch if the service has not been checked yet    
next_check TIMESTAMP The date/time the service is scheduled to be checked next    
check_type SMALLINT Number indicating whether or not the last service check was active or passive 0 = Active; 1 = Passive  
last_state_change TIMESTAMP The date/time the service last changed state (if at all). This gets updated for both HARD and SOFT state changes    
last_hard_state_change TIMESTAMP The date/time the service last changed HARD states (if at all)    
last_hard_state SMALLINT 0 = OK 1 = WARNING; 2 = CRITICAL; 3 = UNKNOWN    
last_time_ok TIMESTAMP The date/time the service was last in an OK state (if at all)    
last_time_warning TIMESTAMP The date/time the service was last in a WARNING state (if at all)    
last_time_unknown TIMESTAMP The date/time the service was last in an UNKNOWN state (if at all)    
last_time_critical TIMESTAMP The date/time the service was last in a CRITICAL state (if at all).    
state_type SMALLINT Number indicating whether the service is in a hard or soft state 0 = SOFT state; 1 = HARD  
state last_notification TIMESTAMP The date/time that a notification was last sent out for the current service problem (if applicable)    
next_notification TIMESTAMP The earliest date/time that the next notification can be sent out for the current service problem (if applicable)    
no_more_notifications SMALLINT Number indicating whether or not future notifications can be sent out for the current service problem 0 = Do not send more notifications; 1 = Keep sending notifications  
notifications_enabled SMALLINT Number indicating whether notifications are enabled for the service 0 = Disabled; 1 = Enabled  
problem_has_been_acknowledged SMALLINT Number indicating whether or not the current status problem has been acknowledged 0 = Not acknowledged; 1 = Acknowledged  
acknowledgement_type SMALLINT Number indicating the type of acknowledgement (if any) 0 = No acknowledgement; 1 = Normal acknowledgement; 2 = Sticky acknowledgement  
current_notification_number SMALLINT Number indicating how many notifications have been sent out about the current service problem (if applicable)    
passive_checks_enabled SMALLINT Number indicating whether or not passive checks are enabled for the service 0 = Disabled; 1 = Enabled  
active_checks_enabled SMALLINT Number indicating whether or not active checks are enabled for the service 0 = Disabled; 1 = Enabled  
event_handler_enabled SMALLINT Number indicating whether or not the service event handler is enabled 0 = Disabled; 1 = Enabled  
flap_detection_enabled SMALLINT Number indicating whether or not flap detection is enabled for the service 0 = Disabled; 1 = Enabled  
is_flapping SMALLINT Number indicating whether ot not the service is currently flapping 0 = Not flapping; 1 = Flapping  
percent_state_change DOUBLE Number indicating the current percent state change (a measure of volatility) for the service    
latency DOUBLE Number indicating how "late" the last service check was in being run. For active checks, this is the difference between the time the service was scheduled to be the checked and the time it was actually checked. For passive checks, this is the difference between the timestamp on the passive check (submitted via an external command) and the time Icinga processed the check result. execution_time DOUBLE Number of seconds it took to run the last service check    
execution_time DOUBLE Number of seconds it took to execute the service check    
scheduled_downtime_depth SMALLINT Number indicating how many periods of scheduled downtime are currently in effect for the service. A value of 0 indicates the service is not in a period of downtime    
failure_prediction_enabled SMALLINT Number indicating whether or not failure prediction is enabled for the service. This feature has not yet been implemented 0 = Disabled; 1 = Enabled  
process_performance_data SMALLINT Number indicating whether or not performance data should be processed for the service 0 = Do NOT process perfdata; 1 = Process perfdata  
obsess_over_service SMALLINT Number indicating whether or not Icinga should obsess of check results of the service 0 = Do NOT obsess; 1 = Obsess  
modified_service_attributes INT Number indicating what service attributes have been modified during runtime See Icinga source code  
event_handler VARCHAR(255) The current event handler command that is associated with the service    
check_command VARCHAR(255) The current check command that is used to check the status of the service    
normal_check_interval DOUBLE The current normal check interval for the service (in seconds)    
retry_check_interval DOUBLE The current retry check interval for the service (in seconds)    
check_timeperiod_object_id BIGINT unsigned The currently timeperiod that is used to determine when the service can be checked.    

Relationships:

Field Foreign Key
instance_id instances.instance_id
service_object_id objects.object_id
check_timeperiod_object_id objects.object_id

Contactstatus Table

Description: This table is used to store current status information for all contacts that are being used.

Structure:

Field Type Notes Values Key
contactstatus_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
contact_object_id BIGINT unsigned The id of the service this record is associated with   U1
status_update_time TIMESTAMP The date/time the status record was updated    
hostnotifications_enabled SMALLINT Number indicating whether or not host notifications are enabled for this contact 0 = Notifications disabled; 1 = Notifications enabled  
servicenotifications_enabled SMALLINT Number indicating whether or not service notifications are enabled for this contact 0 = Notifications disabled; 1 = Notifications enabled  
last_hostnotification TIMESTAMP Time the last host notification was sent    
last_servicenotification TIMESTAMP Time the last service notification was sent    
modified_attributes INT Default = 0    
modified_host_attributes INT Default = 0    
modified_service_attributes INT Default = 0    

Relationships:

Field Foreign Key
instance_id instances.instance_id

12.5.5. Configuration Tables

[Note] Note

The tables that contain configuration data have not yet been fully documented.

There are many tables in the database that are used to store Icinga configuration. Note that the data in these tables represents a read-only output view of the configuration that Icinga was using during its last (or current) run. Configuration information from these tables is NOT read by the Icinga daemon in any way, and thus cannot be used to configure Icinga.

Table List

Figure 12.18. Relationship of Configuration Tables

Relationship of Configuration Tables

Commands Table

Description: .

Structure:

Field Type Notes Values Key
command_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK3
object_id BIGINT unsigned     UK2
command_line VARCHAR(1024)      

Configfiles Table

Description: .

Structure:

Field Type Notes Values Key
configfile_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
configfile_type SMALLINT     UK2
configfile_path VARCHAR(255)     UK3

Configfilevariables Table

Description: .

Structure:

Field Type Notes Values Key
configfilevariable_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
configfile_id BIGINT unsigned      
varname VARCHAR(64)      
varvalue VARCHAR(1024)      

Contact_addresses Table

Description: .

Structure:

Field Type Notes Values Key
contact_address_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
contact_id BIGINT unsigned     UK1
address_number SMALLINT     UK2
address VARCHAR(255)      

Contact_notificationcommands Table

Description: .

Structure:

Field Type Notes Values Key
contact_notficationcommand_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
contact_id BIGINT unsigned     UK1
notification_type SMALLINT     UK2
command_object_id BIGINT unsigned     UK3
command_args VARCHAR(255)     UK4

Contactgroup_members Table

Description: .

Structure:

Field Type Notes Values Key
contactgroup_member_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
contactgroup_id BIGINT unsigned     UK1
contact_object_id BIGINT unsigned     UK2

Contactgroups Table

Description: .

Structure:

Field Type Notes Values Key
contactgroup_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
contactgroup_object_id BIGINT unsigned     UK3
alias VARCHAR(255)      

Contactnotificationmethods Table

Description: .

Structure:

Field Type Notes Values Key
contactnotificationmethod_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
contactnotification_id BIGINT unsigned     UK2
start_time TIMESTAMP     UK3
start_time_usec INT     UK4
end_time TIMESTAMP      
end_time_usec INT      
command_object_id BIGINT unsigned      
command_args VARCHAR(255)      

Contacts Table

Description: .

Structure:

Field Type Notes Values Key
contact_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
contact_object_id BIGINT unsigned     UK3
alias VARCHAR(64) String describing the contact    
email_address VARCHAR(255) String containing the e-mail address of the contact    
pager_address VARCHAR(64) String containing the pager address of the contact    
host_timeperiod_object_id BIGINT unsigned      
service_timeperiod_object_id BIGINT unsigned      
host_notifications_enabled SMALLINT Indicates whether or not the contact will receive host notifications 0 = Disabled; 1 = Enabled  
service_notifications_enabled SMALLINT Indicates whether or not the contact will receive service notifications 0 = Disabled; 1 = Enabled  
can_submit_commands SMALLINT Indicates whether or not the contact can submit external commands via the web interface 0 = Disabled; 1 = Enabled  
notify_service_recovery SMALLINT Indicates whether or not the contact will receive notifications if a service enters the state "RECOVERY" 0 = Disabled; 1 = Enabled  
notify_service_warning SMALLINT Indicates whether or not the contact will receive notifications if a service enters the state "WARNING" 0 = Disabled; 1 = Enabled  
notify_service_unknown SMALLINT Indicates whether or not the contact will receive notifications if a service enters the state "UNKNOWN" 0 = Disabled; 1 = Enabled  
notify_service_critical SMALLINT Indicates whether or not the contact will receive notifications if a service enters the state "CRITICAL" 0 = Disabled; 1 = Enabled  
notify_service_flapping SMALLINT Indicates whether or not the contact will receive notifications if a service enters the state "FLAPPING" 0 = Disabled; 1 = Enabled  
notify_service_downtime SMALLINT Indicates whether or not the contact will receive notifications if a service enters the state "DOWNTIME" 0 = Disabled; 1 = Enabled  
notify_host_recovery SMALLINT Indicates whether or not the contact will receive notifications if a host enters the state "RECOVERY" 0 = Disabled; 1 = Enabled  
notify_host_down SMALLINT Indicates whether or not the contact will receive notifications if a host enters the state "DOWN" 0 = Disabled; 1 = Enabled  
notify_host_unreachable SMALLINT Indicates whether or not the contact will receive notifications if a host enters the state "UNREACHABLE" 0 = Disabled; 1 = Enabled  
notify_host_flapping SMALLINT Indicates whether or not the contact will receive notifications if a host enters the state "FLAPPING" 0 = Disabled; 1 = Enabled  
notify_host_downtime SMALLINT Indicates whether or not the contact will receive notifications if a host enters the state "DOWNTIME" 0 = Disabled; 1 = Enabled  

customvariables Table

Description: .

Structure:

Field Type Notes Values Key
customvariable_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
object_id BIGINT unsigned     UK1
config_type SMALLINT     UK2
has_been_modified SMALLINT      
varname VARCHAR(255) String containing the name of the custom variable   UK3,NK
varvalue VARCHAR(255) String containing the value of the custom variable    

Host_contactgroups Table

Description: .

Structure:

Field Type Notes Values Key
host_contactgroup_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
host_id BIGINT unsigned     UK1
contactgroup_object_id BIGINT unsigned     UK2

Host_contacts Table

Description: .

Structure:

Field Type Notes Values Key
host_contact_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
host_id BIGINT unsigned     UK1
contact_object_id BIGINT unsigned     UK2

Hostescalation_contactgroups Table

Description: .

Structure:

Field Type Notes Values Key
hostescalation_contactgroup_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
hostescalation_id BIGINT unsigned     UK1
contactgroup_object_id BIGINT unsigned     UK2

Hostescalation_contacts Table

Description: .

Structure:

Field Type Notes Values Key
hostescalation_contact_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
hostescalation_id BIGINT unsigned     UK1
contact_object_id BIGINT unsigned     UK2

Host_parenthosts Table

Description: .

Structure:

Field Type Notes Values Key
host_parenthost_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
host_id BIGINT unsigned     UK1
parent_host_object_id BIGINT unsigned     UK2

Hostdependencies Table

Description: .

Structure:

Field Type Notes Values Key
hostdependency_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
host_object_id BIGINT unsigned     UK3
dependent_host_object_id BIGINT unsigned     UK4
dependency_type SMALLINT Indicates the type of the dependency 1 = Notification dependency, 2 = Execution dependency UK5
inherits_parent SMALLINT Indicates whether or not the host will inherit dependencies from parent hosts 0 = do not inherit dependencies, 1 = inherit dependencies UK6
timeperiod_object_id BIGINT unsigned      
fail_on_up SMALLINT Indicates whether or not the host will be checked if the master host is UP 0 = check host, 1 = do not check host UK7
fail_on_down SMALLINT Indicates whether or not the host will be checked if the master host is DOWN 0 = check host, 1 = do not check host UK8
fail_on_unreachable SMALLINT Indicates whether or not the host will be checked if the master host is UNREACHABLE 0 = check host, 1 = do not check host UK9

Hostescalations Table

Description: .

Structure:

Field Type Notes Values Key
hostescalation_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
host_object_id BIGINT unsigned     UK3
timeperiod_object_id BIGINT unsigned     UK4
first_notification SMALLINT     UK5
last_notification SMALLINT     UK6
notification_interval DOUBLE      
escalate_on_recovery SMALLINT      
escalate_on_down SMALLINT      
escalate_on_unreachable SMALLINT      

Hostgroup_members Table

Description: .

Structure:

Field Type Notes Values Key
hostgroup_member_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
hostgroup_id BIGINT unsigned     UK1
host_object_id BIGINT unsigned     UK2

Hostgroups Table

Description: .

Structure:

Field Type Notes Values Key
hostgroup_id SERIAL     PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT      
hostgroup_object_id BIGINT unsigned     UK2
alias VARCHAR(255) String describing the hostgroup    

Hosts Table

Description: .

Structure:

Field Type Notes Values Key
host_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
host_object_id BIGINT unsigned     UK3
alias VARCHAR(64) String describing the host    
display_name VARCHAR(255)      
address VARCHAR(128) IP-address    
address6 VARCHAR(128) IPv6-address    
check_command_object_id BIGINT unsigned      
check_command_args VARCHAR(255)      
eventhandler_command_object_id BIGINT unsigned      
eventhandler_command_args VARCHAR(255)      
notification_timeperiod_object_id BIGINT unsigned      
check_timeperiod_object_id BIGINT unsigned      
failure_prediction_options VARCHAR(64)      
check_interval DOUBLE      
retry_interval DOUBLE      
max_check_attempts SMALLINT      
first_notification_delay DOUBLE      
notification_interval DOUBLE      
notify_on_down SMALLINT      
notify_on_unreachable SMALLINT      
notify_on_recovery SMALLINT      
notify_on_flapping SMALLINT      
notify_on_downtime SMALLINT      
stalk_on_up SMALLINT      
stalk_on_down SMALLINT      
stalk_on_unreachable SMALLINT      
flap_detection_enabled SMALLINT      
flap_detection_on_up SMALLINT      
flap_detection_on_down SMALLINT      
flap_detection_on_unreachable SMALLINT      
low_flap_threshold DOUBLE      
high_flap_threshold DOUBLE      
process_performance_data SMALLINT      
freshness_checks_enabled SMALLINT      
freshness_threshold SMALLINT      
passive_checks_enabled SMALLINT      
eventhandler_enabled SMALLINT      
active_checks_enabled SMALLINT      
retain_status_information SMALLINT      
retain_nonstatus_information SMALLINT      
notifications_enabled SMALLINT      
obsess_over_host SMALLINT      
failure_prediction_enabled SMALLINT      
notes VARCHAR(255)      
notes_url VARCHAR(255)      
action_url VARCHAR(255)      
icon_image VARCHAR(255)      
icon_image_alt VARCHAR(255)      
vrml_image VARCHAR(255)      
statusmap_image VARCHAR(255)      
have_2d_coords SMALLINT      
x_2d SMALLINT      
y_2d SMALLINT      
have_3d_coords SMALLINT      
x_3d DOUBLE      
y_3d DOUBLE      
z_3d DOUBLE      

Service_contactgroups Table

Description: .

Structure:

Field Type Notes Values Key
service_contactgroup_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
service_id BIGINT unsigned     UK2
contactgroup_object_id BIGINT unsigned     UK3

Service_contacts Table

Description: .

Structure:

Field Type Notes Values Key
service_contact_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
service_id BIGINT unsigned     UK2
contact_object_id BIGINT unsigned     UK3

Servicedependencies Table

Description: .

Structure:

Field Type Notes Values Key
servicedependency_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
service_object_id BIGINT unsigned     UK3
dependent_service_object_id BIGINT unsigned     UK4
dependency_type SMALLINT Indicates the type of the dependency 1 = Notification dependency, 2 = Execution dependency UK5
inherits_parent SMALLINT Indicates whether or not the service will inherit dependencies from parent services 0 = do not inherit dependencies, 1 = inherit dependencies UK6
timeperiod_object_id BIGINT unsigned      
fail_on_ok SMALLINT Indicates whether or not the service will be checked if the master service is OK 0 = check service, 1 = do not check service UK7
fail_on_warning SMALLINT Indicates whether or not the service will be checked if the master service is WARNIING 0 = check service, 1 = do not check service UK8
fail_on_unknown SMALLINT Indicates whether or not the service will be checked if the master service is UNKNOWN 0 = check service, 1 = do not check service UK9
fail_on_critical SMALLINT Indicates whether or not the service will be checked if the master service is CRITICAL 0 = check service, 1 = do not check service UK10

Serviceescalation_contactgroups Table

Description: .

Structure:

Field Type Notes Values Key
serviceescalation_contactgroup_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
serviceescalation_id BIGINT unsigned     UK1
contactgroup_object_id BIGINT unsigned     UK2

Serviceescalation_contacts Table

Description: .

Structure:

Field Type Notes Values Key
serviceescalation_contact_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
serviceescalation_id BIGINT unsigned     UK1
contact_object_id BIGINT unsigned     UK2

Serviceescalations Table

Description: .

Structure:

Field Type Notes Values Key
serviceescalation_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
service_object_id BIGINT unsigned     UK3
timeperiod_object_id BIGINT unsigned     UK4
first_notification SMALLINT     UK5
last_notification SMALLINT     UK6
notification_interval DOUBLE      
escalate_on_recovery SMALLINT      
escalate_on_warning SMALLINT      
escalate_on_unknown SMALLINT      
escalate_on_critical SMALLINT      

Servicegroup_members Table

Description: .

Structure:

Field Type Notes Values Key
servicegroup_member_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
servicegroup_id BIGINT unsigned     UK1
service_object_id BIGINT unsigned     UK2

Servicegroups Table

Description: .

Structure:

Field Type Notes Values Key
servicegroup_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
servicegroup_object_id BIGINT unsigned     UK3
alias VARCHAR(255) String describing the servicegroup    

Services Table

Description: .

Structure:

Field Type Notes Values Key
service_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
host_object_id BIGINT unsigned      
service_object_id BIGINT unsigned     UK3
display_name VARCHAR(255)      
check_command_object_id BIGINT unsigned      
check_command_args VARCHAR(255)      
eventhandler_command_object_id BIGINT unsigned      
eventhandler_command_args VARCHAR(255)      
notification_timeperiod_object_id BIGINT unsigned      
check_timeperiod_object_id BIGINT unsigned      
failure_prediction_options VARCHAR(64)      
check_interval DOUBLE      
retry_interval DOUBLE      
max_check_attempts SMALLINT      
first_notification_delay DOUBLE      
notification_interval DOUBLE      
notify_on_warning SMALLINT      
notify_on_unknown SMALLINT      
notify_on_critical SMALLINT      
notify_on_recovery SMALLINT      
notify_on_flapping SMALLINT      
notify_on_downtime SMALLINT      
stalk_on_ok SMALLINT      
stalk_on_warning SMALLINT      
stalk_on_unknown SMALLINT      
stalk_on_critical SMALLINT      
is_volatile SMALLINT      
flap_detection_enabled SMALLINT      
flap_detection_on_ok SMALLINT      
flap_detection_on_warning SMALLINT      
flap_detection_on_unknown SMALLINT      
flap_detection_on_critical SMALLINT      
low_flap_threshold DOUBLE      
high_flap_threshold DOUBLE      
process_performance_data SMALLINT      
freshness_checks_enabled SMALLINT      
freshness_threshold SMALLINT      
passive_checks_enabled SMALLINT      
eventhandler_enabled SMALLINT      
active_checks_enabled SMALLINT      
retain_status_information SMALLINT      
retain_nonstatus_information SMALLINT      
notifications_enabled SMALLINT      
obsess_over_service SMALLINT      
failure_prediction_enabled SMALLINT      
notes VARCHAR(255)      
notes_url VARCHAR(255)      
action_url VARCHAR(255)      
icon_image VARCHAR(255)      
icon_image_alt VARCHAR(255)      

Timeperiod_timeranges Table

Description: .

Structure:

Field Type Notes Values Key
timeperiod_timerange_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with    
timeperiod_id BIGINT unsigned     UK1
day SMALLINT     UK2
start_sec INT     UK3
end_sec INT     UK4

Timeperiods Table

Description: .

Structure:

Field Type Notes Values Key
timeperiod_id SERIAL Unique number identifying the record   PK
instance_id BIGINT unsigned Unique number identifying the distinct instance of Icinga which this entry is associated with   UK1
config_type SMALLINT     UK2
timeperiod_object_id BIGINT unsigned     UK3
alias VARCHAR(255) String describing the timeperiod