Eksport do plików

Przegląd

Możliwe jest skonfigurowanie eksportu w czasie rzeczywistym zdarzeń wyzwalaczy, wartości pozycji i trendów w formacie JSON rozdzielanym znakami nowej linii.

Eksport jest wykonywany do plików, gdzie każda linia pliku eksportu jest obiektem JSON. Mapowania wartości nie są stosowane.

W przypadku błędów (danych nie można zapisać do pliku eksportu albo pliku eksportu nie można zmienić nazwy lub nie można utworzyć nowego po zmianie nazwy), element danych jest odrzucany i nigdy nie jest zapisywany do pliku eksportu. Jest zapisywany wyłącznie w bazie danych Zabbix. Zapisywanie danych do pliku eksportu zostaje wznowione, gdy problem z zapisem zostanie rozwiązany.

Plik eksportu jest tworzony z uprawnieniami odczytu i zapisu tylko dla właściciela pliku. Dodatkowo plik jest czytelny dla grupy właściciela. Wszystkie pozostałe uprawnienia są zabronione.

Należy pamiętać, że host/pozycja może nie mieć metadanych (grup hostów, nazwy hosta, nazwy pozycji), jeśli host/pozycja została usunięta po odebraniu danych, ale przed wyeksportowaniem danych przez serwer.

Konfiguracja

Eksport w czasie rzeczywistym zdarzeń wyzwalaczy, wartości pozycji i trendów jest konfigurowany przez wskazanie katalogu dla plików eksportu - zobacz parametr ExportDir w konfiguracji serwera.

Dostępne są dwa inne parametry:

  • ExportFileSize może służyć do ustawienia maksymalnego dozwolonego rozmiaru pojedynczego pliku eksportu. Gdy proces musi zapisać dane do pliku, najpierw sprawdza jego rozmiar. Jeśli przekracza skonfigurowany limit rozmiaru, plik jest zmieniany przez dopisanie .old do jego nazwy, a nowy plik o oryginalnej nazwie jest tworzony.

Dla każdego procesu, który będzie zapisywać dane, zostanie utworzony osobny plik (tj. około 4-30 plików). Ponieważ domyślny rozmiar pojedynczego pliku eksportu wynosi 1G, przechowywanie dużych plików eksportu może szybko wyczerpać miejsce na dysku.

  • ExportType pozwala określić, które typy encji (zdarzenia, historia, trendy) będą eksportowane.

Protokół eksportu JSON z rozdzieleniem nowymi liniami

Ta sekcja przedstawia szczegóły protokołu eksportu w formacie JSON z rozdzieleniem nowymi liniami, używanego w:

Wszystkie pliki mają rozszerzenie .ndjson. Każda linia pliku eksportu jest obiektem JSON.

Eksport zdarzenia wyzwalacza

Następujące informacje są eksportowane dla zdarzenia problemu:

Field Type Description
clock number Liczba sekund od Epoki do momentu wykrycia problemu (część całkowita).
ns number Liczba nanosekund, które należy dodać do clock, aby uzyskać dokładny czas wykrycia problemu.
value number 1 (zawsze).
eventid number ID zdarzenia problemu.
name string Nazwa zdarzenia problemu.
severity number Ważność zdarzenia problemu (0 - Nie sklasyfikowano, 1 - Informacja, 2 - Ostrzeżenie, 3 - Średni, 4 - Wysoki, 5 - Katastrofa).
hosts array Lista hostów uwzględnionych w wyrażeniu wyzwalacza; w tablicy powinien znajdować się co najmniej jeden element.
- object
host string Nazwa hosta.
name string Widoczna nazwa hosta.
groups array Lista grup hostów wszystkich hostów uwzględnionych w wyrażeniu wyzwalacza; w tablicy powinien znajdować się co najmniej jeden element.
- string Nazwa grupy hostów.
tags array Lista tagów problemu (może być pusta).
- object
tag string Nazwa tagu.
value string Wartość tagu (może być pusta).

Następujące informacje są eksportowane dla zdarzenia odzyskania:

Field Type Description
clock number Liczba sekund od Epoki do momentu rozwiązania problemu (część całkowita).
ns number Liczba nanosekund, które należy dodać do clock, aby uzyskać dokładny czas rozwiązania problemu.
value number 0 (zawsze).
eventid number ID zdarzenia odzyskania.
p_eventid number ID zdarzenia problemu.
Przykłady eksportu zdarzeń wyzwalacza

Problem:

{"clock":1519304285,"ns":123456789,"value":1,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"eventid":42, "hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}]}

Odzyskanie:

{"clock":1519304345,"ns":987654321,"value":0,"eventid":43,"p_eventid":42}

Problem (generowanie wielu zdarzeń problemu):

{"clock":1519304286,"ns":123456789,"value":1,"eventid":43,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}]}

{"clock":1519304286,"ns":123456789,"value":1,"eventid":43,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}]}

Odzyskanie:

{"clock":1519304346,"ns":987654321,"value":0,"eventid":44,"p_eventid":43}

{"clock":1519304346,"ns":987654321,"value":0,"eventid":44,"p_eventid":42}

Eksport wartości pozycji

Poniższe informacje są eksportowane dla zebranej wartości pozycji:

Field Type Description
host object Nazwa hosta hosta pozycji.
host string Nazwa hosta.
name string Widoczna nazwa hosta.
groups array Lista grup hosta hosta pozycji; w tablicy powinien znajdować się co najmniej jeden element.
- string Nazwa grupy hostów.
item_tags array Lista tagów pozycji (może być pusta).
- object
tag string Nazwa tagu.
value string Wartość tagu (może być pusta).
itemid number ID pozycji.
name string Widoczna nazwa pozycji.
clock number Liczba sekund od początku ery Unix do momentu, w którym wartość została zebrana (część całkowita).
ns number Liczba nanosekund, które należy dodać do clock, aby uzyskać dokładny czas zebrania wartości.
timestamp
(Log only)
number 0, jeśli niedostępne.
source
(Log only)
string Pusty ciąg, jeśli niedostępne.
severity
(Log only)
number 0, jeśli niedostępne.
eventid
(Log only)
number 0, jeśli niedostępne.
value number (for numeric items) or
string (for text items)
Zebrana wartość pozycji.
type number Typ zebranej wartości:
0 - liczba zmiennoprzecinkowa, 1 - znak, 2 - log, 3 - liczba całkowita bez znaku, 4 - tekst, 5 - binarne, 6 - JSON
Przykład eksportu wartości pozycji

Wartość numeryczna (bez znaku):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":3,"name":"Dostępność agenta","clock":1519304285,"ns":123456789,"value":1,"type":3}

Wartość numeryczna (zmiennoprzecinkowa):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":4,"name":"Obciążenie CPU","clock":1519304285,"ns":123456789,"value":0.1,"type":0}

Wartość znakowa, tekstowa:

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":2,"name":"Wersja agenta","clock":1519304285,"ns":123456789,"value":"3.4.4","type":4}

Wartość logu:

{"host":{"host":"Host A","name":"Host A visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":1,"name":"Wiadomości w pliku logu","clock":1519304285,"ns":123456789,"timestamp":1519304285,"source":"","severity":0,"eventid":0,"value":"wiadomość z pliku logu","type":2}

Eksport trendów

Poniższe informacje są eksportowane dla obliczonej wartości trendu:

Field Type Description
host object Nazwa hosta hosta pozycji.
host string Nazwa hosta.
name string Widoczna nazwa hosta.
groups array Lista grup hosta hosta pozycji; w tablicy powinien znajdować się co najmniej jeden element.
- string Nazwa grupy hosta.
item_tags array Lista tagów pozycji (może być pusta).
- object
tag string Nazwa tagu.
value string Wartość tagu (może być pusta).
itemid number ID pozycji.
name string Widoczna nazwa pozycji.
clock number Liczba sekund od Ery do momentu, w którym wartość została zebrana (część całkowita).
count number Liczba wartości zebranych dla danej godziny.
min number Minimalna wartość pozycji dla danej godziny.
avg number Średnia wartość pozycji dla danej godziny.
max number Maksymalna wartość pozycji dla danej godziny.
type number Typ wartości:
0 - liczba zmiennoprzecinkowa, 3 - liczba całkowita bez znaku
Przykłady eksportu trendów

Wartość liczbowa (bez znaku):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":3,"name":"Dostępność agenta","clock":1519311600,"count":60,"min":1,"avg":1,"max":1,"type":3}

Wartość liczbowa (zmiennoprzecinkowa):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":4,"name":"Obciążenie CPU","clock":1519311600,"count":60,"min":0.01,"avg":0.15,"max":1.5,"type":0}