48
33
extern char *CONFIG_DBPASSWORD;
49
34
extern char *CONFIG_DBSOCKET;
50
35
extern int CONFIG_DBPORT;
36
extern int CONFIG_NODEID;
37
extern int CONFIG_MASTER_NODEID;
39
#define ZBX_DB_CONNECT_NORMAL 0
40
#define ZBX_DB_CONNECT_EXIT 1
52
42
#define DB_FULL_DELETE 0
53
43
#define DB_PART_DELETE 1
55
#define DB_HOST struct host_type
56
#define DB_PROFILE struct profile_type
57
#define DB_ITEM struct item_type
58
#define DB_TRIGGER struct trigger_type
59
#define DB_ACTION struct action_type
60
#define DB_CONDITION struct condition_type
61
#define DB_ALERT struct alert_type
62
#define DB_FUNCTION struct function_type
63
#define DB_MEDIA struct media_type
64
#define DB_MEDIATYPE struct mediatype_type
65
#define DB_GRAPH struct graph_type
66
#define DB_GRAPH_ITEM struct graph_item_type
67
#define DB_HOUSEKEEPER struct housekeeper_type
70
#define DB_RESULT MYSQL_RES *
71
#define DBfree_result mysql_free_result
72
#define DB_ROW MYSQL_ROW
76
#define DB_ROW char **
77
#define DB_RESULT ZBX_PG_DB_RESULT*
78
#define DBfree_result PG_DBfree_result
80
typedef struct zbx_pg_db_result_s
89
void PG_DBfree_result(DB_RESULT result);
94
#define DB_RESULT sqlo_stmt_handle_t
95
#define DBfree_result sqlo_close
96
#define DB_ROW char **
45
#define DB_ACTION struct zbx_action_type
46
#define DB_ALERT struct zbx_alert_type
47
#define DB_CONDITION struct zbx_condition_type
48
#define DB_DHOST struct zbx_dhost_type
49
#define DB_DRULE struct zbx_drule_type
50
#define DB_DSERVICE struct zbx_dservice_type
51
#define DB_DCHECK struct zbx_dcheck_type
52
#define DB_EVENT struct zbx_event_type
53
#define DB_FUNCTION struct zbx_function_type
54
#define DB_GRAPH struct zbx_graph_type
55
#define DB_GRAPH_ITEM struct zbx_graph_item_type
56
#define DB_HOST struct zbx_host_type
57
#define DB_HOUSEKEEPER struct zbx_housekeeper_type
58
#define DB_ITEM struct zbx_item_type
59
#define DB_MEDIA struct zbx_media_type
60
#define DB_MEDIATYPE struct zbx_mediatype_type
61
#define DB_OPERATION struct zbx_operation_type
62
#define DB_TRIGGER struct zbx_trigger_type
63
#define DB_HTTPTEST struct zbx_httptest_type
64
#define DB_HTTPSTEP struct zbx_httpstep_type
65
#define DB_HTTPSTEPITEM struct zbx_httpstepitem_type
66
#define DB_HTTPTESTITEM struct zbx_httptestitem_type
99
68
#define MAX_HOST_HOST_LEN 64
101
#define MAX_ITEM_KEY_LEN 64
70
#define MAX_ITEM_KEY_LEN 255
102
71
#define MAX_ITEM_IP_LEN 15
103
72
#define MAX_ITEM_SNMP_COMMUNITY_LEN 64
104
73
#define MAX_ITEM_SNMP_OID_LEN 255
137
108
#define ACTION_SUBJECT_LEN 255
138
109
#define ACTION_SUBJECT_LEN_MAX ACTION_SUBJECT_LEN+1
140
#define ZBX_SQL_ITEM_SELECT "i.itemid,i.key_,h.host,h.port,i.delay,i.description,i.nextcheck,i.type,i.snmp_community,i.snmp_oid,h.useip,h.ip,i.history,i.lastvalue,i.prevvalue,i.hostid,h.status,i.value_type,h.errors_from,i.snmp_port,i.delta,i.prevorgvalue,i.lastclock,i.units,i.multiplier,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.formula,h.available,i.status,i.trapper_hosts,i.logtimefmt,i.valuemapid from hosts h, items i"
111
#define DSERVICE_VALUE_LEN 255
112
#define DSERVICE_VALUE_LEN_MAX DSERVICE_VALUE_LEN+1
114
#define HTTPSTEP_STATUS_LEN 255
115
#define HTTPSTEP_STATUS_LEN_MAX HTTPSTEP_STATUS_LEN+1
117
#define HTTPSTEP_REQUIRED_LEN 255
118
#define HTTPSTEP_REQUIRED_LEN_MAX HTTPSTEP_REQUIRED_LEN+1
120
#define ZBX_SQL_ITEM_SELECT "i.itemid,i.key_,h.host,h.port,i.delay,i.description,i.nextcheck,i.type,i.snmp_community,i.snmp_oid,h.useip,h.ip,i.history,i.lastvalue,i.prevvalue,i.hostid,h.status,i.value_type,h.errors_from,i.snmp_port,i.delta,i.prevorgvalue,i.lastclock,i.units,i.multiplier,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.formula,h.available,i.status,i.trapper_hosts,i.logtimefmt,i.valuemapid,i.delay_flex,h.dns from hosts h, items i"
122
#define ZBX_MAX_SQL_LEN 65535
126
zbx_uint64_t druleid;
136
zbx_uint64_t dcheckid;
137
zbx_uint64_t druleid;
141
char *snmp_community;
143
char value[DSERVICE_VALUE_LEN_MAX];
148
zbx_uint64_t dhostid;
149
zbx_uint64_t druleid;
150
char ip[HOST_IP_LEN_MAX];
158
zbx_uint64_t dserviceid;
159
zbx_uint64_t dhostid;
165
char value[DSERVICE_VALUE_LEN_MAX];
166
char key_[MAX_ITEM_KEY_LEN];
171
zbx_uint64_t eventid;
174
zbx_uint64_t objectid;
179
char trigger_description[TRIGGER_DESCRIPTION_LEN_MAX];
180
int trigger_priority;
182
char *trigger_comments;
145
188
char host[HOST_HOST_LEN_MAX];
189
char dns[HOST_DNS_LEN_MAX];
147
191
char ip[HOST_IP_LEN_MAX];
306
zbx_uint64_t mediatypeid;
307
zbx_alert_type_t type;
273
308
char *description;
274
309
char *smtp_server;
276
311
char *smtp_email;
320
zbx_uint64_t triggerid;
284
321
char expression[TRIGGER_EXPRESSION_LEN_MAX];
285
322
char description[TRIGGER_DESCRIPTION_LEN_MAX];
333
zbx_uint64_t actionid;
342
zbx_uint64_t operationid;
343
zbx_uint64_t actionid;
346
zbx_uint64_t objectid;
353
zbx_uint64_t conditionid;
354
zbx_uint64_t actionid;
355
zbx_condition_type_t conditiontype;
356
zbx_condition_op_t operator;
362
zbx_uint64_t alertid;
363
zbx_uint64_t actionid;
366
zbx_uint64_t mediatypeid;
370
zbx_alert_status_t status;
377
zbx_uint64_t housekeeperid;
341
void DBconnect(void);
385
zbx_uint64_t httptestid;
387
zbx_uint64_t applicationid;
399
zbx_uint64_t httpstepid;
400
zbx_uint64_t httptestid;
403
char url[MAX_STRING_LEN];
405
char posts[MAX_STRING_LEN];
406
char required[HTTPSTEP_REQUIRED_LEN_MAX];
407
char status_codes[HTTPSTEP_STATUS_LEN_MAX];
412
zbx_uint64_t httpstepitemid;
413
zbx_uint64_t httpstepid;
415
zbx_httpitem_type_t type;
420
zbx_uint64_t httptestitemid;
421
zbx_uint64_t httptestid;
423
zbx_httpitem_type_t type;
429
void DBconnect(int flag);
343
431
void DBclose(void);
344
432
void DBvacuum(void);
346
int DBexecute( char *query );
347
/*long DBaffected_rows();*/
434
int DBexecute(const char *fmt, ...);
349
DB_RESULT DBselect(char *query);
436
DB_RESULT DBselect(const char *fmt, ...);
350
437
DB_RESULT DBselectN(char *query, int n);
351
DB_ROW DBfetch(DB_RESULT result);
352
/*char *DBget_field(DB_RESULT result, int rownum, int fieldnum);*/
353
/*int DBnum_rows(DB_RESULT result);*/
354
int DBinsert_id(int exec_result, const char *table, const char *field);
355
int DBis_null(char *field);
357
int DBget_function_result(double *result,char *functionid);
358
void DBupdate_host_availability(int hostid,int available,int clock,char *error);
359
int DBupdate_item_status_to_notsupported(int itemid, char *error);
360
int DBadd_trend(int itemid, double value, int clock);
361
int DBadd_history(int itemid, double value, int clock);
362
int DBadd_history_log(int itemid, char *value, int clock, int timestamp, char *source, int severity);
363
int DBadd_history_str(int itemid, char *value, int clock);
364
int DBadd_history_text(int itemid, char *value, int clock);
365
int DBadd_history_uint(int itemid, zbx_uint64_t value, int clock);
366
int DBadd_service_alarm(int serviceid,int status,int clock);
367
int DBadd_alert(int actionid, int triggerid, int userid, int mediatypeid, char *sendto, char *subject, char *message, int maxrepeats, int repeatdelay);
438
DB_ROW DBfetch(DB_RESULT result);
439
zbx_uint64_t DBinsert_id(int exec_result, const char *table, const char *field);
440
int DBis_null(char *field);
445
zbx_uint64_t DBget_maxid(char *table, char *field);
447
int DBget_function_result(char **result,char *functionid);
448
void DBupdate_host_availability(zbx_uint64_t hostid,int available,int clock,char *error);
449
int DBupdate_item_status_to_notsupported(zbx_uint64_t itemid, char *error);
450
int DBadd_trend(zbx_uint64_t itemid, double value, int clock);
451
int DBadd_history(zbx_uint64_t itemid, double value, int clock);
452
int DBadd_history_log(zbx_uint64_t itemid, char *value, int clock, int timestamp, char *source, int severity);
453
int DBadd_history_str(zbx_uint64_t itemid, char *value, int clock);
454
int DBadd_history_text(zbx_uint64_t itemid, char *value, int clock);
455
int DBadd_history_uint(zbx_uint64_t itemid, zbx_uint64_t value, int clock);
456
int DBadd_service_alarm(zbx_uint64_t serviceid,int status,int clock);
457
int DBadd_alert(zbx_uint64_t actionid, zbx_uint64_t triggerid, zbx_uint64_t userid, zbx_uint64_t mediatypeid, char *sendto, char *subject, char *message);
368
458
void DBupdate_triggers_status_after_restart(void);
369
int DBget_prev_trigger_value(int triggerid);
459
int DBget_prev_trigger_value(zbx_uint64_t triggerid);
370
460
/*int DBupdate_trigger_value(int triggerid,int value,int clock);*/
371
461
int DBupdate_trigger_value(DB_TRIGGER *trigger, int new_value, int now, char *reason);
378
468
int DBget_triggers_count(void);
379
469
int DBget_queue_count(void);
381
void DBescape_string(char *from, char *to, int maxlen);
471
void DBescape_string(const char *from, char *to, int maxlen);
472
char* DBdyn_escape_string(const char *str);
382
474
void DBget_item_from_db(DB_ITEM *item,DB_ROW row);
384
int DBadd_host(char *server, int port, int status, int useip, char *ip, int disable_until, int available);
476
zbx_uint64_t DBadd_host(char *server, int port, int status, int useip, char *ip, int disable_until, int available);
385
477
int DBhost_exists(char *server);
386
478
int DBget_host_by_hostid(int hostid,DB_HOST *host);
387
int DBget_profile_by_hostid(int hostid,DB_PROFILE *profile);
388
int DBsync_host_with_templates(int hostid);
389
int DBsync_host_with_template(int hostid,int templateid,int items,int triggers,int graphs);
390
479
int DBadd_templates_to_host(int hostid,int host_templateid);
392
481
int DBadd_template_linkage(int hostid,int templateid,int items,int triggers,int graphs);
394
483
int DBget_item_by_itemid(int itemid,DB_ITEM *item);
395
int DBadd_item_to_linked_hosts(int itemid, int hostid);
396
int DBadd_item(char *description, char *key, int hostid, int delay, int history, int status, int type, char *snmp_community, char *snmp_oid,int value_type,char *trapper_hosts,int snmp_port,char *units,int multiplier,int delta, char *snmpv3_securityname,int snmpv3_securitylevel,char *snmpv3_authpassphrase,char *snmpv3_privpassphrase,char *formula,int trends,char *logtimefmt);
398
int DBadd_action_to_linked_hosts(int actionid,int hostid);
400
485
int DBget_trigger_by_triggerid(int triggerid,DB_TRIGGER *trigger);
401
486
int DBadd_trigger_to_linked_hosts(int triggerid,int hostid);
402
void DBdelete_triggers_by_itemid(int itemid);
403
void DBdelete_sysmaps_hosts_by_hostid(int hostid);
487
void DBdelete_sysmaps_hosts_by_hostid(zbx_uint64_t hostid);
405
int DBadd_graph(char *name, int width, int height, int yaxistype, double yaxismin, double yaxismax);
406
489
int DBget_graph_item_by_gitemid(int gitemid, DB_GRAPH_ITEM *graph_item);
407
490
int DBget_graph_by_graphid(int graphid, DB_GRAPH *graph);
408
491
int DBadd_graph_item_to_linked_hosts(int gitemid,int hostid);
492
void get_latest_event_status(zbx_uint64_t triggerid, int *prev_status, int *latest_status);
495
void DBdelete_template_elements(
497
zbx_uint64_t templateid,
498
unsigned char unlink_mode
500
int DBcopy_template_elements(
502
zbx_uint64_t templateid,
503
unsigned char copy_mode
505
int DBsync_host_with_template(
507
zbx_uint64_t templateid
509
int DBsync_host_with_templates(