在Windows环境中,应用程序可以使用Zabbix sender动态链接库(zabbix_sender.dll)直接将数据发送到Zabbix server/proxy,而不必启动外部进程(zabbix_sender.exe)。
带有开发文件的动态链接库位于 bin\winXX\dev 文件夹中。 要使用它,请包含zabbix_sender.h头文件并链接到zabbix_sender.lib库。可以在build \ win32 \ examples \ zabbix_sender文件夹中找到具有Zabbix发送器API用法的示例文件。 要使用它,请包含zabbix_sender.h头文件并链接到zabbix_sender.lib库。可以在build \ win32 \ examples \ zabbix_sender文件夹中找到具有Zabbix发送器API用法的示例文件。
Zabbix sender动态链接库提供以下功能:
int zabbix_sender_send_values(const char *address, unsigned short port, const char *source, const zabbix_sender_value_t *values, int count, char **result); | ||
---|---|---|
描述 | ||
将一组结构数据送到proxy/server。这组结构包含host name, item key 和 item value。 | ||
参数 | ||
address - [in] proxy/server的地址 port - [in] server/proxy上的采集器端口 source - [in] 源IP (可选的) values - [in] 要发送的值数组 count - [in] 数组中的监控项数量 result - [out] 服务器响应或错误消息 (可选的) | ||
返回值 | ||
0 - 操作成功完成 -1 - 操作失败 | ||
备注 | ||
如果指定了结果变量,则此函数会分配必要的内存来存储server的响应/错误消息。之后必须使用zabbix_sender_free_result()函数释放它。 如果操作成功,则结果可以使用zabbix_sender_parse_result()函数解析的服务器响应。 如果出现错误,则错误消息将存储到结果中。 | ||
int zabbix_sender_parse_result(const char *result, int *response, zabbix_sender_info_t *info); | ||
描述 | ||
解析从zabbix_sender_send_values()函数返回的结果。 | ||
参数 | ||
result - [in] zabbix_sender_send_values()函数返回的结果。 response - [out] 操作响应:0 - 成功, -1失败。 info - [out] 有关操作的详细信息,可选。 | ||
返回值 | ||
0 - 操作成功完成 -1 - 操作失败 | ||
备注 | ||
如果指定了info参数,但函数无法解析结果信息字段,则info结构字段total设置为-1。 | ||
void zabbix_sender_free_result(void *result); | ||
描述 | ||
zabbix_sender_send_values() 函数用于释放分配的数据。 | ||
参数 | ||
result - zabbix_sender_send_values()函数返回的结果。 |
Zabbix sender 动态链接库使用以下数据结构:
typedef struct { /* 主机名,必须与Zabbix中目标主机的名称匹配 */ char *host; /* item key */ char *key; /* item value */ char *value; } zabbix_sender_value_t; typedef struct { /* 处理数值的总数量 */ int total; /* 失败值的数量 */ int failed; /* server处理发送值花的时间(以秒为单位) */ double time_spent; } zabbix_sender_info_t;