showlog: Fix statetype filter settings
[nagios-reports-module.git] / nagios / common.h
blob03a195fd1ea89773f83ee9d23b3d4c9153dacb0a
1 /************************************************************************
3 * Nagios Common Header File
4 * Written By: Ethan Galstad (nagios@nagios.org)
5 * Last Modified: 10-22-2007
7 * License:
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 ************************************************************************/
24 #define PROGRAM_VERSION "3.0.3"
25 #define PROGRAM_MODIFICATION_DATE "06-25-2008"
27 /*#define DEBUG_CHECK_IPC 1 */
28 /*#define DEBUG_CHECK_IPC2 1*/
32 /* daemon is thread safe */
33 #ifdef NSCORE
34 #ifndef _REENTRANT
35 #define _REENTRANT
36 #endif
37 #ifndef _THREAD_SAFE
38 #define _THREAD_SAFE
39 #endif
40 #endif
42 /* Experimental performance tweaks - use with caution */
43 #undef USE_MEMORY_PERFORMANCE_TWEAKS
45 /* my_free has been freed from bondage as a function */
46 #define my_free(ptr) { if(ptr) { free(ptr); ptr = NULL; } }
50 /***************************** COMMANDS *********************************/
52 #define CMD_NONE 0
54 #define CMD_ADD_HOST_COMMENT 1
55 #define CMD_DEL_HOST_COMMENT 2
57 #define CMD_ADD_SVC_COMMENT 3
58 #define CMD_DEL_SVC_COMMENT 4
60 #define CMD_ENABLE_SVC_CHECK 5
61 #define CMD_DISABLE_SVC_CHECK 6
63 #define CMD_SCHEDULE_SVC_CHECK 7
65 #define CMD_DELAY_SVC_NOTIFICATION 9
67 #define CMD_DELAY_HOST_NOTIFICATION 10
69 #define CMD_DISABLE_NOTIFICATIONS 11
70 #define CMD_ENABLE_NOTIFICATIONS 12
72 #define CMD_RESTART_PROCESS 13
73 #define CMD_SHUTDOWN_PROCESS 14
75 #define CMD_ENABLE_HOST_SVC_CHECKS 15
76 #define CMD_DISABLE_HOST_SVC_CHECKS 16
78 #define CMD_SCHEDULE_HOST_SVC_CHECKS 17
80 #define CMD_DELAY_HOST_SVC_NOTIFICATIONS 19 /* currently unimplemented */
82 #define CMD_DEL_ALL_HOST_COMMENTS 20
83 #define CMD_DEL_ALL_SVC_COMMENTS 21
85 #define CMD_ENABLE_SVC_NOTIFICATIONS 22
86 #define CMD_DISABLE_SVC_NOTIFICATIONS 23
87 #define CMD_ENABLE_HOST_NOTIFICATIONS 24
88 #define CMD_DISABLE_HOST_NOTIFICATIONS 25
89 #define CMD_ENABLE_ALL_NOTIFICATIONS_BEYOND_HOST 26
90 #define CMD_DISABLE_ALL_NOTIFICATIONS_BEYOND_HOST 27
91 #define CMD_ENABLE_HOST_SVC_NOTIFICATIONS 28
92 #define CMD_DISABLE_HOST_SVC_NOTIFICATIONS 29
94 #define CMD_PROCESS_SERVICE_CHECK_RESULT 30
96 #define CMD_SAVE_STATE_INFORMATION 31
97 #define CMD_READ_STATE_INFORMATION 32
99 #define CMD_ACKNOWLEDGE_HOST_PROBLEM 33
100 #define CMD_ACKNOWLEDGE_SVC_PROBLEM 34
102 #define CMD_START_EXECUTING_SVC_CHECKS 35
103 #define CMD_STOP_EXECUTING_SVC_CHECKS 36
105 #define CMD_START_ACCEPTING_PASSIVE_SVC_CHECKS 37
106 #define CMD_STOP_ACCEPTING_PASSIVE_SVC_CHECKS 38
108 #define CMD_ENABLE_PASSIVE_SVC_CHECKS 39
109 #define CMD_DISABLE_PASSIVE_SVC_CHECKS 40
111 #define CMD_ENABLE_EVENT_HANDLERS 41
112 #define CMD_DISABLE_EVENT_HANDLERS 42
114 #define CMD_ENABLE_HOST_EVENT_HANDLER 43
115 #define CMD_DISABLE_HOST_EVENT_HANDLER 44
117 #define CMD_ENABLE_SVC_EVENT_HANDLER 45
118 #define CMD_DISABLE_SVC_EVENT_HANDLER 46
120 #define CMD_ENABLE_HOST_CHECK 47
121 #define CMD_DISABLE_HOST_CHECK 48
123 #define CMD_START_OBSESSING_OVER_SVC_CHECKS 49
124 #define CMD_STOP_OBSESSING_OVER_SVC_CHECKS 50
126 #define CMD_REMOVE_HOST_ACKNOWLEDGEMENT 51
127 #define CMD_REMOVE_SVC_ACKNOWLEDGEMENT 52
129 #define CMD_SCHEDULE_FORCED_HOST_SVC_CHECKS 53
130 #define CMD_SCHEDULE_FORCED_SVC_CHECK 54
132 #define CMD_SCHEDULE_HOST_DOWNTIME 55
133 #define CMD_SCHEDULE_SVC_DOWNTIME 56
135 #define CMD_ENABLE_HOST_FLAP_DETECTION 57
136 #define CMD_DISABLE_HOST_FLAP_DETECTION 58
138 #define CMD_ENABLE_SVC_FLAP_DETECTION 59
139 #define CMD_DISABLE_SVC_FLAP_DETECTION 60
141 #define CMD_ENABLE_FLAP_DETECTION 61
142 #define CMD_DISABLE_FLAP_DETECTION 62
144 #define CMD_ENABLE_HOSTGROUP_SVC_NOTIFICATIONS 63
145 #define CMD_DISABLE_HOSTGROUP_SVC_NOTIFICATIONS 64
147 #define CMD_ENABLE_HOSTGROUP_HOST_NOTIFICATIONS 65
148 #define CMD_DISABLE_HOSTGROUP_HOST_NOTIFICATIONS 66
150 #define CMD_ENABLE_HOSTGROUP_SVC_CHECKS 67
151 #define CMD_DISABLE_HOSTGROUP_SVC_CHECKS 68
153 #define CMD_CANCEL_HOST_DOWNTIME 69 /* not internally implemented */
154 #define CMD_CANCEL_SVC_DOWNTIME 70 /* not internally implemented */
156 #define CMD_CANCEL_ACTIVE_HOST_DOWNTIME 71 /* old - no longer used */
157 #define CMD_CANCEL_PENDING_HOST_DOWNTIME 72 /* old - no longer used */
159 #define CMD_CANCEL_ACTIVE_SVC_DOWNTIME 73 /* old - no longer used */
160 #define CMD_CANCEL_PENDING_SVC_DOWNTIME 74 /* old - no longer used */
162 #define CMD_CANCEL_ACTIVE_HOST_SVC_DOWNTIME 75 /* unimplemented */
163 #define CMD_CANCEL_PENDING_HOST_SVC_DOWNTIME 76 /* unimplemented */
165 #define CMD_FLUSH_PENDING_COMMANDS 77
167 #define CMD_DEL_HOST_DOWNTIME 78
168 #define CMD_DEL_SVC_DOWNTIME 79
170 #define CMD_ENABLE_FAILURE_PREDICTION 80
171 #define CMD_DISABLE_FAILURE_PREDICTION 81
173 #define CMD_ENABLE_PERFORMANCE_DATA 82
174 #define CMD_DISABLE_PERFORMANCE_DATA 83
176 #define CMD_SCHEDULE_HOSTGROUP_HOST_DOWNTIME 84
177 #define CMD_SCHEDULE_HOSTGROUP_SVC_DOWNTIME 85
178 #define CMD_SCHEDULE_HOST_SVC_DOWNTIME 86
180 /* new commands in Nagios 2.x found below... */
181 #define CMD_PROCESS_HOST_CHECK_RESULT 87
183 #define CMD_START_EXECUTING_HOST_CHECKS 88
184 #define CMD_STOP_EXECUTING_HOST_CHECKS 89
186 #define CMD_START_ACCEPTING_PASSIVE_HOST_CHECKS 90
187 #define CMD_STOP_ACCEPTING_PASSIVE_HOST_CHECKS 91
189 #define CMD_ENABLE_PASSIVE_HOST_CHECKS 92
190 #define CMD_DISABLE_PASSIVE_HOST_CHECKS 93
192 #define CMD_START_OBSESSING_OVER_HOST_CHECKS 94
193 #define CMD_STOP_OBSESSING_OVER_HOST_CHECKS 95
195 #define CMD_SCHEDULE_HOST_CHECK 96
196 #define CMD_SCHEDULE_FORCED_HOST_CHECK 98
198 #define CMD_START_OBSESSING_OVER_SVC 99
199 #define CMD_STOP_OBSESSING_OVER_SVC 100
201 #define CMD_START_OBSESSING_OVER_HOST 101
202 #define CMD_STOP_OBSESSING_OVER_HOST 102
204 #define CMD_ENABLE_HOSTGROUP_HOST_CHECKS 103
205 #define CMD_DISABLE_HOSTGROUP_HOST_CHECKS 104
207 #define CMD_ENABLE_HOSTGROUP_PASSIVE_SVC_CHECKS 105
208 #define CMD_DISABLE_HOSTGROUP_PASSIVE_SVC_CHECKS 106
210 #define CMD_ENABLE_HOSTGROUP_PASSIVE_HOST_CHECKS 107
211 #define CMD_DISABLE_HOSTGROUP_PASSIVE_HOST_CHECKS 108
213 #define CMD_ENABLE_SERVICEGROUP_SVC_NOTIFICATIONS 109
214 #define CMD_DISABLE_SERVICEGROUP_SVC_NOTIFICATIONS 110
216 #define CMD_ENABLE_SERVICEGROUP_HOST_NOTIFICATIONS 111
217 #define CMD_DISABLE_SERVICEGROUP_HOST_NOTIFICATIONS 112
219 #define CMD_ENABLE_SERVICEGROUP_SVC_CHECKS 113
220 #define CMD_DISABLE_SERVICEGROUP_SVC_CHECKS 114
222 #define CMD_ENABLE_SERVICEGROUP_HOST_CHECKS 115
223 #define CMD_DISABLE_SERVICEGROUP_HOST_CHECKS 116
225 #define CMD_ENABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS 117
226 #define CMD_DISABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS 118
228 #define CMD_ENABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS 119
229 #define CMD_DISABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS 120
231 #define CMD_SCHEDULE_SERVICEGROUP_HOST_DOWNTIME 121
232 #define CMD_SCHEDULE_SERVICEGROUP_SVC_DOWNTIME 122
234 #define CMD_CHANGE_GLOBAL_HOST_EVENT_HANDLER 123
235 #define CMD_CHANGE_GLOBAL_SVC_EVENT_HANDLER 124
237 #define CMD_CHANGE_HOST_EVENT_HANDLER 125
238 #define CMD_CHANGE_SVC_EVENT_HANDLER 126
240 #define CMD_CHANGE_HOST_CHECK_COMMAND 127
241 #define CMD_CHANGE_SVC_CHECK_COMMAND 128
243 #define CMD_CHANGE_NORMAL_HOST_CHECK_INTERVAL 129
244 #define CMD_CHANGE_NORMAL_SVC_CHECK_INTERVAL 130
245 #define CMD_CHANGE_RETRY_SVC_CHECK_INTERVAL 131
247 #define CMD_CHANGE_MAX_HOST_CHECK_ATTEMPTS 132
248 #define CMD_CHANGE_MAX_SVC_CHECK_ATTEMPTS 133
250 #define CMD_SCHEDULE_AND_PROPAGATE_TRIGGERED_HOST_DOWNTIME 134
252 #define CMD_ENABLE_HOST_AND_CHILD_NOTIFICATIONS 135
253 #define CMD_DISABLE_HOST_AND_CHILD_NOTIFICATIONS 136
255 #define CMD_SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME 137
257 #define CMD_ENABLE_SERVICE_FRESHNESS_CHECKS 138
258 #define CMD_DISABLE_SERVICE_FRESHNESS_CHECKS 139
260 #define CMD_ENABLE_HOST_FRESHNESS_CHECKS 140
261 #define CMD_DISABLE_HOST_FRESHNESS_CHECKS 141
263 #define CMD_SET_HOST_NOTIFICATION_NUMBER 142
264 #define CMD_SET_SVC_NOTIFICATION_NUMBER 143
266 /* new commands in Nagios 3.x found below... */
267 #define CMD_CHANGE_HOST_CHECK_TIMEPERIOD 144
268 #define CMD_CHANGE_SVC_CHECK_TIMEPERIOD 145
270 #define CMD_PROCESS_FILE 146
272 #define CMD_CHANGE_CUSTOM_HOST_VAR 147
273 #define CMD_CHANGE_CUSTOM_SVC_VAR 148
274 #define CMD_CHANGE_CUSTOM_CONTACT_VAR 149
276 #define CMD_ENABLE_CONTACT_HOST_NOTIFICATIONS 150
277 #define CMD_DISABLE_CONTACT_HOST_NOTIFICATIONS 151
278 #define CMD_ENABLE_CONTACT_SVC_NOTIFICATIONS 152
279 #define CMD_DISABLE_CONTACT_SVC_NOTIFICATIONS 153
281 #define CMD_ENABLE_CONTACTGROUP_HOST_NOTIFICATIONS 154
282 #define CMD_DISABLE_CONTACTGROUP_HOST_NOTIFICATIONS 155
283 #define CMD_ENABLE_CONTACTGROUP_SVC_NOTIFICATIONS 156
284 #define CMD_DISABLE_CONTACTGROUP_SVC_NOTIFICATIONS 157
286 #define CMD_CHANGE_RETRY_HOST_CHECK_INTERVAL 158
288 #define CMD_SEND_CUSTOM_HOST_NOTIFICATION 159
289 #define CMD_SEND_CUSTOM_SVC_NOTIFICATION 160
291 #define CMD_CHANGE_HOST_NOTIFICATION_TIMEPERIOD 161
292 #define CMD_CHANGE_SVC_NOTIFICATION_TIMEPERIOD 162
293 #define CMD_CHANGE_CONTACT_HOST_NOTIFICATION_TIMEPERIOD 163
294 #define CMD_CHANGE_CONTACT_SVC_NOTIFICATION_TIMEPERIOD 164
296 #define CMD_CHANGE_HOST_MODATTR 165
297 #define CMD_CHANGE_SVC_MODATTR 166
298 #define CMD_CHANGE_CONTACT_MODATTR 167
299 #define CMD_CHANGE_CONTACT_MODHATTR 168
300 #define CMD_CHANGE_CONTACT_MODSATTR 169
302 /* custom command introduced in Nagios 3.x */
303 #define CMD_CUSTOM_COMMAND 999
307 /************************ SERVICE CHECK TYPES ****************************/
309 #define SERVICE_CHECK_ACTIVE 0 /* Nagios performed the service check */
310 #define SERVICE_CHECK_PASSIVE 1 /* the service check result was submitted by an external source */
313 /************************** HOST CHECK TYPES *****************************/
315 #define HOST_CHECK_ACTIVE 0 /* Nagios performed the host check */
316 #define HOST_CHECK_PASSIVE 1 /* the host check result was submitted by an external source */
319 /************************ SERVICE STATE TYPES ****************************/
321 #define SOFT_STATE 0
322 #define HARD_STATE 1
325 /************************* SCHEDULED DOWNTIME TYPES **********************/
327 #define SERVICE_DOWNTIME 1 /* service downtime */
328 #define HOST_DOWNTIME 2 /* host downtime */
329 #define ANY_DOWNTIME 3 /* host or service downtime */
332 /************************** NOTIFICATION OPTIONS *************************/
334 #define NOTIFICATION_OPTION_NONE 0
335 #define NOTIFICATION_OPTION_BROADCAST 1
336 #define NOTIFICATION_OPTION_FORCED 2
337 #define NOTIFICATION_OPTION_INCREMENT 4
340 /************************** ACKNOWLEDGEMENT TYPES ************************/
342 #define HOST_ACKNOWLEDGEMENT 0
343 #define SERVICE_ACKNOWLEDGEMENT 1
345 #define ACKNOWLEDGEMENT_NONE 0
346 #define ACKNOWLEDGEMENT_NORMAL 1
347 #define ACKNOWLEDGEMENT_STICKY 2
350 /**************************** DEPENDENCY TYPES ***************************/
352 #define NOTIFICATION_DEPENDENCY 1
353 #define EXECUTION_DEPENDENCY 2
357 /********************** HOST/SERVICE CHECK OPTIONS ***********************/
359 #define CHECK_OPTION_NONE 0 /* no check options */
360 #define CHECK_OPTION_FORCE_EXECUTION 1 /* force execution of a check (ignores disabled services/hosts, invalid timeperiods) */
361 #define CHECK_OPTION_FRESHNESS_CHECK 2 /* this is a freshness check */
362 #define CHECK_OPTION_ORPHAN_CHECK 4 /* this is an orphan check */
365 /**************************** PROGRAM MODES ******************************/
367 #define STANDBY_MODE 0
368 #define ACTIVE_MODE 1
371 /************************** LOG ROTATION MODES ***************************/
373 #define LOG_ROTATION_NONE 0
374 #define LOG_ROTATION_HOURLY 1
375 #define LOG_ROTATION_DAILY 2
376 #define LOG_ROTATION_WEEKLY 3
377 #define LOG_ROTATION_MONTHLY 4
380 /***************************** LOG VERSIONS ******************************/
382 #define LOG_VERSION_1 "1.0"
383 #define LOG_VERSION_2 "2.0"
387 /*************************** CHECK STATISTICS ****************************/
389 #define ACTIVE_SCHEDULED_SERVICE_CHECK_STATS 0
390 #define ACTIVE_ONDEMAND_SERVICE_CHECK_STATS 1
391 #define PASSIVE_SERVICE_CHECK_STATS 2
392 #define ACTIVE_SCHEDULED_HOST_CHECK_STATS 3
393 #define ACTIVE_ONDEMAND_HOST_CHECK_STATS 4
394 #define PASSIVE_HOST_CHECK_STATS 5
395 #define ACTIVE_CACHED_HOST_CHECK_STATS 6
396 #define ACTIVE_CACHED_SERVICE_CHECK_STATS 7
397 #define EXTERNAL_COMMAND_STATS 8
398 #define PARALLEL_HOST_CHECK_STATS 9
399 #define SERIAL_HOST_CHECK_STATS 10
400 #define MAX_CHECK_STATS_TYPES 11
403 /************************* GENERAL DEFINITIONS **************************/
405 #define OK 0
406 #define ERROR -2 /* value was changed from -1 so as to not interfere with STATUS_UNKNOWN plugin result */
409 #ifndef TRUE
410 #define TRUE 1
411 #elif (TRUE!=1)
412 #define TRUE 1
413 #endif
414 #ifndef FALSE
415 #define FALSE 0
416 #elif (FALSE!=0)
417 #define FALSE 0
418 #endif
421 /****************** HOST CONFIG FILE READING OPTIONS ********************/
423 #define READ_HOSTS 1
424 #define READ_HOSTGROUPS 2
425 #define READ_CONTACTS 4
426 #define READ_CONTACTGROUPS 8
427 #define READ_SERVICES 16
428 #define READ_COMMANDS 32
429 #define READ_TIMEPERIODS 64
430 #define READ_SERVICEESCALATIONS 128
431 #define READ_HOSTGROUPESCALATIONS 256 /* no longer implemented */
432 #define READ_SERVICEDEPENDENCIES 512
433 #define READ_HOSTDEPENDENCIES 1024
434 #define READ_HOSTESCALATIONS 2048
435 #define READ_HOSTEXTINFO 4096
436 #define READ_SERVICEEXTINFO 8192
437 #define READ_SERVICEGROUPS 16384
439 #define READ_ALL_OBJECT_DATA READ_HOSTS | READ_HOSTGROUPS | READ_CONTACTS | READ_CONTACTGROUPS | READ_SERVICES | READ_COMMANDS | READ_TIMEPERIODS | READ_SERVICEESCALATIONS | READ_SERVICEDEPENDENCIES | READ_HOSTDEPENDENCIES | READ_HOSTESCALATIONS | READ_HOSTEXTINFO | READ_SERVICEEXTINFO | READ_SERVICEGROUPS
442 /************************** DATE RANGE TYPES ****************************/
444 #define DATERANGE_CALENDAR_DATE 0 /* 2008-12-25 */
445 #define DATERANGE_MONTH_DATE 1 /* july 4 (specific month) */
446 #define DATERANGE_MONTH_DAY 2 /* day 21 (generic month) */
447 #define DATERANGE_MONTH_WEEK_DAY 3 /* 3rd thursday (specific month) */
448 #define DATERANGE_WEEK_DAY 4 /* 3rd thursday (generic month) */
449 #define DATERANGE_TYPES 5
452 /************************** DATE/TIME TYPES *****************************/
454 #define LONG_DATE_TIME 0
455 #define SHORT_DATE_TIME 1
456 #define SHORT_DATE 2
457 #define SHORT_TIME 3
458 #define HTTP_DATE_TIME 4 /* time formatted for use in HTTP headers */
461 /**************************** DATE FORMATS ******************************/
463 #define DATE_FORMAT_US 0 /* U.S. (MM-DD-YYYY HH:MM:SS) */
464 #define DATE_FORMAT_EURO 1 /* European (DD-MM-YYYY HH:MM:SS) */
465 #define DATE_FORMAT_ISO8601 2 /* ISO8601 (YYYY-MM-DD HH:MM:SS) */
466 #define DATE_FORMAT_STRICT_ISO8601 3 /* ISO8601 (YYYY-MM-DDTHH:MM:SS) */
469 /************************** MISC DEFINITIONS ****************************/
471 #define MAX_FILENAME_LENGTH 256 /* max length of path/filename that Nagios will process */
472 #define MAX_INPUT_BUFFER 1024 /* size in bytes of max. input buffer (for reading files, misc stuff) */
473 #define MAX_COMMAND_BUFFER 32768 /* max length of raw or processed command line */
474 #define MAX_EXTERNAL_COMMAND_LENGTH 8192 /* max length of an external command */
476 #define MAX_DATETIME_LENGTH 48
479 /************************* MODIFIED ATTRIBUTES **************************/
481 #define MODATTR_NONE 0
482 #define MODATTR_NOTIFICATIONS_ENABLED 1
483 #define MODATTR_ACTIVE_CHECKS_ENABLED 2
484 #define MODATTR_PASSIVE_CHECKS_ENABLED 4
485 #define MODATTR_EVENT_HANDLER_ENABLED 8
486 #define MODATTR_FLAP_DETECTION_ENABLED 16
487 #define MODATTR_FAILURE_PREDICTION_ENABLED 32
488 #define MODATTR_PERFORMANCE_DATA_ENABLED 64
489 #define MODATTR_OBSESSIVE_HANDLER_ENABLED 128
490 #define MODATTR_EVENT_HANDLER_COMMAND 256
491 #define MODATTR_CHECK_COMMAND 512
492 #define MODATTR_NORMAL_CHECK_INTERVAL 1024
493 #define MODATTR_RETRY_CHECK_INTERVAL 2048
494 #define MODATTR_MAX_CHECK_ATTEMPTS 4096
495 #define MODATTR_FRESHNESS_CHECKS_ENABLED 8192
496 #define MODATTR_CHECK_TIMEPERIOD 16384
497 #define MODATTR_CUSTOM_VARIABLE 32768
498 #define MODATTR_NOTIFICATION_TIMEPERIOD 65536