Zabbix Documentation 3.0

3.04.04.24.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.4Guidelines

User Tools

Site Tools


Sidebar

ru:manual:appendix:zabbix_sender_dll

14 Динамическая библиотека Zabbix для Windows

Приложения в среде 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;