Приложения в среде Windows могут использовать динамическую библиотеку Zabbix sender (zabbix_sender.dll)для отправки данных напрямую Zabbix серверу/прокси, вместо выполнения внешнего процесса (zabbix_sender.exe).
Динамическая библиотека вместе с файлами для разработки находятся в папке bin\winXX\dev. Чтобы ею воспользоваться, включите заголовочный файл zabbix_sender.h и свяжите с библиотекой zabbix_sender.lib. Пример использования Zabbix sender API можно найти в папке build\win32\examples\zabbix_sender.
Динамической библиотекой 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); | ||
---|---|---|
Описание | ||
Отправка структуры массива значений серверу/прокси. Стуктура значений состоит из имени узла сети, ключа элемента данных и значения элемента данных. | ||
Параметры | ||
address - [in] адрес zabbix сервера/прокси port - [in] порт траппера zabbix сервера/прокси source - [in] исходный IP (опционально) values - [in] отправляемый массив значений count - [in] количество элементов данных в массиве значений result - [out] ответ сервера или сообщение об ошибке (опционально) | ||
Возвращаемое значение | ||
0 - операция завершилась успешно -1 - операция неудачна | ||
Комментарии | ||
Если переменная результата указана, функция выделяет необходимый объем памяти для хранения ответа/сообщения об ошибке. Этот объем памяти всегда должен быть освобожден при помощью функции zabbix_sender_free_result(). Если оправка совершена успешно, result содержит ответ сервера, который можно обработать при помощи функции zabbix_sender_parse_result(). В случае ошибки, будет об ошибке записано в 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 структуры info записывается значение равное -1 . | ||
void zabbix_sender_free_result(void *result); | ||
Описание | ||
Освобождение памяти от данных записанных функцией zabbix_sender_send_values(). | ||
Параметры | ||
result - результат полученный функцией zabbix_sender_send_values(). |
Динамической библиотекой Zabbix sender используются следующие структуры данных:
typedef struct { /* host name, must match the name of target host in Zabbix (имя узла сети, должно совпадать с целевым именем узла сети в 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;