You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
949 lines
30 KiB
949 lines
30 KiB
/*
|
|
** Zabbix
|
|
** Copyright (C) 2001-2023 Zabbix SIA
|
|
**
|
|
** This program is free software; you can redistribute it and/or modify
|
|
** it under the terms of the GNU General Public License as published by
|
|
** the Free Software Foundation; either version 2 of the License, or
|
|
** (at your option) any later version.
|
|
**
|
|
** This program is distributed in the hope that it will be useful,
|
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
** GNU General Public License for more details.
|
|
**
|
|
** You should have received a copy of the GNU General Public License
|
|
** along with this program; if not, write to the Free Software
|
|
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
**/
|
|
|
|
#ifndef ZABBIX_DBHIGH_H
|
|
#define ZABBIX_DBHIGH_H
|
|
|
|
#include "zbxalgo.h"
|
|
#include "zbxdb.h"
|
|
#include "zbxdbschema.h"
|
|
#include "zbxstr.h"
|
|
#include "zbxnum.h"
|
|
#include "zbxversion.h"
|
|
#include "zbxtime.h"
|
|
|
|
#include "zbxtagfilter.h"
|
|
|
|
#define ZBX_DB_CONNECT_NORMAL 0
|
|
#define ZBX_DB_CONNECT_EXIT 1
|
|
#define ZBX_DB_CONNECT_ONCE 2
|
|
|
|
/* type of database */
|
|
#define ZBX_DB_UNKNOWN 0
|
|
#define ZBX_DB_SERVER 1
|
|
#define ZBX_DB_PROXY 2
|
|
|
|
#define ZBX_INTERFACE_DNS_LEN 255
|
|
#define ZBX_INTERFACE_DNS_LEN_MAX (ZBX_INTERFACE_DNS_LEN + 1)
|
|
#define ZBX_INTERFACE_IP_LEN 64
|
|
#define ZBX_INTERFACE_IP_LEN_MAX (ZBX_INTERFACE_IP_LEN + 1)
|
|
#define ZBX_INTERFACE_ADDR_LEN 255 /* MAX(ZBX_INTERFACE_DNS_LEN,ZBX_INTERFACE_IP_LEN) */
|
|
#define ZBX_INTERFACE_ADDR_LEN_MAX (ZBX_INTERFACE_ADDR_LEN + 1)
|
|
#define ZBX_INTERFACE_PORT_LEN 64
|
|
#define ZBX_INTERFACE_PORT_LEN_MAX (ZBX_INTERFACE_PORT_LEN + 1)
|
|
#define ZBX_INTERFACE_ERROR_LEN 2048
|
|
#define ZBX_INTERFACE_ERROR_LEN_MAX (ZBX_INTERFACE_ERROR_LEN + 1)
|
|
|
|
#define ZBX_ITEM_NAME_LEN 255
|
|
#define ZBX_ITEM_KEY_LEN 2048
|
|
#define ZBX_ITEM_DELAY_LEN 1024
|
|
#define ZBX_ITEM_HISTORY_LEN 255
|
|
#define ZBX_ITEM_TRENDS_LEN 255
|
|
#define ZBX_ITEM_UNITS_LEN 255
|
|
#define ZBX_ITEM_SNMP_COMMUNITY_LEN 64
|
|
#define ZBX_ITEM_SNMP_COMMUNITY_LEN_MAX (ZBX_ITEM_SNMP_COMMUNITY_LEN + 1)
|
|
#define ZBX_ITEM_SNMP_OID_LEN 512
|
|
#define ZBX_ITEM_SNMP_OID_LEN_MAX (ZBX_ITEM_SNMP_OID_LEN + 1)
|
|
#define ZBX_ITEM_ERROR_LEN 2048
|
|
#define ZBX_ITEM_ERROR_LEN_MAX (ZBX_ITEM_ERROR_LEN + 1)
|
|
#define ZBX_ITEM_TRAPPER_HOSTS_LEN 255
|
|
#define ZBX_ITEM_TRAPPER_HOSTS_LEN_MAX (ZBX_ITEM_TRAPPER_HOSTS_LEN + 1)
|
|
#define ZBX_ITEM_SNMPV3_SECURITYNAME_LEN 64
|
|
#define ZBX_ITEM_SNMPV3_SECURITYNAME_LEN_MAX (ZBX_ITEM_SNMPV3_SECURITYNAME_LEN + 1)
|
|
#define ZBX_ITEM_SNMPV3_AUTHPASSPHRASE_LEN 64
|
|
#define ZBX_ITEM_SNMPV3_AUTHPASSPHRASE_LEN_MAX (ZBX_ITEM_SNMPV3_AUTHPASSPHRASE_LEN + 1)
|
|
#define ZBX_ITEM_SNMPV3_PRIVPASSPHRASE_LEN 64
|
|
#define ZBX_ITEM_SNMPV3_PRIVPASSPHRASE_LEN_MAX (ZBX_ITEM_SNMPV3_PRIVPASSPHRASE_LEN + 1)
|
|
#define ZBX_ITEM_SNMPV3_CONTEXTNAME_LEN 255
|
|
#define ZBX_ITEM_SNMPV3_CONTEXTNAME_LEN_MAX (ZBX_ITEM_SNMPV3_CONTEXTNAME_LEN + 1)
|
|
#define ZBX_ITEM_LOGTIMEFMT_LEN 64
|
|
#define ZBX_ITEM_LOGTIMEFMT_LEN_MAX (ZBX_ITEM_LOGTIMEFMT_LEN + 1)
|
|
#define ZBX_ITEM_IPMI_SENSOR_LEN 128
|
|
#define ZBX_ITEM_IPMI_SENSOR_LEN_MAX (ZBX_ITEM_IPMI_SENSOR_LEN + 1)
|
|
#define ZBX_ITEM_USERNAME_LEN 255
|
|
#define ZBX_ITEM_USERNAME_LEN_MAX (ZBX_ITEM_USERNAME_LEN + 1)
|
|
#define ZBX_ITEM_PASSWORD_LEN 255
|
|
#define ZBX_ITEM_PASSWORD_LEN_MAX (ZBX_ITEM_PASSWORD_LEN + 1)
|
|
#define ZBX_ITEM_PUBLICKEY_LEN 64
|
|
#define ZBX_ITEM_PUBLICKEY_LEN_MAX (ZBX_ITEM_PUBLICKEY_LEN + 1)
|
|
#define ZBX_ITEM_PRIVATEKEY_LEN 64
|
|
#define ZBX_ITEM_PRIVATEKEY_LEN_MAX (ZBX_ITEM_PRIVATEKEY_LEN + 1)
|
|
#define ZBX_ITEM_JMX_ENDPOINT_LEN 255
|
|
#define ZBX_ITEM_JMX_ENDPOINT_LEN_MAX (ZBX_ITEM_JMX_ENDPOINT_LEN + 1)
|
|
#define ZBX_ITEM_TIMEOUT_LEN 255
|
|
#define ZBX_ITEM_TIMEOUT_LEN_MAX (ZBX_ITEM_TIMEOUT_LEN + 1)
|
|
#define ZBX_ITEM_URL_LEN 2048
|
|
#define ZBX_ITEM_URL_LEN_MAX (ZBX_ITEM_URL_LEN + 1)
|
|
#define ZBX_ITEM_QUERY_FIELDS_LEN 2048
|
|
#define ZBX_ITEM_QUERY_FIELDS_LEN_MAX (ZBX_ITEM_QUERY_FIELDS_LEN + 1)
|
|
#define ZBX_ITEM_STATUS_CODES_LEN 255
|
|
#define ZBX_ITEM_STATUS_CODES_LEN_MAX (ZBX_ITEM_STATUS_CODES_LEN + 1)
|
|
#define ZBX_ITEM_HTTP_PROXY_LEN 255
|
|
#define ZBX_ITEM_HTTP_PROXY_LEN_MAX (ZBX_ITEM_HTTP_PROXY_LEN + 1)
|
|
#define ZBX_ITEM_SSL_KEY_PASSWORD_LEN 64
|
|
#define ZBX_ITEM_SSL_KEY_PASSWORD_LEN_MAX (ZBX_ITEM_SSL_KEY_PASSWORD_LEN + 1)
|
|
#define ZBX_ITEM_SSL_CERT_FILE_LEN 255
|
|
#define ZBX_ITEM_SSL_CERT_FILE_LEN_MAX (ZBX_ITEM_SSL_CERT_FILE_LEN + 1)
|
|
#define ZBX_ITEM_SSL_KEY_FILE_LEN 255
|
|
#define ZBX_ITEM_SSL_KEY_FILE_LEN_MAX (ZBX_ITEM_SSL_KEY_FILE_LEN + 1)
|
|
#define ZBX_ITEM_PREPROC_PARAMS_LEN 65535
|
|
|
|
#if defined(HAVE_ORACLE)
|
|
# define ZBX_ITEM_PARAM_LEN 2048
|
|
# define ZBX_ITEM_DESCRIPTION_LEN 2048
|
|
# define ZBX_ITEM_POSTS_LEN 2048
|
|
# define ZBX_ITEM_HEADERS_LEN 2048
|
|
#else
|
|
# define ZBX_ITEM_PARAM_LEN 65535
|
|
# define ZBX_ITEM_DESCRIPTION_LEN 65535
|
|
# define ZBX_ITEM_POSTS_LEN 65535
|
|
# define ZBX_ITEM_HEADERS_LEN 65535
|
|
#endif
|
|
|
|
#define ZBX_ITEM_PARAMETER_NAME_LEN 255
|
|
#define ZBX_ITEM_PARAMETER_VALUE_LEN 2048
|
|
#define ZBX_ITEM_TAG_FIELD_LEN 255
|
|
|
|
/* common tag/value field lengths for all tags */
|
|
#define ZBX_DB_TAG_NAME_LEN 255
|
|
#define ZBX_DB_TAG_VALUE_LEN 255
|
|
|
|
#define ZBX_HISTORY_STR_VALUE_LEN 255
|
|
#define ZBX_HISTORY_TEXT_VALUE_LEN 65535
|
|
#define ZBX_HISTORY_LOG_VALUE_LEN 65535
|
|
|
|
/* Binary item type can only be as a dependent item. */
|
|
#define ZBX_HISTORY_BIN_VALUE_LEN MAX(ZBX_HISTORY_TEXT_VALUE_LEN, ZBX_HISTORY_LOG_VALUE_LEN)
|
|
|
|
#define ZBX_HISTORY_LOG_SOURCE_LEN 64
|
|
#define ZBX_HISTORY_LOG_SOURCE_LEN_MAX (ZBX_HISTORY_LOG_SOURCE_LEN + 1)
|
|
|
|
#define ZBX_GRAPH_NAME_LEN 128
|
|
#define ZBX_GRAPH_ITEM_COLOR_LEN 6
|
|
#define ZBX_GRAPH_ITEM_COLOR_LEN_MAX (ZBX_GRAPH_ITEM_COLOR_LEN + 1)
|
|
|
|
#define ZBX_DSERVICE_VALUE_LEN 255
|
|
#define ZBX_MAX_DISCOVERED_VALUE_SIZE (ZBX_DSERVICE_VALUE_LEN * ZBX_MAX_BYTES_IN_UTF8_CHAR + 1)
|
|
|
|
typedef zbx_uint64_t (*zbx_dc_get_nextid_func_t)(const char *table_name, int num);
|
|
|
|
#ifdef HAVE_ORACLE
|
|
# define ZBX_PLSQL_BEGIN "begin\n"
|
|
# define ZBX_PLSQL_END "end;"
|
|
# define zbx_db_begin_multiple_update(sql, sql_alloc, sql_offset) \
|
|
zbx_strcpy_alloc(sql, sql_alloc, sql_offset, ZBX_PLSQL_BEGIN)
|
|
# define zbx_db_end_multiple_update(sql, sql_alloc, sql_offset) \
|
|
zbx_strcpy_alloc(sql, sql_alloc, sql_offset, ZBX_PLSQL_END)
|
|
# define ZBX_SQL_STRCMP "%s%s%s"
|
|
# define ZBX_SQL_STRVAL_EQ(str) \
|
|
'\0' != *str ? "='" : "", \
|
|
'\0' != *str ? str : " is null", \
|
|
'\0' != *str ? "'" : ""
|
|
# define ZBX_SQL_STRVAL_NE(str) \
|
|
'\0' != *str ? "<>'" : "", \
|
|
'\0' != *str ? str : " is not null", \
|
|
'\0' != *str ? "'" : ""
|
|
#else
|
|
# define zbx_db_begin_multiple_update(sql, sql_alloc, sql_offset) do {} while (0)
|
|
# define zbx_db_end_multiple_update(sql, sql_alloc, sql_offset) do {} while (0)
|
|
# ifdef HAVE_MYSQL
|
|
# define ZBX_SQL_STRCMP "%s binary '%s'"
|
|
# else
|
|
# define ZBX_SQL_STRCMP "%s'%s'"
|
|
# endif
|
|
# define ZBX_SQL_STRVAL_EQ(str) "=", str
|
|
# define ZBX_SQL_STRVAL_NE(str) "<>", str
|
|
#endif
|
|
|
|
#ifdef HAVE_MYSQL
|
|
# define ZBX_SQL_CONCAT() "concat(%s,%s)"
|
|
#else
|
|
# define ZBX_SQL_CONCAT() "%s||%s"
|
|
#endif
|
|
|
|
#define ZBX_SQL_NULLCMP(f1, f2) "((" f1 " is null and " f2 " is null) or " f1 "=" f2 ")"
|
|
|
|
#define ZBX_DBROW2UINT64(uint, row) \
|
|
do { \
|
|
if (SUCCEED == zbx_db_is_null(row)) \
|
|
uint = 0; \
|
|
else \
|
|
zbx_is_uint64(row, &uint); \
|
|
} \
|
|
while (0)
|
|
|
|
#define ZBX_DB_MAX_ID (zbx_uint64_t)__UINT64_C(0x7fffffffffffffff)
|
|
|
|
#ifdef HAVE_MYSQL
|
|
# define ZBX_SQL_SORT_ASC(field) field " asc"
|
|
# define ZBX_SQL_SORT_DESC(field) field " desc"
|
|
#else
|
|
# define ZBX_SQL_SORT_ASC(field) field " asc nulls first"
|
|
# define ZBX_SQL_SORT_DESC(field) field " desc nulls last"
|
|
#endif
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t druleid;
|
|
zbx_uint64_t unique_dcheckid;
|
|
char *iprange;
|
|
char *name;
|
|
}
|
|
zbx_db_drule;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t dhostid;
|
|
int status;
|
|
int lastup;
|
|
int lastdown;
|
|
}
|
|
zbx_db_dhost;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t triggerid;
|
|
char *description;
|
|
char *expression;
|
|
char *recovery_expression;
|
|
char *url;
|
|
char *url_name;
|
|
char *comments;
|
|
char *correlation_tag;
|
|
char *opdata;
|
|
char *event_name;
|
|
unsigned char value;
|
|
unsigned char priority;
|
|
unsigned char type;
|
|
unsigned char recovery_mode;
|
|
unsigned char correlation_mode;
|
|
|
|
/* temporary trigger cache for related data */
|
|
void *cache;
|
|
}
|
|
zbx_db_trigger;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t eventid;
|
|
zbx_db_trigger trigger;
|
|
zbx_uint64_t objectid;
|
|
char *name;
|
|
int source;
|
|
int object;
|
|
int clock;
|
|
int value;
|
|
int acknowledged;
|
|
int ns;
|
|
int severity;
|
|
unsigned char suppressed;
|
|
|
|
zbx_vector_tags_t tags;
|
|
|
|
#define ZBX_FLAGS_DB_EVENT_UNSET 0x0000
|
|
#define ZBX_FLAGS_DB_EVENT_CREATE 0x0001
|
|
#define ZBX_FLAGS_DB_EVENT_NO_ACTION 0x0002
|
|
#define ZBX_FLAGS_DB_EVENT_RECOVER 0x0004
|
|
/* flags to indicate data retrieved from DB, used for cause event macros */
|
|
#define ZBX_FLAGS_DB_EVENT_RETRIEVED_CORE 0x0008
|
|
#define ZBX_FLAGS_DB_EVENT_RETRIEVED_TAGS 0x0010
|
|
#define ZBX_FLAGS_DB_EVENT_RETRIEVED_TRIGGERS 0x0020
|
|
zbx_uint64_t flags;
|
|
}
|
|
zbx_db_event;
|
|
|
|
ZBX_PTR_VECTOR_DECL(db_event, zbx_db_event *)
|
|
|
|
/* temporary cache of trigger related data */
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t serviceid;
|
|
char *name;
|
|
char *description;
|
|
zbx_vector_uint64_t eventids;
|
|
zbx_vector_db_event_t events;
|
|
zbx_vector_tags_t service_tags;
|
|
}
|
|
zbx_db_service;
|
|
|
|
/* media types */
|
|
typedef enum
|
|
{
|
|
MEDIA_TYPE_EMAIL = 0,
|
|
MEDIA_TYPE_EXEC,
|
|
MEDIA_TYPE_SMS,
|
|
MEDIA_TYPE_WEBHOOK = 4
|
|
}
|
|
zbx_media_type_t;
|
|
|
|
/* alert statuses */
|
|
typedef enum
|
|
{
|
|
ALERT_STATUS_NOT_SENT = 0,
|
|
ALERT_STATUS_SENT,
|
|
ALERT_STATUS_FAILED,
|
|
ALERT_STATUS_NEW
|
|
}
|
|
zbx_alert_status_t;
|
|
|
|
/* escalation statuses */
|
|
typedef enum
|
|
{
|
|
ESCALATION_STATUS_ACTIVE = 0,
|
|
ESCALATION_STATUS_RECOVERY, /* only in server code, never in DB, deprecated */
|
|
ESCALATION_STATUS_SLEEP,
|
|
ESCALATION_STATUS_COMPLETED /* only in server code, never in DB */
|
|
}
|
|
zbx_escalation_status_t;
|
|
|
|
/* alert types */
|
|
typedef enum
|
|
{
|
|
ALERT_TYPE_MESSAGE = 0,
|
|
ALERT_TYPE_COMMAND
|
|
}
|
|
zbx_alert_type_t;
|
|
|
|
typedef enum
|
|
{
|
|
ZBX_PROTOTYPE_STATUS_ENABLED,
|
|
ZBX_PROTOTYPE_STATUS_DISABLED,
|
|
ZBX_PROTOTYPE_STATUS_COUNT
|
|
}
|
|
zbx_prototype_status_t;
|
|
|
|
typedef enum
|
|
{
|
|
ZBX_PROTOTYPE_DISCOVER,
|
|
ZBX_PROTOTYPE_NO_DISCOVER,
|
|
ZBX_PROTOTYPE_DISCOVER_COUNT
|
|
}
|
|
zbx_prototype_discover_t;
|
|
|
|
typedef struct ZBX_DB_MEDIATYPE
|
|
{
|
|
zbx_uint64_t mediatypeid;
|
|
zbx_media_type_t type;
|
|
char *smtp_server;
|
|
char *smtp_helo;
|
|
char *smtp_email;
|
|
char *exec_path;
|
|
char *gsm_modem;
|
|
char *username;
|
|
char *passwd;
|
|
char *script;
|
|
char *attempt_interval;
|
|
char *timeout;
|
|
unsigned short smtp_port;
|
|
unsigned char smtp_security;
|
|
unsigned char smtp_verify_peer;
|
|
unsigned char smtp_verify_host;
|
|
unsigned char smtp_authentication;
|
|
unsigned char content_type;
|
|
int maxsessions;
|
|
int maxattempts;
|
|
}
|
|
zbx_db_mediatype;
|
|
|
|
void zbx_db_mediatype_clean(zbx_db_mediatype *mt);
|
|
void zbx_serialize_mediatype(unsigned char **data, zbx_uint32_t *data_alloc, zbx_uint32_t *data_offset,
|
|
const zbx_db_mediatype *mt);
|
|
zbx_uint32_t zbx_deserialize_mediatype(const unsigned char *data, zbx_db_mediatype *mt);
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t alertid;
|
|
zbx_uint64_t actionid;
|
|
int clock;
|
|
zbx_uint64_t mediatypeid;
|
|
char *sendto;
|
|
char *subject;
|
|
char *message;
|
|
zbx_alert_status_t status;
|
|
int retries;
|
|
}
|
|
zbx_db_alert;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t housekeeperid;
|
|
char *tablename;
|
|
char *field;
|
|
zbx_uint64_t value;
|
|
}
|
|
zbx_db_housekeeper;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t httptestid;
|
|
char *name;
|
|
char *agent;
|
|
char *http_user;
|
|
char *http_password;
|
|
char *http_proxy;
|
|
char *ssl_cert_file;
|
|
char *ssl_key_file;
|
|
char *ssl_key_password;
|
|
char *delay;
|
|
int authentication;
|
|
int retries;
|
|
int verify_peer;
|
|
int verify_host;
|
|
}
|
|
zbx_db_httptest;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t httpstepid;
|
|
zbx_uint64_t httptestid;
|
|
char *name;
|
|
char *url;
|
|
char *posts;
|
|
char *required;
|
|
char *status_codes;
|
|
int no;
|
|
int timeout;
|
|
int follow_redirects;
|
|
int retrieve_mode;
|
|
int post_type;
|
|
}
|
|
zbx_db_httpstep;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t escalationid;
|
|
zbx_uint64_t actionid;
|
|
zbx_uint64_t triggerid;
|
|
zbx_uint64_t itemid;
|
|
zbx_uint64_t eventid;
|
|
zbx_uint64_t r_eventid;
|
|
zbx_uint64_t acknowledgeid;
|
|
zbx_uint64_t servicealarmid;
|
|
zbx_uint64_t serviceid;
|
|
int nextcheck;
|
|
int esc_step;
|
|
zbx_escalation_status_t status;
|
|
}
|
|
zbx_db_escalation;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t actionid;
|
|
char *name;
|
|
int esc_period;
|
|
unsigned char eventsource;
|
|
unsigned char pause_suppressed;
|
|
unsigned char pause_symptoms;
|
|
unsigned char recovery;
|
|
unsigned char status;
|
|
unsigned char notify_if_canceled;
|
|
}
|
|
zbx_db_action;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t acknowledgeid;
|
|
zbx_uint64_t userid;
|
|
char *message;
|
|
int clock;
|
|
int action;
|
|
int old_severity;
|
|
int new_severity;
|
|
int suppress_until;
|
|
}
|
|
zbx_db_acknowledge;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t service_alarmid;
|
|
int value;
|
|
int clock;
|
|
}
|
|
zbx_service_alarm_t;
|
|
|
|
zbx_config_dbhigh_t *zbx_config_dbhigh_new(void);
|
|
void zbx_config_dbhigh_free(zbx_config_dbhigh_t *config_dbhigh);
|
|
|
|
void zbx_init_library_dbhigh(const zbx_config_dbhigh_t *config_dbhigh);
|
|
int zbx_db_init(zbx_dc_get_nextid_func_t cb_nextid, int log_slow_queries, char **error);
|
|
void zbx_db_deinit(void);
|
|
|
|
void zbx_db_init_autoincrement_options(void);
|
|
|
|
int zbx_db_connect(int flag);
|
|
void zbx_db_close(void);
|
|
|
|
int zbx_db_validate_config_features(unsigned char program_type, const zbx_config_dbhigh_t *config_dbhigh);
|
|
#if defined(HAVE_MYSQL) || defined(HAVE_POSTGRESQL)
|
|
void zbx_db_validate_config(const zbx_config_dbhigh_t *config_dbhigh);
|
|
#endif
|
|
|
|
#ifdef HAVE_ORACLE
|
|
void zbx_db_statement_prepare(const char *sql);
|
|
void zbx_db_table_prepare(const char *tablename, struct zbx_json *json);
|
|
int zbx_db_check_oracle_colum_type(const char *table_name, const char *column_name, int expected_type);
|
|
#endif
|
|
int zbx_db_execute(const char *fmt, ...) __zbx_attr_format_printf(1, 2);
|
|
int zbx_db_execute_once(const char *fmt, ...) __zbx_attr_format_printf(1, 2);
|
|
zbx_db_result_t zbx_db_select(const char *fmt, ...) __zbx_attr_format_printf(1, 2);
|
|
zbx_db_result_t zbx_db_select_n(const char *query, int n);
|
|
zbx_db_row_t zbx_db_fetch(zbx_db_result_t result);
|
|
int zbx_db_is_null(const char *field);
|
|
void zbx_db_begin(void);
|
|
int zbx_db_commit(void);
|
|
void zbx_db_rollback(void);
|
|
int zbx_db_end(int ret);
|
|
|
|
const zbx_db_table_t *zbx_db_get_table(const char *tablename);
|
|
const zbx_db_field_t *zbx_db_get_field(const zbx_db_table_t *table, const char *fieldname);
|
|
int zbx_db_validate_field_size(const char *tablename, const char *fieldname, const char *str);
|
|
|
|
#define zbx_db_get_maxid(table) zbx_db_get_maxid_num(table, 1)
|
|
zbx_uint64_t zbx_db_get_maxid_num(const char *tablename, int num);
|
|
|
|
void zbx_db_extract_version_info(struct zbx_db_version_info_t *version_info);
|
|
void zbx_db_extract_dbextension_info(struct zbx_db_version_info_t *version_info);
|
|
void zbx_db_flush_version_requirements(const char *version);
|
|
#ifdef HAVE_POSTGRESQL
|
|
int zbx_db_check_tsdb_capabilities(struct zbx_db_version_info_t *db_version_info, int allow_unsupported_ver);
|
|
char *zbx_db_get_schema_esc(void);
|
|
#endif
|
|
|
|
/******************************************************************************
|
|
* *
|
|
* Type: ZBX_GRAPH_ITEMS *
|
|
* *
|
|
* Purpose: represent graph item data *
|
|
* *
|
|
******************************************************************************/
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t itemid; /* itemid should come first for correct sorting */
|
|
zbx_uint64_t gitemid;
|
|
char key[ZBX_ITEM_KEY_LEN * ZBX_MAX_BYTES_IN_UTF8_CHAR + 1];
|
|
int drawtype;
|
|
int sortorder;
|
|
char color[ZBX_GRAPH_ITEM_COLOR_LEN_MAX];
|
|
int yaxisside;
|
|
int calc_fnc;
|
|
int type;
|
|
unsigned char flags;
|
|
}
|
|
zbx_graph_items;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t triggerid;
|
|
unsigned char value;
|
|
unsigned char state;
|
|
unsigned char priority;
|
|
int lastchange;
|
|
int problem_count;
|
|
char *error;
|
|
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_UNSET 0x0000
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_UPDATE_VALUE 0x0001
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_UPDATE_LASTCHANGE 0x0002
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_UPDATE_STATE 0x0004
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_UPDATE_ERROR 0x0008
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_UPDATE \
|
|
(ZBX_FLAGS_TRIGGER_DIFF_UPDATE_VALUE | ZBX_FLAGS_TRIGGER_DIFF_UPDATE_LASTCHANGE | \
|
|
ZBX_FLAGS_TRIGGER_DIFF_UPDATE_STATE | ZBX_FLAGS_TRIGGER_DIFF_UPDATE_ERROR)
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_UPDATE_PROBLEM_COUNT 0x1000
|
|
#define ZBX_FLAGS_TRIGGER_DIFF_RECALCULATE_PROBLEM_COUNT 0x2000
|
|
zbx_uint64_t flags;
|
|
}
|
|
zbx_trigger_diff_t;
|
|
|
|
void zbx_db_save_trigger_changes(const zbx_vector_ptr_t *trigger_diff);
|
|
void zbx_trigger_diff_free(zbx_trigger_diff_t *diff);
|
|
void zbx_append_trigger_diff(zbx_vector_ptr_t *trigger_diff, zbx_uint64_t triggerid, unsigned char priority,
|
|
zbx_uint64_t flags, unsigned char value, unsigned char state, int lastchange, const char *error);
|
|
|
|
char *zbx_db_dyn_escape_field(const char *table_name, const char *field_name, const char *src);
|
|
char *zbx_db_dyn_escape_string(const char *src);
|
|
char *zbx_db_dyn_escape_string_len(const char *src, size_t length);
|
|
char *zbx_db_dyn_escape_like_pattern(const char *src);
|
|
|
|
void zbx_db_add_condition_alloc(char **sql, size_t *sql_alloc, size_t *sql_offset, const char *fieldname,
|
|
const zbx_uint64_t *values, const int num);
|
|
void zbx_db_add_str_condition_alloc(char **sql, size_t *sql_alloc, size_t *sql_offset, const char *fieldname,
|
|
const char * const *values, const int num);
|
|
|
|
int zbx_check_user_permissions(const zbx_uint64_t *userid, const zbx_uint64_t *recipient_userid);
|
|
|
|
const char *zbx_host_string(zbx_uint64_t hostid);
|
|
const char *zbx_host_key_string(zbx_uint64_t itemid);
|
|
const char *zbx_user_string(zbx_uint64_t userid);
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t connectorid;
|
|
int tags_evaltype;
|
|
zbx_vector_match_tags_t connector_tags;
|
|
}
|
|
zbx_connector_filter_t;
|
|
|
|
ZBX_PTR_VECTOR_DECL(connector_filter, zbx_connector_filter_t)
|
|
|
|
/* events callbacks */
|
|
typedef zbx_db_event *(*zbx_add_event_func_t)(unsigned char source, unsigned char object, zbx_uint64_t objectid,
|
|
const zbx_timespec_t *timespec, int value, const char *trigger_description,
|
|
const char *trigger_expression, const char *trigger_recovery_expression, unsigned char trigger_priority,
|
|
unsigned char trigger_type, const zbx_vector_ptr_t *trigger_tags,
|
|
unsigned char trigger_correlation_mode, const char *trigger_correlation_tag,
|
|
unsigned char trigger_value, const char *trigger_opdata, const char *event_name, const char *error);
|
|
|
|
typedef int (*zbx_process_events_func_t)(zbx_vector_ptr_t *trigger_diff, zbx_vector_uint64_t *triggerids_lock);
|
|
typedef void (*zbx_clean_events_func_t)(void);
|
|
typedef void (*zbx_reset_event_recovery_func_t)(void);
|
|
typedef void (*zbx_export_events_func_t)(int events_export_enabled, zbx_vector_connector_filter_t *connector_filters,
|
|
unsigned char **data, size_t *data_alloc, size_t *data_offset);
|
|
typedef void (*zbx_events_update_itservices_func_t)(void);
|
|
|
|
typedef struct
|
|
{
|
|
zbx_add_event_func_t add_event_cb;
|
|
zbx_process_events_func_t process_events_cb;
|
|
zbx_clean_events_func_t clean_events_cb;
|
|
zbx_reset_event_recovery_func_t reset_event_recovery_cb;
|
|
zbx_export_events_func_t export_events_cb;
|
|
zbx_events_update_itservices_func_t events_update_itservices_cb;
|
|
} zbx_events_funcs_t;
|
|
|
|
/* events callbacks end */
|
|
|
|
int zbx_db_get_user_names(zbx_uint64_t userid, char **username, char **name, char **surname);
|
|
|
|
int zbx_db_execute_overflowed_sql(char **sql, size_t *sql_alloc, size_t *sql_offset);
|
|
char *zbx_db_get_unique_hostname_by_sample(const char *host_name_sample, const char *field_name);
|
|
|
|
const char *zbx_db_sql_id_ins(zbx_uint64_t id);
|
|
const char *zbx_db_sql_id_cmp(zbx_uint64_t id);
|
|
|
|
typedef enum
|
|
{
|
|
ZBX_CONN_DEFAULT = 0,
|
|
ZBX_CONN_IP,
|
|
ZBX_CONN_DNS,
|
|
}
|
|
zbx_conn_flags_t;
|
|
|
|
const char *zbx_db_get_inventory_field(unsigned char inventory_link);
|
|
|
|
int zbx_db_table_exists(const char *table_name);
|
|
int zbx_db_field_exists(const char *table_name, const char *field_name);
|
|
#ifndef HAVE_SQLITE3
|
|
int zbx_db_trigger_exists(const char *table_name, const char *trigger_name);
|
|
int zbx_db_index_exists(const char *table_name, const char *index_name);
|
|
int zbx_db_pk_exists(const char *table_name);
|
|
#endif
|
|
|
|
int zbx_db_prepare_multiple_query(const char *query, const char *field_name, zbx_vector_uint64_t *ids, char **sql,
|
|
size_t *sql_alloc, size_t *sql_offset);
|
|
int zbx_db_execute_multiple_query(const char *query, const char *field_name, zbx_vector_uint64_t *ids);
|
|
int zbx_db_lock_record(const char *table, zbx_uint64_t id, const char *add_field, zbx_uint64_t add_id);
|
|
int zbx_db_lock_records(const char *table, const zbx_vector_uint64_t *ids);
|
|
int zbx_db_lock_ids(const char *table_name, const char *field_name, zbx_vector_uint64_t *ids);
|
|
|
|
#define zbx_db_lock_hostid(id) zbx_db_lock_record("hosts", id, NULL, 0)
|
|
#define zbx_db_lock_triggerid(id) zbx_db_lock_record("triggers", id, NULL, 0)
|
|
#define zbx_db_lock_druleid(id) zbx_db_lock_record("drules", id, NULL, 0)
|
|
#define zbx_db_lock_dcheckid(dcheckid, druleid) zbx_db_lock_record("dchecks", dcheckid, "druleid", druleid)
|
|
#define zbx_db_lock_graphid(id) zbx_db_lock_record("graphs", id, NULL, 0)
|
|
#define zbx_db_lock_hostids(ids) zbx_db_lock_records("hosts", ids)
|
|
#define zbx_db_lock_triggerids(ids) zbx_db_lock_records("triggers", ids)
|
|
#define zbx_db_lock_itemids(ids) zbx_db_lock_records("items", ids)
|
|
#define zbx_db_lock_group_prototypeids(ids) zbx_db_lock_records("group_prototype", ids)
|
|
|
|
void zbx_db_select_uint64(const char *sql, zbx_vector_uint64_t *ids);
|
|
|
|
void zbx_db_check_character_set(void);
|
|
|
|
/* bulk insert support */
|
|
|
|
/* database bulk insert data */
|
|
typedef struct
|
|
{
|
|
/* the target table */
|
|
const zbx_db_table_t *table;
|
|
/* the fields to insert (pointers to the zbx_db_field_t structures from database schema) */
|
|
zbx_vector_ptr_t fields;
|
|
/* the values rows to insert (pointers to arrays of zbx_db_value_t structures) */
|
|
zbx_vector_ptr_t rows;
|
|
/* index of autoincrement field */
|
|
int autoincrement;
|
|
/* the last id assigned by autoincrement */
|
|
zbx_uint64_t lastid;
|
|
}
|
|
zbx_db_insert_t;
|
|
|
|
void zbx_db_insert_prepare_dyn(zbx_db_insert_t *self, const zbx_db_table_t *table, const zbx_db_field_t **fields,
|
|
int fields_num);
|
|
void zbx_db_insert_prepare(zbx_db_insert_t *self, const char *table, ...);
|
|
void zbx_db_insert_add_values_dyn(zbx_db_insert_t *self, zbx_db_value_t **values, int values_num);
|
|
void zbx_db_insert_add_values(zbx_db_insert_t *self, ...);
|
|
int zbx_db_insert_execute(zbx_db_insert_t *self);
|
|
void zbx_db_insert_clean(zbx_db_insert_t *self);
|
|
void zbx_db_insert_autoincrement(zbx_db_insert_t *self, const char *field_name);
|
|
zbx_uint64_t zbx_db_insert_get_lastid(zbx_db_insert_t *self);
|
|
|
|
int zbx_db_get_database_type(void);
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t eventid;
|
|
int clock;
|
|
int ns;
|
|
int value;
|
|
int severity;
|
|
|
|
zbx_vector_ptr_t tags;
|
|
}
|
|
zbx_event_t;
|
|
|
|
int zbx_db_get_user_by_active_session(const char *sessionid, zbx_user_t *user);
|
|
int zbx_db_get_user_by_auth_token(const char *formatted_auth_token_hash, zbx_user_t *user);
|
|
void zbx_user_init(zbx_user_t *user);
|
|
void zbx_user_free(zbx_user_t *user);
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t itemid;
|
|
zbx_uint64_t lastlogsize;
|
|
unsigned char state;
|
|
int mtime;
|
|
const char *error;
|
|
|
|
zbx_uint64_t flags;
|
|
#define ZBX_FLAGS_ITEM_DIFF_UNSET __UINT64_C(0x0000)
|
|
#define ZBX_FLAGS_ITEM_DIFF_UPDATE_STATE __UINT64_C(0x0001)
|
|
#define ZBX_FLAGS_ITEM_DIFF_UPDATE_ERROR __UINT64_C(0x0002)
|
|
#define ZBX_FLAGS_ITEM_DIFF_UPDATE_MTIME __UINT64_C(0x0004)
|
|
#define ZBX_FLAGS_ITEM_DIFF_UPDATE_LASTLOGSIZE __UINT64_C(0x0008)
|
|
#define ZBX_FLAGS_ITEM_DIFF_UPDATE_DB \
|
|
(ZBX_FLAGS_ITEM_DIFF_UPDATE_STATE | ZBX_FLAGS_ITEM_DIFF_UPDATE_ERROR |\
|
|
ZBX_FLAGS_ITEM_DIFF_UPDATE_MTIME | ZBX_FLAGS_ITEM_DIFF_UPDATE_LASTLOGSIZE)
|
|
}
|
|
zbx_item_diff_t;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t hostid;
|
|
unsigned char compress;
|
|
char *version_str;
|
|
int version_int;
|
|
zbx_proxy_compatibility_t compatibility;
|
|
time_t lastaccess;
|
|
time_t last_version_error_time;
|
|
int proxy_delay;
|
|
int more_data;
|
|
zbx_proxy_suppress_t nodata_win;
|
|
|
|
#define ZBX_FLAGS_PROXY_DIFF_UNSET __UINT64_C(0x0000)
|
|
#define ZBX_FLAGS_PROXY_DIFF_UPDATE_VERSION __UINT64_C(0x0002)
|
|
#define ZBX_FLAGS_PROXY_DIFF_UPDATE_LASTACCESS __UINT64_C(0x0004)
|
|
#define ZBX_FLAGS_PROXY_DIFF_UPDATE_LASTERROR __UINT64_C(0x0008)
|
|
#define ZBX_FLAGS_PROXY_DIFF_UPDATE_PROXYDELAY __UINT64_C(0x0010)
|
|
#define ZBX_FLAGS_PROXY_DIFF_UPDATE_SUPPRESS_WIN __UINT64_C(0x0020)
|
|
#define ZBX_FLAGS_PROXY_DIFF_UPDATE_CONFIG __UINT64_C(0x0080)
|
|
#define ZBX_FLAGS_PROXY_DIFF_UPDATE ( \
|
|
ZBX_FLAGS_PROXY_DIFF_UPDATE_VERSION | \
|
|
ZBX_FLAGS_PROXY_DIFF_UPDATE_LASTACCESS)
|
|
zbx_uint64_t flags;
|
|
}
|
|
zbx_proxy_diff_t;
|
|
|
|
int zbx_db_lock_maintenanceids(zbx_vector_uint64_t *maintenanceids);
|
|
|
|
void zbx_db_save_item_changes(char **sql, size_t *sql_alloc, size_t *sql_offset, const zbx_vector_ptr_t *item_diff,
|
|
zbx_uint64_t mask);
|
|
|
|
int zbx_db_check_instanceid(void);
|
|
|
|
/* tags */
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t tagid;
|
|
char *tag_orig;
|
|
char *tag;
|
|
char *value_orig;
|
|
char *value;
|
|
int automatic;
|
|
int automatic_orig;
|
|
#define ZBX_FLAG_DB_TAG_UNSET __UINT64_C(0x00000000)
|
|
#define ZBX_FLAG_DB_TAG_UPDATE_AUTOMATIC __UINT64_C(0x00000001)
|
|
#define ZBX_FLAG_DB_TAG_UPDATE_VALUE __UINT64_C(0x00000002)
|
|
#define ZBX_FLAG_DB_TAG_UPDATE_TAG __UINT64_C(0x00000004)
|
|
#define ZBX_FLAG_DB_TAG_REMOVE __UINT64_C(0x80000000)
|
|
#define ZBX_FLAG_DB_TAG_UPDATE (ZBX_FLAG_DB_TAG_UPDATE_TAG | ZBX_FLAG_DB_TAG_UPDATE_VALUE| \
|
|
ZBX_FLAG_DB_TAG_UPDATE_AUTOMATIC)
|
|
zbx_uint64_t flags;
|
|
}
|
|
zbx_db_tag_t;
|
|
|
|
ZBX_PTR_VECTOR_DECL(db_tag_ptr, zbx_db_tag_t *)
|
|
|
|
#define ZBX_DB_TAG_NORMAL 0
|
|
#define ZBX_DB_TAG_AUTOMATIC 1
|
|
|
|
zbx_db_tag_t *zbx_db_tag_create(const char *tag_tag, const char *tag_value);
|
|
void zbx_db_tag_free(zbx_db_tag_t *tag);
|
|
|
|
typedef struct _zbx_item_param_t zbx_item_param_t;
|
|
struct _zbx_item_param_t
|
|
{
|
|
zbx_uint64_t item_parameterid;
|
|
#define ZBX_FLAG_ITEM_PARAM_UPDATE_RESET __UINT64_C(0x000000000000)
|
|
#define ZBX_FLAG_ITEM_PARAM_UPDATE_NAME __UINT64_C(0x000000000001)
|
|
#define ZBX_FLAG_ITEM_PARAM_UPDATE_VALUE __UINT64_C(0x000000000002)
|
|
#define ZBX_FLAG_ITEM_PARAM_UPDATE \
|
|
(ZBX_FLAG_ITEM_PARAM_UPDATE_NAME | \
|
|
ZBX_FLAG_ITEM_PARAM_UPDATE_VALUE \
|
|
)
|
|
|
|
#define ZBX_FLAG_ITEM_PARAM_DELETE __UINT64_C(0x000000010000)
|
|
|
|
zbx_uint64_t flags;
|
|
char *name_orig;
|
|
char *name;
|
|
char *value_orig;
|
|
char *value;
|
|
};
|
|
|
|
ZBX_PTR_VECTOR_DECL(item_param_ptr, zbx_item_param_t *)
|
|
|
|
zbx_item_param_t *zbx_item_param_create(const char *item_param_name,
|
|
const char *item_param_value);
|
|
void zbx_item_param_free(zbx_item_param_t *param);
|
|
|
|
|
|
int zbx_merge_tags(zbx_vector_db_tag_ptr_t *dst, zbx_vector_db_tag_ptr_t *src, const char *owner, char **error);
|
|
int zbx_merge_item_params(zbx_vector_item_param_ptr_t *dst, zbx_vector_item_param_ptr_t *src, char **error);
|
|
void zbx_add_tags(zbx_vector_db_tag_ptr_t *hosttags, zbx_vector_db_tag_ptr_t *addtags);
|
|
void zbx_del_tags(zbx_vector_db_tag_ptr_t *hosttags, zbx_vector_db_tag_ptr_t *deltags);
|
|
|
|
typedef enum
|
|
{
|
|
ZBX_LLD_OVERRIDE_OP_OBJECT_ITEM = 0,
|
|
ZBX_LLD_OVERRIDE_OP_OBJECT_TRIGGER,
|
|
ZBX_LLD_OVERRIDE_OP_OBJECT_GRAPH,
|
|
ZBX_LLD_OVERRIDE_OP_OBJECT_HOST
|
|
}
|
|
zbx_lld_override_op_object_t;
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t override_operationid;
|
|
zbx_uint64_t overrideid;
|
|
char *value;
|
|
char *delay;
|
|
char *history;
|
|
char *trends;
|
|
zbx_vector_db_tag_ptr_t tags;
|
|
zbx_vector_uint64_t templateids;
|
|
unsigned char operationtype;
|
|
unsigned char operator;
|
|
unsigned char status;
|
|
unsigned char severity;
|
|
signed char inventory_mode;
|
|
unsigned char discover;
|
|
}
|
|
zbx_lld_override_operation_t;
|
|
|
|
ZBX_PTR_VECTOR_DECL(lld_override_operation, zbx_lld_override_operation_t*)
|
|
|
|
void zbx_lld_override_operation_free(zbx_lld_override_operation_t *override_operation);
|
|
|
|
void zbx_load_lld_override_operations(const zbx_vector_uint64_t *overrideids, char **sql, size_t *sql_alloc,
|
|
zbx_vector_lld_override_operation_t *ops);
|
|
|
|
#define ZBX_TIMEZONE_DEFAULT_VALUE "default"
|
|
|
|
int zbx_db_check_version_info(struct zbx_db_version_info_t *info, int allow_unsupported,
|
|
unsigned char program_type);
|
|
void zbx_db_version_info_clear(struct zbx_db_version_info_t *version_info);
|
|
|
|
#define ZBX_MAX_HRECORDS 1000
|
|
#define ZBX_MAX_HRECORDS_TOTAL 10000
|
|
|
|
#define ZBX_PROXY_DATA_DONE 0
|
|
#define ZBX_PROXY_DATA_MORE 1
|
|
|
|
void zbx_calc_timestamp(const char *line, int *timestamp, const char *format);
|
|
|
|
char *zbx_get_proxy_protocol_version_str(const struct zbx_json_parse *jp);
|
|
int zbx_get_proxy_protocol_version_int(const char *version_str);
|
|
|
|
/* condition evaluation types */
|
|
#define ZBX_CONDITION_EVAL_TYPE_AND_OR 0
|
|
#define ZBX_CONDITION_EVAL_TYPE_AND 1
|
|
#define ZBX_CONDITION_EVAL_TYPE_OR 2
|
|
#define ZBX_CONDITION_EVAL_TYPE_EXPRESSION 3
|
|
|
|
/* condition types */
|
|
#define ZBX_CONDITION_TYPE_HOST_GROUP 0
|
|
#define ZBX_CONDITION_TYPE_HOST 1
|
|
#define ZBX_CONDITION_TYPE_TRIGGER 2
|
|
#define ZBX_CONDITION_TYPE_TRIGGER_NAME 3
|
|
#define ZBX_CONDITION_TYPE_TRIGGER_SEVERITY 4
|
|
/* #define ZBX_CONDITION_TYPE_TRIGGER_VALUE 5 deprecated */
|
|
#define ZBX_CONDITION_TYPE_TIME_PERIOD 6
|
|
#define ZBX_CONDITION_TYPE_DHOST_IP 7
|
|
#define ZBX_CONDITION_TYPE_DSERVICE_TYPE 8
|
|
#define ZBX_CONDITION_TYPE_DSERVICE_PORT 9
|
|
#define ZBX_CONDITION_TYPE_DSTATUS 10
|
|
#define ZBX_CONDITION_TYPE_DUPTIME 11
|
|
#define ZBX_CONDITION_TYPE_DVALUE 12
|
|
#define ZBX_CONDITION_TYPE_HOST_TEMPLATE 13
|
|
#define ZBX_CONDITION_TYPE_EVENT_ACKNOWLEDGED 14
|
|
/* #define ZBX_CONDITION_TYPE_APPLICATION 15 deprecated */
|
|
#define ZBX_CONDITION_TYPE_SUPPRESSED 16
|
|
#define ZBX_CONDITION_TYPE_DRULE 18
|
|
#define ZBX_CONDITION_TYPE_DCHECK 19
|
|
#define ZBX_CONDITION_TYPE_PROXY 20
|
|
#define ZBX_CONDITION_TYPE_DOBJECT 21
|
|
#define ZBX_CONDITION_TYPE_HOST_NAME 22
|
|
#define ZBX_CONDITION_TYPE_EVENT_TYPE 23
|
|
#define ZBX_CONDITION_TYPE_HOST_METADATA 24
|
|
#define ZBX_CONDITION_TYPE_EVENT_TAG 25
|
|
#define ZBX_CONDITION_TYPE_EVENT_TAG_VALUE 26
|
|
#define ZBX_CONDITION_TYPE_SERVICE 27
|
|
#define ZBX_CONDITION_TYPE_SERVICE_NAME 28
|
|
|
|
typedef struct
|
|
{
|
|
zbx_uint64_t autoreg_hostid;
|
|
zbx_uint64_t hostid;
|
|
char *host;
|
|
char *ip;
|
|
char *dns;
|
|
char *host_metadata;
|
|
int now;
|
|
unsigned short port;
|
|
unsigned short flag;
|
|
unsigned int connection_type;
|
|
}
|
|
zbx_autoreg_host_t;
|
|
|
|
#define PROXY_OPERATING_MODE_ACTIVE 0
|
|
#define PROXY_OPERATING_MODE_PASSIVE 1
|
|
|
|
#endif
|