Em um ambiente Windows as aplicações podem enviar dados diretamente ao Zabbix server/proxy usando a biblioteca dinâmica do Zabbix Sender (zabbix_sender.dll) ao invés de iniciar um processo externo (zabbix_sender.exe).
Ela está localizada dentro de bin\winXX\dev
. Para usa-la, inclua o zabbix_sender.h
e linque com a biblioteca zabbix_sender.lib
. Um exemplo de como a API pode ser utilizada está disponível em build\win32\examples\zabbix_sender.
As seguintes funcionalidaes são providas por ela:
int zabbix_sender_send_values(const char *address, unsigned short port, const char *source, const zabbix_sender_value_t *values, int count, char **result); | ||
---|---|---|
Descrição | ||
Envia um array de valores para o proxy/server. A estrutura contêm o 'host name', chave e valor do item. | ||
Parâmetros | ||
address - [in] o endereço do server/proxy port - [in] a porta para monitoração ativa no server/proxy source - [in] o IP de origem (opcional) values - [in] um array com os valores a serem enviados count - [in] quantidade de itens no arary result - [out] o servidor responderá com uma mensagem de status ou de erro (optional) | ||
Valor de retorno | ||
0 - operação concluída com sucesso -1 - operação falhou | ||
Comentários | ||
Se a variável de retorno for definida esta função irá alocar a memória necessária para armazenar a resposta do servidor. Isso sempre será liberado com a função 'zabbix_sender_free_result()'. Se uma operação tiver sucesso o resultado da resposta do servior pode ser tratada pela função 'zabbix_sender_parse_result()'. Em caso de erro a mensagem de erro será armazenada no lugar. | ||
int zabbix_sender_parse_result(const char *result, int *response, zabbix_sender_info_t *info); | ||
Descrição | ||
Trata o resultado retornado pela função 'zabbix_sender_send_values()'. | ||
Parâmetros | ||
result - [in] o resultado retornado pela função 'zabbix_sender_send_values()'. response - [out] a resposta da operação: 0 - sucesso, -1 falha. info - [out] informações detalhadas sobre a operação, opcional. | ||
Valor de retorno | ||
0 - operação concluída com sucesso -1 - operação falhou | ||
Comentários | ||
Se o parâmetro de informação for definido, mas a função falhar para tratar o resultado do campo info , então a estrutura será definida para -1. | ||
void zabbix_sender_free_result(void *result); | ||
Descrição | ||
Libera dados alocados pela função 'zabbix_sender_send_values()'. | ||
Parâmetros | ||
result - o resultado retornado pela função 'zabbix_sender_send_values()'. |
As seguintes estruturas de dados são utilizadas pela biblioteca dinâmica do Zabbix sender:
typedef struct { /* host name, must match the name of target host in Zabbix */ char *host; /* the item key */ char *key; /* the item value */ char *value; } zabbix_sender_value_t; typedef struct { /* number of total values processed */ int total; /* number of failed values */ int failed; /* time in seconds the server spent processing the sent values */ double time_spent; } zabbix_sender_info_t;