1 结构体指针,主机的一些综合参数
//dbcache.h
typedef struct
{
DC_HOST host;
DC_INTERFACE interface;
zbx_uint64_t itemid;
zbx_uint64_t lastlogsize;
zbx_uint64_t valuemapid;
unsigned char type;
unsigned char value_type;
unsigned char state;
unsigned char snmpv3_securitylevel;
unsigned char authtype;
unsigned char flags;
unsigned char snmpv3_authprotocol;
unsigned char snmpv3_privprotocol;
unsigned char inventory_link;
unsigned char status;
unsigned char history;
unsigned char trends;
unsigned char follow_redirects;
unsigned char post_type;
unsigned char retrieve_mode;
unsigned char request_method;
unsigned char output_format;
unsigned char verify_peer;
unsigned char verify_host;
unsigned char allow_traps;
char key_orig[ITEM_KEY_LEN * ZBX_MAX_BYTES_IN_UTF8_CHAR + 1], *key;
char *units;
char *delay;
int history_sec;
int nextcheck;
int lastclock;
int mtime;
char trapper_hosts[ITEM_TRAPPER_HOSTS_LEN_MAX];
char logtimefmt[ITEM_LOGTIMEFMT_LEN_MAX];
char snmp_community_orig[ITEM_SNMP_COMMUNITY_LEN_MAX], *snmp_community;
char snmp_oid_orig[ITEM_SNMP_OID_LEN_MAX], *snmp_oid;
char snmpv3_securityname_orig[ITEM_SNMPV3_SECURITYNAME_LEN_MAX], *snmpv3_securityname;
char snmpv3_authpassphrase_orig[ITEM_SNMPV3_AUTHPASSPHRASE_LEN_MAX], *snmpv3_authpassphrase;
char snmpv3_privpassphrase_orig[ITEM_SNMPV3_PRIVPASSPHRASE_LEN_MAX], *snmpv3_privpassphrase;
char ipmi_sensor[ITEM_IPMI_SENSOR_LEN_MAX];
char *params;
char username_orig[ITEM_USERNAME_LEN_MAX], *username;
char publickey_orig[ITEM_PUBLICKEY_LEN_MAX], *publickey;
char privatekey_orig[ITEM_PRIVATEKEY_LEN_MAX], *privatekey;
char password_orig[ITEM_PASSWORD_LEN_MAX], *password;
char snmpv3_contextname_orig[ITEM_SNMPV3_CONTEXTNAME_LEN_MAX], *snmpv3_contextname;
char jmx_endpoint_orig[ITEM_JMX_ENDPOINT_LEN_MAX], *jmx_endpoint;
char timeout_orig[ITEM_TIMEOUT_LEN_MAX], *timeout;
char url_orig[ITEM_URL_LEN_MAX], *url;
char query_fields_orig[ITEM_QUERY_FIELDS_LEN_MAX], *query_fields;
char *posts;
char status_codes_orig[ITEM_STATUS_CODES_LEN_MAX], *status_codes;
char http_proxy_orig[ITEM_HTTP_PROXY_LEN_MAX], *http_proxy;
char *headers;
char ssl_cert_file_orig[ITEM_SSL_CERT_FILE_LEN_MAX], *ssl_cert_file;
char ssl_key_file_orig[ITEM_SSL_KEY_FILE_LEN_MAX], *ssl_key_file;
char ssl_key_password_orig[ITEM_SSL_KEY_PASSWORD_LEN_MAX], *ssl_key_password;
char *error;
}
DC_ITEM;
2 结构体指针
//common.h
typedef struct
{
int sec; /* seconds */
int ns; /* nanoseconds */
}
zbx_timespec_t;
3 错误信息
//db.h
typedef struct
{
/* flags specifying which fields are set, see ZBX_FLAGS_AGENT_STATUS_* defines */
unsigned char flags;
/* agent availability fields */
unsigned char available;
char *error;
int errors_from;
int disable_until;
}
zbx_agent_availability_t;
typedef struct
{
zbx_uint64_t hostid;
zbx_agent_availability_t agents[ZBX_AGENT_MAX]; //这里的ZBX_AGENT_MAX 为4 ,分别代表ZABBIX, SNMP, IPMI, JMX4种类型
}
zbx_host_availability_t;
#2 声明unsigned char agent_type,unsigned char和char的区别是char表示-128-127,unsigned char 表示0-255,这里的255会在后面遇到,所以需要255的这个表示范围
#3 记录DEBUG 的log,如果需要显示这份日志,需要将server端的配置文件debug等级更改为5,不过我不建议你这么做
#4 初始化主机IN可