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动态链接库提供以下功能:

  1. int zabbix_sender_send_values(const char address, unsigned short port,
  2. const char source, const zabbix_sender_value_t values, int count,
  3. 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()函数解析的服务器响应。 如果出现错误,则错误消息将存储到结果中。
  1. int zabbix_sender_parse_result(const char result, int response,
  2. 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。
  1. void zabbix_sender_free_result(void *result);
描述
zabbix_sender_send_values() 函数用于释放分配的数据。
参数
result - zabbix_sender_send_values()函数返回的结果。

Zabbix sender 动态链接库使用以下数据结构:

  1. typedef struct
  2. {
  3. /* 主机名,必须与Zabbix中目标主机的名称匹配 */
  4. char *host;
  5. /* item key */
  6. char *key;
  7. /* item value */
  8. char *value;
  9. }
  10. zabbix_sender_value_t;
  11. typedef struct
  12. {
  13. /* 处理数值的总数量 */
  14. int total;
  15. /* 失败值的数量 */
  16. int failed;
  17. /* server处理发送值花的时间(以秒为单位) */
  18. double time_spent;
  19. }
  20. zabbix_sender_info_t;