Zabbix Documentation 4.0

2.23.04.04.2 (current)In development:4.4 (devel)Unsupported:1.82.02.43.23.4

User Tools

Site Tools

This translation is older than the original page and might be outdated. See what has changed.

Sidebar

zh:manual:appendix:zabbix_sender_dll

15 适用于Windows的Zabbix sender 动态链接库

在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;