Zabbix sender jest narzędziem linii poleceń, które można użyć do wysyłania danych o wydajności, do przetworzenia w serwerze Zabbix.
Narzędzie to jest zwykle używane w długo działających skryptach użytkownika, do okresowego wysyłania danych dostępności i wydajności.
Przykład wysyłania jednej wartości do serwera Zabbix z użyciem Zabbix sender:
gdzie:
Jeżeli obiekty mają spacje, to należy je otoczyć podwójnymi cudzysłowami.
Proces przechwytywania Zabbix nie rozwinie makr uzytych w kluczach pozycji podczas sprawdzania istnienia kluczy pozycji dla docelowego hosta.
Więcej informacji można zobaczyć w podręczniku man Zabbix sender.
Na Windows Zabbix sender uruchamia się podobnie:
Od wersji Zabbix 1.8.4, poprawiono scenariusze wysyłania zabbix_sender tak, by przekazane do niego w podobnym czasie wartości wysyłać do serwera w trakcie jednego połączenia. Wartość, która jest oddalona od poprzedniej nie więcej niż o 0.2 sekundy może być umieszczona w tym samym zbiorze, jednakże maksymalny okres kolejkowania wynosi nadal 1 sekundę.
Możliwe jest określenie pliku wejściowego zawierającego wartości do wysłania do serwera Zabbix. Prawidłowy format pliku można zobaczyć w opcji --input-file w podręczniku man Zabbix sender.
Jeżeli nie ma potrzeby określania znaczników czasu dla każdej wartości, to zawartość pliku wejściowego może wyglądać tak:
"Linux DB1" db.ping 1
"Linux DB3" db.ping 0
"Zabbix server" db.status 0
"Zabbix server" db.error "Linux DB3 down"
Możliwe jest określenie znaczników czasu dla każdej wartości do wysłania. W tym przypadku należy użyć opcji --with-timestamps. Poniżej przykładowa zawartość pliku wejściowego ze znacznikami czasu:
"Linux DB1" db.ping 1429533600 1
"Linux DB3" db.ping 1429533602 0
"Zabbix server" db.status 1429533603 0
"Zabbix server" db.error 1429533603 "Linux DB3 down"
Jeżeli docelowa pozycja jest powiązana z wyzwalaczami, wszystkie znaczniki czasu w pliku wejściowym muszą być posortowane rosnąco, w przeciwnym razie obliczenia zdarzeń mogą być niewłaściwe.
Znaczniki określone w pliku wejściowym zostaną skorygowane z uwzględnieniem czasu serwera. Na przykład, jeżeli określono znacznik "10:30:50", bieżący czas na maszynie wysyłającej to "10:40:03", a bieżący czas na serwerze Zabbix to "10:40:05", wtedy wartości pozycji zostaną zapisane w bazie danych ze znacznikiem czasu "10:30:52".
Podobnie, jeżeli wartość najpierw zostanie wysłana do proxy Zabbix, a następnie do serwera Zabbix, znacznik czasu najpierw zostanie dopasowany do czasu proxy Zabbix, a następnie do czasu serwera Zabbix.
Podręcznik man Zabbix sender w sekcji --input-file zawiera reguły dotyczące poprawnego formatowania wpisów w pliku wejściowym. Poniżej przykłady zapisanych w bazie danych wartości dla różnych metod zapisu cudzysłowów:
wartość w pliku wejściowym | wynik w bazie danych | komunikat błędu na ekranie |
failed | failed | |
"status: failed" | status: failed | |
"status: \"failed\"" | status: "failed" | |
"C:\\" | C: |
|
C: |
C: |
|
"C:\" | Warning: [line 1] 'Key value' required | |
"C:\My Documents" | C:\My Documents | |
status:\nfailed | status:\nfailed | |
"status:\tfailed" | status:\tfailed | |
"status:\nfailed" | status: failed |
|
"status:\nfailed\n" | status: failed |
|
"\nstatus:\nfailed" | status: failed |
|
"\n\n" |
Poniżej przykład dla wysyłania 300 wartości z pliku wejściowego:
# zabbix_sender -z 127.0.0.1 -i /tmp/trapper.txt
Info from server: "Processed 250 Failed 0 Total 250 Seconds spent 0.002668"
Info from server: "Processed 50 Failed 0 Total 50 Seconds spent 0.000540"
sent: 300; skipped: 0; total: 300
Zabbix sender skończy pracę jeżeli w określonym pliku konfiguracyjnym obecny jest nieprawidłowy parametr (niezgodny ze składnią parametr=wartość).