Sidebar

pl:manual:appendix:zabbix_sender_dll

13 Zabbix sender - biblioteka łączona dynamicznie dla Windows

W środowisku Windows, aplikacje zamiast uruchamiania zewnętrznego procesu (zabbix_sender.exe) mogą wysyłać dane bezpośrednio do serwera/proxy Zabbix, używając biblioteki łączonej dynamicznie sendera Zabbix (zabbix_sender.dll).

Biblioteka łączona dynamicznie wraz z wymaganymi plikami umieszczona jest w katalogach bin\winXX\dev. Żeby jej użyć, należy dołączyć plik nagłówkowy zabbix_sender.h i połączyć z biblioteką zabbix_sender.lib. Przykładowe pliki używające API sendera Zabbix można znaleźć w katalogu build\win32\examples\zabbix_sender.

Biblioteka łączona dynamicznie sendera Zabbix udostępnia następujące funkcjonalności:

int zabbix_sender_send_values(const char *address, unsigned short port,
        const char *source, const zabbix_sender_value_t *values, int count,
        char **result);
Opis
Wysyła tablicę struktury wartości do proxy/serwera. Struktura wartości zawiera nazwę hosta, klucz pozycji i wartość pozycji.
Parametry
address - [wejście] adres serwera/proxy
port - [wejście] port procesu przechwytywania serwera/proxy
source - [wejście] IP źródła (opcjonalne)
values - [wejście] tablica wartości do wysłania
count - [wejście] liczba pozycji w tablicy wartości
result - [wyjście] odpowiedź serwera lub komunikat błędu (opcjonalnie)
Wartość zwracana
0 - operacja zakończona sukcesem
-1 - operacja nieudana
Komentarze
Jeżeli określono zmienną wynikową, funkcja alokuje pamięć niezbędną do przechowania komunikatu odpowiedzi/błędu. Musi być ona później zwolniona przy pomocy funkcji zabbix_sender_free_result().
Jeżeli operacja zakończyła się powodzeniem rezultat zawiera odpowiedź serwera, którą można sparsować funkcją zabbix_sender_parse_result(). W przypadku błędów, zamiast tego, otrzymamy w wyniku komunikat błędu.
int zabbix_sender_parse_result(const char *result, int *response,
        zabbix_sender_info_t *info);
Opis
Parsuje rezultat zwrócony przez funkcję zabbix_sender_send_values().
Parametry
result - [wejście] rezultat zwrócony przez funkcję zabbix_sender_send_values().
response - [wyjście] odpowiedź operacji: 0 - sukces, -1 porażka.
info - [wyjście] szczegółowe informacje na temat operacji, opcjonalne.
Wartość zwracana
0 - operacja zakończona sukcesem
-1 - operacja nieudana
Komentarze
Jeżeli określono parametr info, ale funkcji nie udało się sparsować pola info wyniku, wtedy pole total struktury info jest ustawiane na -1.
void zabbix_sender_free_result(void *result);
Opis
Zwalnia dane zaalokowane przez funkcję zabbix_sender_send_values().
Parametry
result - rezultat zwracany przez funkcję zabbix_sender_send_values().

Biblioteka łączona dynamicznie sendera Zabbix używa następujących struktur danych:

typedef struct
{
	/* nazwa hosta, musi być zgodna z nazwą hosta docelowego w Zabbix */
	char	*host;
	/* klucz pozycji */
	char	*key;
	/* wartość pozycji */
	char	*value;
}
zabbix_sender_value_t;
 
typedef struct
{
	/* liczba wszystkich przetworzonych wartości */
	int	total;
	/* liczba wartości błędnych */
	int	failed;
	/* czas w sekundach spędzony przez serwer na przetwarzaniu wysłanych wartości */
	double	time_spent;
}
zabbix_sender_info_t;