1 Agent Zabbix
Przegląd
Ta sekcja zawiera szczegółowe informacje o kluczach pozycji, które wykorzystują komunikację z agent do zbierania danych.
Istnieją pasywne i aktywne kontrole agent. Podczas konfigurowania pozycji można wybrać wymagany typ:
- Zabbix agent — dla kontroli pasywnych
- Zabbix agent (active) — dla kontroli aktywnych
Należy pamiętać, że wszystkie klucze pozycji obsługiwane przez Zabbix agent są również obsługiwane przez nowej generacji Zabbix agent 2. Zobacz dodatkowe klucze pozycji, których można używać wyłącznie z agent 2.
Obsługiwane klucze pozycji
Klucze pozycji, których można używać z agentem Zabbix, są wymienione poniżej.
Klucze pozycji są podane bez parametrów i dodatkowych informacji. Kliknij klucz pozycji, aby zobaczyć pełne szczegóły.
| Klucz pozycji | Opis | Grupa pozycji |
|---|---|---|
| kernel.maxfiles | Maksymalna liczba otwartych plików obsługiwana przez system operacyjny. | Kernel |
| kernel.maxproc | Maksymalna liczba procesów obsługiwana przez system operacyjny. | |
| kernel.openfiles | Liczba aktualnie otwartych deskryptorów plików. | |
| log | Monitorowanie pliku dziennika. | Monitorowanie dziennika |
| log.count | Liczba dopasowanych wierszy w monitorowanym pliku dziennika. | |
| logrt | Monitorowanie obracanego pliku dziennika. | |
| logrt.count | Liczba dopasowanych wierszy w monitorowanym obracanym pliku dziennika. | |
| modbus.get | Odczytuje dane Modbus. | Modbus |
| net.dns | Sprawdza stan usługi DNS. | Sieć |
| net.dns.perf | Sprawdza wydajność usługi DNS. | |
| net.dns.record | Wykonuje zapytanie DNS. | |
| net.if.collisions | Liczba kolizji poza oknem czasowym. | |
| net.if.discovery | Lista interfejsów sieciowych. | |
| net.if.in | Statystyki ruchu przychodzącego na interfejsie sieciowym. | |
| net.if.out | Statystyki ruchu wychodzącego na interfejsie sieciowym. | |
| net.if.total | Suma statystyk ruchu przychodzącego i wychodzącego na interfejsie sieciowym. | |
| net.tcp.listen | Sprawdza, czy ten port TCP ma stan LISTEN. | |
| net.tcp.port | Sprawdza, czy można nawiązać połączenie TCP z określonym portem. | |
| net.tcp.service | Sprawdza, czy usługa działa i przyjmuje połączenia TCP. | |
| net.tcp.service.perf | Sprawdza wydajność usługi TCP. | |
| net.tcp.socket.count | Zwraca liczbę gniazd TCP pasujących do parametrów. | |
| net.udp.listen | Sprawdza, czy ten port UDP ma stan LISTEN. | |
| net.udp.service | Sprawdza, czy usługa działa i odpowiada na żądania UDP. | |
| net.udp.service.perf | Sprawdza wydajność usługi UDP. | |
| net.udp.socket.count | Zwraca liczbę gniazd UDP pasujących do parametrów. | |
| proc.cpu.util | Procent wykorzystania CPU przez proces. | Procesy |
| proc.get | Lista procesów systemu operacyjnego i ich parametrów. | |
| proc.mem | Pamięć używana przez proces w bajtach. | |
| proc.num | Liczba procesów. | |
| sensor | Odczyt czujnika sprzętowego. | Czujniki |
| system.boottime | Czas uruchomienia systemu. | System |
| system.cpu.discovery | Lista wykrytych procesorów/rdzeni CPU. | |
| system.cpu.intr | Przerwania urządzenia. | |
| system.cpu.load | Obciążenie CPU. | |
| system.cpu.num | Liczba procesorów CPU. | |
| system.cpu.switches | Liczba przełączeń kontekstu. | |
| system.cpu.util | Procent wykorzystania CPU. | |
| system.hostname | Nazwa hosta systemu. | |
| system.hw.chassis | Informacje o obudowie. | |
| system.hw.cpu | Informacje o CPU. | |
| system.hw.devices | Lista urządzeń PCI lub USB. | |
| system.hw.macaddr | Lista adresów MAC. | |
| system.localtime | Czas systemowy. | |
| system.run | Uruchamia określone polecenie na hoście. | |
| system.stat | Statystyki systemowe. | |
| system.sw.arch | Informacje o architekturze oprogramowania. | |
| system.sw.os | Informacje o systemie operacyjnym. | |
| system.sw.os.get | Szczegółowe informacje o systemie operacyjnym (wersja, typ, nazwa dystrybucji, wersja minor i major itp). | |
| system.sw.packages | Lista zainstalowanych pakietów. | |
| system.sw.packages.get | Szczegółowa lista zainstalowanych pakietów. | |
| system.swap.in | Statystyki swap-in (z urządzenia do pamięci). | |
| system.swap.out | Statystyki swap-out (z pamięci na urządzenie). | |
| system.swap.size | Rozmiar przestrzeni wymiany w bajtach lub jako procent całości. | |
| system.uname | Identyfikacja systemu. | |
| system.uptime | Czas działania systemu w sekundach. | |
| system.users.num | Liczba zalogowanych użytkowników. | |
| vfs.dev.discovery | Lista urządzeń blokowych i ich typów. | Wirtualne systemy plików |
| vfs.dev.read | Statystyki odczytu dysku. | |
| vfs.dev.write | Statystyki zapisu dysku. | |
| vfs.dir.count | Liczba wpisów katalogu. | |
| vfs.dir.get | Lista wpisów katalogu. | |
| vfs.dir.size | Rozmiar katalogu. | |
| vfs.file.cksum | Suma kontrolna pliku, obliczona algorytmem UNIX cksum. | |
| vfs.file.contents | Pobieranie zawartości pliku. | |
| vfs.file.exists | Sprawdza, czy plik istnieje. | |
| vfs.file.get | Zwraca informacje o pliku. | |
| vfs.file.md5sum | Suma kontrolna MD5 pliku. | |
| vfs.file.owner | Pobiera właściciela pliku. | |
| vfs.file.permissions | Zwraca 4-cyfrowy ciąg zawierający liczbę ósemkową z uprawnieniami UNIX. | |
| vfs.file.regexp | Pobiera ciąg znaków z pliku. | |
| vfs.file.regmatch | Znajduje ciąg znaków w pliku. | |
| vfs.file.size | Rozmiar pliku. | |
| vfs.file.time | Informacje o czasie pliku. | |
| vfs.fs.discovery | Lista zamontowanych systemów plików wraz z ich typem i opcjami montowania. | |
| vfs.fs.get | Lista zamontowanych systemów plików wraz z ich typem, dostępnym miejscem na dysku, statystykami inode i opcjami montowania. | |
| vfs.fs.inode | Liczba lub procent inode. | |
| vfs.fs.size | Miejsce na dysku w bajtach lub jako procent całości. | |
| vm.memory.size | Rozmiar pamięci w bajtach lub jako procent całości. | Pamięć wirtualna |
| web.page.get | Pobiera zawartość strony internetowej. | Monitorowanie WWW |
| web.page.perf | Czas ładowania pełnej strony internetowej. | |
| web.page.regexp | Znajduje ciąg znaków na stronie internetowej. | |
| agent.hostmetadata | Metadane hosta agenta. | Zabbix |
| agent.hostname | Nazwa hosta agenta. | |
| agent.ping | Sprawdzenie dostępności agenta. | |
| agent.variant | Wariant agenta Zabbix (Zabbix agent lub Zabbix agent 2). | |
| agent.version | Wersja agenta Zabbix. | |
| zabbix.stats | Zwraca zestaw wewnętrznych metryk serwera Zabbix lub proxy. Jeśli określono ip i port, metryki są pobierane ze zdalnej instancji; w przeciwnym razie z lokalnej instancji. |
|
| zabbix.stats (queue) | Zwraca liczbę monitorowanych pozycji w kolejce, które są opóźnione na serwerze Zabbix lub proxy. Jeśli określono ip i port, metryki są pobierane ze zdalnej instancji; w przeciwnym razie z lokalnej instancji. |
Obsługiwane platformy
O ile w szczegółach pozycji nie określono inaczej, pozycje agenta (oraz wszystkie parametry) są obsługiwane na:
- Linux
- FreeBSD
- Solaris
- HP-UX
- AIX
- MacOS X
- OpenBSD
- NetBSD
Wiele pozycji agenta jest również obsługiwanych w systemie Windows. Szczegóły można znaleźć na stronie Windows agent item.
Szczegóły klucza pozycji
Parametry bez nawiasów ostrych są obowiązkowe. Parametry oznaczone nawiasami ostrymi < > są opcjonalne.
kernel.maxfiles
Maksymalna liczba otwartych plików obsługiwana przez system operacyjny.
Zwracana wartość: Liczba całkowita.
Obsługiwane platformy: Linux, FreeBSD, MacOS X, OpenBSD, NetBSD.
kernel.maxproc
Maksymalna liczba procesów obsługiwana przez system operacyjny.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux 2.6 i nowsze, FreeBSD, Solaris, MacOS X, OpenBSD, NetBSD.
kernel.openfiles
Liczba aktualnie otwartych deskryptorów plików.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux (pozycja może działać na innych platformach typu UNIX).
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
Monitorowanie pliku dziennika.
Zwracana wartość: Log.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka i nazwa pliku dziennika;
- regexp - regularne wyrażenie opisujące wymagany wzorzec;
- encoding - identyfikator strony kodowej;
- maxlines - maksymalna liczba nowych linii na sekundę, które agent wyśle do serwer lub proxy.
Ten parametr zastępuje wartość 'MaxLinesPerSecond' w zabbix_agentd.conf;
- mode - możliwe wartości: all (domyślnie) lub skip - pomiń przetwarzanie starszych danych (dotyczy tylko nowo utworzonych pozycji);
- output - opcjonalny szablon formatowania danych wyjściowych.
Sekwencja ucieczki \0 jest zastępowana dopasowaną częścią tekstu (od pierwszego znaku, od którego zaczyna się dopasowanie, do znaku, na którym dopasowanie się kończy), natomiast sekwencja ucieczki \N (gdzie N=1...9) jest zastępowana N-tą dopasowaną grupą (lub pustym ciągiem, jeśli N przekracza liczbę przechwyconych grup);
- maxdelay - maksymalne opóźnienie w sekundach.
Typ: float.
Wartości: 0 - (domyślnie) nigdy nie ignoruj linii pliku dziennika; > 0.0 - ignoruj starsze linie, aby analizować najnowsze linie w ciągu "maxdelay" sekund.
Przed użyciem przeczytaj uwagi dotyczące maxdelay!
- options - dodatkowe opcje:
mtime-noreread - nieunikalne rekordy, odczytuj ponownie tylko wtedy, gdy zmienia się rozmiar pliku (ignoruj zmianę czasu modyfikacji). (Ten parametr jest przestarzały od wersji 5.0.2, ponieważ obecnie czas modyfikacji jest ignorowany.) - persistent dir (tylko w zabbix_agentd w systemach Unix; nieobsługiwane w Zabbix agent 2) - bezwzględna ścieżka do katalogu, w którym mają być przechowywane pliki trwałe. Zobacz także dodatkowe uwagi dotyczące plików trwałych.
Komentarze:
- Pozycja musi być skonfigurowana jako sprawdzenie aktywne.
- Jeśli plik nie istnieje lub uprawnienia nie pozwalają na dostęp, pozycja staje się nieobsługiwana.
- Jeśli
outputpozostanie puste - zwracana jest cała linia zawierająca dopasowany tekst. Zwróć uwagę, że wszystkie typy globalnych wyrażeń regularnych z wyjątkiem 'Result is TRUE' zawsze zwracają całą dopasowaną linię, a parametroutputjest ignorowany. - Ekstrakcja zawartości przy użyciu parametru
outputodbywa się po stronie agenta.
Przykłady:
log[/var/log/syslog]
log[/var/log/syslog,error]
log[/home/zabbix/logs/logfile,,,100]
Przykład użycia parametru output do wyodrębnienia liczby z rekordu dziennika:
log[/app1/app.log,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #ta pozycja dopasuje rekord dziennika "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" i wyśle tylko '6080' do serwer. Ponieważ wysyłana jest wartość liczbowa, dla tej pozycji można ustawić "Type of information" na "Numeric (unsigned)", a wartość może być używana na wykresach, w wyzwalaczach itd.
Przykład użycia parametru output do przepisania rekordu dziennika przed wysłaniem do serwer:
log[/app1/app.log,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] #ta pozycja dopasuje rekord dziennika "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" i wyśle do serwer zmodyfikowany rekord "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08".
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
Liczba dopasowanych linii w monitorowanym pliku dziennika.
Wartość zwracana: Integer.
Zobacz obsługiwane platformy.
Parametry:
- file — pełna ścieżka i nazwa pliku dziennika;
- regexp — wyrażenie regularne opisujące wymagany wzorzec;
- encoding — identyfikator strony kodowej;
- maxproclines — maksymalna liczba nowych linii na sekundę, które agent przeanalizuje (nie może przekraczać 10000).
Wartość domyślna to 10*'MaxLinesPerSecond' w zabbix_agentd.conf.
- mode — możliwe wartości: all (domyślnie) lub skip — pomiń przetwarzanie starszych danych (dotyczy tylko nowo utworzonych pozycji).
- maxdelay — maksymalne opóźnienie w sekundach.
Typ: float.
Wartości: 0 — (domyślnie) nigdy nie ignoruj linii pliku dziennika; > 0.0 — ignoruj starsze linie, aby analizować najnowsze linie w ciągu „maxdelay” sekund.
Przed użyciem przeczytaj uwagi dotyczące maxdelay!
- options — dodatkowe opcje:
mtime-noreread — nieunikalne rekordy, odczytuj ponownie tylko wtedy, gdy zmieni się rozmiar pliku (ignoruj zmianę czasu modyfikacji). (Ten parametr jest przestarzały od wersji 5.0.2, ponieważ obecnie mtime jest ignorowany.) - persistent dir (tylko w zabbix_agentd w systemach Unix; nieobsługiwane w Zabbix agent 2) — bezwzględna ścieżka katalogu, w którym mają być przechowywane pliki trwałe. Zobacz także dodatkowe uwagi dotyczące plików trwałych.
Komentarze:
- Pozycja musi być skonfigurowana jako sprawdzenie aktywne.
- Dopasowane linie są zliczane wśród nowych linii od ostatniego sprawdzenia dziennika przez agent, a zatem zależą od interwału aktualizacji pozycji.
- Jeśli plik nie istnieje lub uprawnienia nie pozwalają na dostęp, pozycja staje się nieobsługiwana.
logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
Monitorowanie pliku dziennika, który jest rotowany.
Wartość zwracana: Log.
Zobacz obsługiwane platformy.
Parametry:
- file regexp - bezwzględna ścieżka do pliku, z nazwą pliku określoną za pomocą wyrażenia regularnego expression.
Należy pamiętać, że wyrażenie regularne ma zastosowanie tylko do nazwy pliku i nie musi dopasowywać całej nazwy (np. /path/to/agent dopasuje zabbix_agentd.log).
- regexp - wyrażenie regularne expression opisujące wymagany wzorzec zawartości.
- encoding - identyfikator strony kodowej identifier.
- maxlines - maksymalna liczba nowych linii na sekundę, którą agent wyśle do serwer lub proxy.
Ten parametr zastępuje wartość 'MaxLinesPerSecond' w zabbix_agentd.conf.
- mode - możliwe wartości: all (domyślnie) lub skip - pomija przetwarzanie starszych danych (dotyczy tylko nowo utworzonych pozycji).
- output - opcjonalny szablon formatowania wyjścia.
Sekwencja ucieczki \0 jest zastępowana dopasowaną częścią tekstu (od pierwszego znaku, w którym zaczyna się dopasowanie, do znaku, w którym się kończy), natomiast sekwencja \N (gdzie N=1...9) jest zastępowana N-tą dopasowaną grupą (lub pustym ciągiem, jeśli N przekracza liczbę przechwyconych grup).
- maxdelay - maksymalne opóźnienie w sekundach.
Typ: float.
Wartości: 0 - (domyślnie) nigdy nie ignoruj linii pliku dziennika; > 0.0 - ignoruj starsze linie, aby najnowsze analizowane linie mieściły się w czasie "maxdelay" sekund.
Przed użyciem przeczytaj uwagi dotyczące maxdelay!
- options - typ rotacji pliku dziennika i inne opcje.
Możliwe wartości:
rotate (domyślnie),
copytruncate - należy pamiętać, że copytruncate nie może być używane razem z maxdelay. W takim przypadku maxdelay musi mieć wartość 0 lub nie może być określone; zobacz uwagi dotyczące copytruncate,
mtime-reread - rekordy nieunikalne, odczyt ponownie, jeśli zmieni się czas modyfikacji lub rozmiar (używane domyślnie, jeśli żadna opcjamtime-*nie została jawnie ustawiona),
mtime-noreread - rekordy nieunikalne, odczyt ponownie tylko jeśli zmieni się rozmiar (ignoruj zmianę czasu modyfikacji). - persistent dir (tylko w zabbix_agentd w systemach Unix; nieobsługiwane w Zabbix agent 2) - bezwzględna ścieżka katalogu, w którym mają być przechowywane pliki trwałe. Zobacz także dodatkowe uwagi dotyczące persistent files.
Uwagi:
- Pozycja musi być skonfigurowana jako active check.
- Rotacja pliku dziennika opiera się na czasie ostatniej modyfikacji plików.
- Należy pamiętać, że logrt jest przeznaczony do pracy z jednym aktualnie aktywnym plikiem dziennika oraz kilkoma innymi pasywnymi plikami spełniającymi warunek, które zostały zrotowane. Jeśli na przykład katalog zawiera wiele aktywnych plików dziennika, należy utworzyć osobną pozycję logrt dla każdego z nich. W przeciwnym razie, jeśli jedna pozycja logrt obejmie zbyt wiele plików, może to doprowadzić do wyczerpania pamięci i awarii monitorowania.
- Jeśli
outputpozostanie puste - zwracana jest cała linia zawierająca dopasowany tekst. Należy pamiętać, że wszystkie globalne typy wyrażeń regularnych z wyjątkiem 'Result is TRUE' zawsze zwracają całą dopasowaną linię, a parametroutputjest ignorowany. - Wyodrębnianie zawartości przy użyciu parametru
outputodbywa się na agencie. - W parametrze
file regexpścieżka katalogu dziennika i wyrażenie regularne pliku dziennika muszą być oddzielone poprawnym separatorem katalogów:- w systemie Windows separatorem musi być ukośnik odwrotny (\); ukośniki ukośne (/) mogą być tolerowane w innych miejscach, z wyjątkiem tego, który oddziela ścieżkę katalogu dziennika i wyrażenie regularne pliku dziennika (zobacz przykłady poniżej).
- w innych systemach musi to być ukośnik ukośny (/).
Przykłady dla Windows:
logrt["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #ta pozycja będzie zbierać dane z plików dziennika w "c:/dir1/dir2/dir3", gdzie nazwa pliku zaczyna się od "filename" i kończy dowolnym rozszerzeniem pasującym do ".log".
logrt["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #ta pozycja będzie zbierać dane z plików dziennika w udziale sieciowym "//example.com/share/dir1/dir2/dir3", gdzie nazwa pliku zaczyna się od "filename" i kończy dowolnym rozszerzeniem pasującym do ".log".
Przykłady dla innych systemów:
logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] #ta pozycja dopasuje plik taki jak "logfile1" (nie dopasuje ".logfile1").
logrt["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #ta pozycja będzie zbierać dane z plików takich jak "logfile_abc_1" lub "logfile__001".
Przykład użycia parametru output do wyodrębnienia liczby z rekordu dziennika:
logrt[/app1/^test.*log$,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #ta pozycja dopasuje rekord dziennika "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" i wyśle do serwer tylko '6080'. Ponieważ wysyłana jest wartość liczbowa, dla tej pozycji można ustawić "Typ informacji" na "Liczbowa (bez znaku)", a wartość może być używana na wykresach, wyzwalaczach itp.
Przykład użycia parametru output do przekształcenia rekordu dziennika przed wysłaniem do serwer:
logrt[/app1/^test.*log$,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] #ta pozycja dopasuje rekord dziennika "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" i wyśle zmodyfikowany rekord "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" do serwer.
logrt.count[file regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
Liczba dopasowanych wierszy w monitorowanym pliku dziennika, który jest rotowany.
Wartość zwracana: Integer.
Zobacz obsługiwane platformy.
Parametry:
- file regexp - bezwzględna ścieżka do pliku, z nazwą pliku określoną za pomocą wyrażenia regularnego expression.
Należy pamiętać, że wyrażenie regularne ma zastosowanie tylko do nazwy pliku i nie musi dopasowywać całej nazwy (np. /path/to/agent dopasuje zabbix_agentd.log).
- regexp - wyrażenie regularne expression opisujące wymagany wzorzec.
- encoding - identyfikator strony kodowej identifier.
- maxproclines - maksymalna liczba nowych wierszy na sekundę, które agent będzie analizował (nie może przekroczyć 10000).
Wartość domyślna to 10*'MaxLinesPerSecond' w zabbix_agentd.conf.
- mode - możliwe wartości: all (domyślnie) lub skip - pomija przetwarzanie starszych danych (dotyczy tylko nowo utworzonych pozycji).
- maxdelay - maksymalne opóźnienie w sekundach.
Typ: float.
Wartości: 0 - (domyślnie) nigdy nie ignoruj wierszy pliku dziennika; > 0.0 - ignoruj starsze wiersze, aby najnowsze wiersze zostały przeanalizowane w ciągu "maxdelay" sekund.
Przed użyciem przeczytaj uwagi dotyczące maxdelay!
- options - typ rotacji pliku dziennika i inne opcje.
Możliwe wartości:
rotate (domyślnie),
copytruncate - należy pamiętać, że copytruncate nie może być używane razem z maxdelay. W takim przypadku maxdelay musi mieć wartość 0 lub nie może być określone; zobacz uwagi dotyczące copytruncate,
mtime-reread - rekordy nieunikalne, ponowne odczytanie, jeśli zmieni się czas modyfikacji lub rozmiar (domyślnie),
mtime-noreread - rekordy nieunikalne, ponowne odczytanie tylko jeśli zmieni się rozmiar (ignoruj zmianę czasu modyfikacji). - persistent dir (tylko w zabbix_agentd w systemach Unix; nieobsługiwane w Zabbix agent 2) - bezwzględna ścieżka do katalogu, w którym mają być przechowywane pliki trwałe. Zobacz także dodatkowe uwagi dotyczące persistent files.
Uwagi:
- Pozycja musi być skonfigurowana jako active check.
- Dopasowane wiersze są zliczane w nowych wierszach od ostatniego sprawdzenia pliku dziennika przez agenta, a więc zależą od interwału aktualizacji pozycji.
- Rotacja pliku dziennika opiera się na czasie ostatniej modyfikacji plików.
- W parametrze
file regexpścieżka do katalogu dziennika i wyrażenie regularne pliku dziennika muszą być oddzielone poprawnym separatorem katalogów:- w systemie Windows separatorem musi być ukośnik odwrotny (\); ukośniki ukośne mogą być tolerowane w innych miejscach, z wyjątkiem tego, który oddziela ścieżkę katalogu dziennika i wyrażenie regularne pliku dziennika (zobacz przykłady poniżej).
- w innych systemach musi to być ukośnik ukośny (/).
Przykłady dla systemu Windows:
logrt.count["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #ta pozycja zliczy liczbę dopasowań wzorca "pattern_to_match" w plikach dziennika znajdujących się w "c:/dir1/dir2/dir3".
logrt.count["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #ta pozycja zliczy liczbę dopasowań wzorca "pattern_to_match" w plikach dziennika w udziale sieciowym "//example.com/share/dir1/dir2/dir3".
Przykłady dla innych systemów:
logrt.count["/home/zabbix/logs/.*","^logfile[0-9]{1,3}$",,100] #ta pozycja zliczy liczbę dopasowań wzorca "^logfile[0-9]{1,3}$" w plikach dziennika w katalogu "/home/zabbix/logs".
logrt.count["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #ta pozycja zliczy liczbę wystąpień wzorca "pattern_to_match" w plikach dziennika znajdujących się w "/home/user".
modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]
Odczytuje dane Modbus.
Wartość zwracana: ciąg JSON.
Obsługiwane platformy: Linux, Windows.
Parametry:
- endpoint - punkt końcowy zdefiniowany jako
protocol://connection_string; - slave id - identyfikator slave;
- function - funkcja Modbus;
- address - adres pierwszego rejestru, cewki lub wejścia;
- count - liczba rekordów do odczytu;
- type - typ danych;
- endianness - konfiguracja kolejności bajtów;
- offset - liczba rejestrów, począwszy od „address”, których wyniki zostaną odrzucone.
W systemie Windows ta pozycja obsługuje ścieżki UNC w parametrze endpoint, co może stanowić zagrożenie bezpieczeństwa.
Zobacz szczegółowy opis parametrów.
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
Sprawdza stan usługi DNS.
Zwracane wartości: 0 - rozwiązywanie DNS nie powiodło się (serwer DNS nie odpowiedział lub zwrócił błąd); 1 - rozwiązywanie DNS zakończyło się powodzeniem.
Zobacz obsługiwane platformy.
Parametry:
- ip (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - adres IP serwera DNS (pozostaw puste dla domyślnego serwera DNS);
- name - nazwa DNS do odpytania;
- type - typ rekordu, o który zostanie wykonane zapytanie (domyślnie SOA);
- timeout (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - limit czasu żądania w sekundach (domyślnie 1 sekunda);
- count (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - liczba prób dla żądania (domyślnie 2);
- protocol - protokół używany do wykonywania zapytań DNS: udp (domyślnie) lub tcp.
Uwagi:
- Możliwe wartości parametru
typeto: ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (nieobsługiwane przez Zabbix agent w systemie Windows, Zabbix agent 2 we wszystkich systemach operacyjnych), HINFO, MINFO, TXT, SRV. - W przypadku odwrotnych wyszukiwań DNS (gdy
typejest ustawione na PTR) można podać nazwę DNS zarówno w formacie odwróconym, jak i nieodwróconym (zobacz przykłady poniżej). Pamiętaj, że gdy żądany jest rekord PTR, nazwa DNS jest w rzeczywistości adresem IP. - Międzynarodowe nazwy domen nie są obsługiwane; zamiast tego użyj nazw zakodowanych w IDNA.
Przykłady:
net.dns[198.51.100.1,example.com,MX,2,1]
net.dns[,198.51.100.1,PTR]
net.dns[,1.100.51.198.in-addr.arpa,PTR]
net.dns[,2a00:1450:400f:800::200e,PTR]
net.dns[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.perf[<ip>,name,<type>,<timeout>,<count>,<protocol>]
Sprawdza wydajność usługi DNS.
Zwracana wartość: Float (0 - usługa jest niedostępna; sekundy - liczba sekund spędzonych na oczekiwaniu na odpowiedź z usługi).
Zobacz obsługiwane platformy.
Parametry:
- ip (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - adres IP serwera DNS (pozostaw puste dla domyślnego serwera DNS);
- name - nazwa DNS do odpytania;
- type - typ rekordu, o który zostanie wykonane zapytanie (domyślnie SOA);
- timeout (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - limit czasu żądania w sekundach (domyślnie 1 sekunda);
- count (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - liczba prób wykonania żądania (domyślnie 2);
- protocol - protokół używany do wykonywania zapytań DNS: udp (domyślnie) lub tcp.
Uwagi:
- Możliwe wartości parametru
typeto:
ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (nieobsługiwane przez Zabbix agent w systemie Windows, Zabbix agent 2 we wszystkich systemach operacyjnych), HINFO, MINFO, TXT, SRV. - W przypadku odwrotnych wyszukiwań DNS (gdy
typejest ustawione na PTR) można podać nazwę DNS zarówno w formacie odwróconym, jak i nieodwróconym (zobacz przykłady poniżej). Należy pamiętać, że gdy żądany jest rekord PTR, nazwa DNS jest w rzeczywistości adresem IP. - Międzynarodowe nazwy domen nie są obsługiwane; zamiast tego należy używać nazw zakodowanych w IDNA.
- pozycja zwraca czas odpowiedzi zamiast
0, gdy serwer DNS odpowiada kodem błędu (na przykładNXDOMAINlubSERVFAIL).
Przykłady:
net.dns.perf[198.51.100.1,example.com,MX,2,1]
net.dns.perf[,198.51.100.1,PTR]
net.dns.perf[,1.100.51.198.in-addr.arpa,PTR]
net.dns.perf[,2a00:1450:400f:800::200e,PTR]
net.dns.perf[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]
Wykonuje zapytanie DNS.
Zabbix agent 2 udostępnia również net.dns.get, które oferuje dodatkowe funkcje, takie jak większa liczba typów rekordów oraz większa kontrola nad monitorowaniem DNS.
Wartość zwracana: ciąg znaków zawierający wymagany typ informacji.
Zobacz obsługiwane platformy.
Parametry:
- ip (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - adres IP serwera DNS (pozostaw puste, aby użyć domyślnego serwera DNS);
- name - nazwa DNS, o którą ma zostać wykonane zapytanie;
- type - typ rekordu, o który ma zostać wykonane zapytanie (domyślnie SOA);
- timeout (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - limit czasu żądania w sekundach (domyślnie 1 sekunda);
- count (ignorowane w systemie Windows, chyba że używany jest Zabbix agent 2) - liczba prób wykonania żądania (domyślnie 2);
- protocol - protokół używany do wykonywania zapytań DNS: udp (domyślnie) lub tcp.
Uwagi:
- Możliwe wartości parametru
typeto:
ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (nieobsługiwane przez Zabbix agent w systemie Windows oraz przez Zabbix agent 2 we wszystkich systemach operacyjnych), HINFO, MINFO, TXT, SRV. - W przypadku odwrotnych wyszukiwań DNS (gdy
typejest ustawione na PTR) można podać nazwę DNS w formacie odwróconym lub nieodwróconym (zobacz przykłady poniżej). Należy pamiętać, że gdy żądany jest rekord PTR, nazwa DNS jest w rzeczywistości adresem IP. - Międzynarodowe nazwy domen nie są obsługiwane; zamiast tego należy używać nazw zakodowanych w IDNA.
Przykłady:
net.dns.record[198.51.100.1,example.com,MX,2,1]
net.dns.record[,198.51.100.1,PTR]
net.dns.record[,1.100.51.198.in-addr.arpa,PTR]
net.dns.record[,2a00:1450:400f:800::200e,PTR]
net.dns.record[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.if.collisions[if]
Liczba kolizji poza oknem czasowym.
Wartość zwracana: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD.
Uprawnienia root są wymagane w NetBSD.
Parametr:
- if - nazwa interfejsu sieciowego
net.if.discovery
Lista interfejsów sieciowych.
Używana do wykrywania niskiego poziomu.
Zwracana wartość: ciąg JSON.
Obsługiwane platformy: Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD, Windows.
net.if.in[if,<mode>]
Statystyki ruchu przychodzącego na interfejsie sieciowym.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
Uprawnienia root są wymagane w systemie NetBSD.
Parametry:
- if - nazwa interfejsu sieciowego (Unix); pełny opis interfejsu sieciowego lub adres IPv4; albo, jeśli ujęty w nawiasy klamrowe, GUID interfejsu sieciowego (Windows);
- mode - możliwe wartości:
bytes - liczba bajtów (domyślnie)
packets - liczba pakietów
errors - liczba błędów
dropped - liczba odrzuconych pakietów
overruns (fifo) - liczba błędów bufora FIFO
frame - liczba błędów ramkowania pakietów
compressed - liczba skompresowanych pakietów odebranych przez sterownik urządzenia
multicast - liczba ramek multicast odebranych przez sterownik urządzenia
Uwagi:
- Możesz użyć tego klucza razem z krokiem przetwarzania wstępnego Change per second, aby uzyskać statystyki liczby bajtów na sekundę.
- Tryb dropped jest obsługiwany tylko w systemach Linux, FreeBSD, HP-UX, MacOS X, OpenBSD, NetBSD.
- Tryby overruns, frame, compressed, multicast są obsługiwane tylko w systemie Linux.
- W systemie HP-UX ta pozycja nie dostarcza szczegółów dotyczących interfejsów loopback (np. lo0).
Przykłady:
net.if.in[eth0]
net.if.in[eth0,errors]
net.if.out[if,<mode>]
Statystyki ruchu wychodzącego na interfejsie sieciowym.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
Uprawnienia root są wymagane w systemie NetBSD.
Parametry:
- if - nazwa interfejsu sieciowego (Unix); pełny opis interfejsu sieciowego lub adres IPv4; albo, jeśli ujęty w nawiasy klamrowe, GUID interfejsu sieciowego (Windows);
- mode - możliwe wartości:
bytes - liczba bajtów (domyślnie)
packets - liczba pakietów
errors - liczba błędów
dropped - liczba odrzuconych pakietów
overruns (fifo) - liczba błędów bufora FIFO
collisions (colls) - liczba kolizji wykrytych na interfejsie
carrier - liczba utrat nośnej wykrytych przez sterownik urządzenia
compressed - liczba skompresowanych pakietów przesłanych przez sterownik urządzenia
Uwagi:
- Możesz użyć tego klucza z krokiem przetwarzania wstępnego Zmiana na sekundę, aby uzyskać statystyki bajtów na sekundę.
- Tryb dropped jest obsługiwany tylko w systemach Linux, HP-UX.
- Tryby overruns, collision, carrier, compressed są obsługiwane tylko w systemie Linux.
- W systemie HP-UX ta pozycja nie dostarcza szczegółów dotyczących interfejsów loopback (np. lo0).
Przykłady:
net.if.out[eth0]
net.if.out[eth0,errors]
net.if.total[if,<mode>]
Suma statystyk ruchu przychodzącego i wychodzącego na interfejsie sieciowym.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
Uprawnienia root są wymagane w systemie NetBSD.
Parametry:
- if - nazwa interfejsu sieciowego (Unix); pełny opis interfejsu sieciowego lub adres IPv4; albo, jeśli ujęty w nawiasy klamrowe, GUID interfejsu sieciowego (Windows);
- mode - możliwe wartości:
bytes - liczba bajtów (domyślnie)
packets - liczba pakietów
errors - liczba błędów
dropped - liczba odrzuconych pakietów
overruns (fifo) - liczba błędów bufora FIFO
collisions (colls) - liczba kolizji wykrytych na interfejsie
compressed - liczba skompresowanych pakietów wysłanych lub odebranych przez sterownik urządzenia
Uwagi:
- Możesz użyć tego klucza z krokiem preprocessing Change per second, aby uzyskać statystyki bajtów na sekundę.
- Tryb dropped jest obsługiwany tylko w systemach Linux i HP-UX.
Odrzucone pakiety są obsługiwane tylko wtedy, gdy zarówno
net.if.in, jak inet.if.outdziałają dla odrzuconych pakietów na Twojej platformie. - Tryby overruns, collision, compressed są obsługiwane tylko w systemie Linux.
- W systemie HP-UX ta pozycja nie dostarcza szczegółów dotyczących interfejsów loopback (np. lo0).
Przykłady:
net.if.total[eth0]
net.if.total[eth0,errors]
net.tcp.listen[port]
Sprawdza, czy ten port TCP jest w stanie LISTEN.
Zwracane wartości: 0 - nie jest w stanie LISTEN; 1 - jest w stanie LISTEN.
Obsługiwane platformy: Linux, FreeBSD, Solaris, MacOS X, Windows.
Parametr:
- port - numer portu TCP
W jądrach Linux 2.6.14 i nowszych informacje o nasłuchujących gniazdach TCP są pobierane, jeśli to możliwe, z interfejsu NETLINK jądra. W przeciwnym razie informacje są pobierane z plików /proc/net/tcp i /roc/net/tcp6.
Przykład:
net.tcp.listen[80]
net.tcp.port[<ip>,port]
Sprawdza, czy możliwe jest nawiązanie połączenia TCP z określonym portem.
Zwracane wartości: 0 - nie można się połączyć; 1 - można się połączyć.
Zobacz obsługiwane platformy.
Parametry:
- ip - adres IP lub nazwa DNS (domyślnie 127.0.0.1);
- port - numer portu.
Uwagi:
- Do prostego testowania wydajności TCP użyj
net.tcp.service.perf[tcp,<ip>,<port>]. - Te testy mogą powodować pojawianie się dodatkowych komunikatów w plikach dziennika demona systemowego (zwykle rejestrowane są sesje SMTP i SSH).
Przykład:
net.tcp.port[,80] #tej pozycji można użyć do testowania dostępności serwera WWW działającego na porcie 80
net.tcp.service[service,<ip>,<port>]
Sprawdza, czy usługa działa i akceptuje połączenia TCP.
Zwracane wartości: 0 - usługa jest niedostępna; 1 - usługa działa.
Zobacz obsługiwane platformy.
Parametry:
- service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https lub telnet (zobacz szczegóły);
- ip - adres IP lub nazwa DNS (domyślnie 127.0.0.1);
- port - numer portu (domyślnie używany jest standardowy numer portu usługi).
Uwagi:
- Te testy mogą powodować pojawianie się dodatkowych komunikatów w plikach dziennika demonów systemowych (zwykle rejestrowane są sesje SMTP i SSH).
- Sprawdzanie szyfrowanych protokołów (takich jak IMAP na porcie 993 lub POP na porcie 995) nie jest obecnie obsługiwane.
Jako obejście należy użyć
net.tcp.port[]do takich testów. - Sprawdzanie LDAP i HTTPS w systemie Windows jest obsługiwane tylko przez Zabbix agent 2.
- Test telnet szuka monitu logowania (':' na końcu).
Przykład:
net.tcp.service[ftp,,45] #tej pozycji można użyć do testowania dostępności serwera FTP na porcie TCP 45
net.tcp.service.perf[service,<ip>,<port>]
Sprawdza wydajność usługi TCP.
Zwracane wartości: Float (0 - usługa jest niedostępna; sekundy - liczba sekund oczekiwania na odpowiedź od usługi).
Zobacz obsługiwane platformy.
Parametry:
- service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https lub telnet (zobacz szczegóły);
- ip - adres IP lub nazwa DNS (domyślnie 127.0.0.1);
- port - numer portu (domyślnie używany jest standardowy numer portu usługi).
Uwagi:
- Sprawdzanie szyfrowanych protokołów (takich jak IMAP na porcie 993 lub POP na porcie 995) nie jest obecnie obsługiwane.
Jako obejście, do takich kontroli użyj
net.tcp.service.perf[tcp,<ip>,<port>]. - Kontrola telnet szuka monitu logowania (':' na końcu).
Przykład:
net.tcp.service.perf[ssh] #ta pozycja może być użyta do testowania szybkości początkowej odpowiedzi z serwera SSH
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
Zwraca liczbę gniazd TCP pasujących do parametrów.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, Windows.
Parametry:
- laddr - lokalny adres IPv4/6 lub podsieć CIDR;
- lport - numer portu lokalnego lub nazwa usługi;
- raddr - zdalny adres IPv4/6 lub podsieć CIDR;
- rport - numer portu zdalnego lub nazwa usługi;
- state - stan połączenia (established, syn_sent, syn_recv, fin_wait1, fin_wait2, time_wait, close, close_wait, last_ack, listen, closing).
Przykład:
net.tcp.socket.count[,80,,,established] #liczba połączeń z lokalnym portem TCP 80 w stanie established
net.udp.listen[port]
Sprawdza, czy ten port UDP jest w stanie LISTEN.
Zwracane wartości: 0 - nie jest w stanie LISTEN; 1 - jest w stanie LISTEN.
Obsługiwane platformy: Linux, FreeBSD, Solaris, MacOS X.
Parametr:
- port - numer portu UDP
Przykład:
net.udp.listen[68]
net.udp.service[service,<ip>,<port>]
Sprawdza, czy usługa działa i odpowiada na żądania UDP.
Zwracane wartości: 0 - usługa jest niedostępna; 1 - usługa działa.
Zobacz obsługiwane platformy.
Parametry:
- service - ntp (zobacz szczegóły);
- ip - adres IP lub nazwa DNS (domyślnie 127.0.0.1);
- port - numer portu (domyślnie używany jest standardowy numer portu usługi).
Przykład:
net.udp.service[ntp,,45] #this item can be used to test the availability of NTP service on UDP port 45
net.udp.service.perf[service,<ip>,<port>]
Sprawdza wydajność usługi UDP.
Zwracane wartości: Float (0 - usługa jest niedostępna; sekundy - liczba sekund oczekiwania na odpowiedź z usługi).
Zobacz obsługiwane platformy.
Parametry:
- service - ntp (zobacz szczegóły);
- ip - adres IP lub nazwa DNS (domyślnie 127.0.0.1);
- port - numer portu (domyślnie używany jest standardowy numer portu usługi).
Przykład:
net.udp.service.perf[ntp] #tej pozycji można użyć do testowania czasu odpowiedzi usługi NTP
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
Zwraca liczbę gniazd UDP pasujących do parametrów.
Wartość zwracana: Integer.
Obsługiwane platformy: Linux, Windows.
Parametry:
- laddr - lokalny adres IPv4/6 lub podsieć CIDR;
- lport - numer portu lokalnego lub nazwa usługi;
- raddr - zdalny adres IPv4/6 lub podsieć CIDR;
- rport - numer portu zdalnego lub nazwa usługi;
- state - stan połączenia (established, unconn).
Przykład:
net.udp.socket.count[,,,,established] #zwraca liczbę gniazd UDP w stanie połączenia
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
Procent wykorzystania CPU procesu.
Zwracana wartość: Float.
Obsługiwane platformy: Linux, Solaris6.
Parametry:
- name - nazwa procesu (domyślnie wszystkie procesy);
- user - nazwa użytkownika (domyślnie wszyscy użytkownicy);
- type - typ wykorzystania CPU: total (domyślnie), user lub system;
- cmdline - filtrowanie według wiersza poleceń (jest to wyrażenie regularne);
- mode - tryb zbierania danych: avg1 (domyślnie), avg5 lub avg15;
- zone - docelowa strefa: current (domyślnie) lub all. Ten parametr jest obsługiwany tylko w systemie Solaris.
Komentarze:
- Zwracana wartość jest oparta na procencie wykorzystania pojedynczego rdzenia CPU. Na przykład wykorzystanie CPU przez proces w pełni używający dwóch rdzeni wynosi 200%.
- Dane o wykorzystaniu CPU procesu są zbierane przez kolektor, który obsługuje maksymalnie 1024 unikalne zapytania (według nazwy, użytkownika i wiersza poleceń). Zapytania, do których nie odwoływano się w ciągu ostatnich 24 godzin, są usuwane z kolektora.
- Jeśli parametr
zonejest ustawiony na current (lub domyślnie), a agent został skompilowany w systemie Solaris bez obsługi stref, ale działa na nowszym systemie Solaris, w którym strefy są obsługiwane, agent zwróci NOTSUPPORTED (agent nie może ograniczyć wyników tylko do bieżącej strefy). Jednak w takim przypadku all jest obsługiwane.
Przykłady:
proc.cpu.util[,root] #wykorzystanie CPU wszystkich procesów uruchomionych przez użytkownika "root"
proc.cpu.util[zabbix_server,zabbix] #wykorzystanie CPU wszystkich procesów zabbix_server uruchomionych przez użytkownika zabbix
proc.get[<name>,<user>,<cmdline>,<mode>]
Lista procesów systemu operacyjnego i ich parametrów.
Może być używana do wykrywania niskiego poziomu.
Zwracana wartość: ciąg JSON.
Obsługiwane platformy: Linux, FreeBSD, Windows, OpenBSD, NetBSD.
Parametry:
- name - nazwa procesu (domyślnie wszystkie procesy);
- user - nazwa użytkownika (domyślnie wszyscy użytkownicy);
- cmdline - filtrowanie według wiersza poleceń (jest to regularne wyrażenie). Ten parametr nie jest obsługiwany w systemie Windows; na innych platformach nie jest obsługiwany, jeśli mode jest ustawiony na 'summary'.
- mode - możliwe wartości:
process (domyślnie), thread (nieobsługiwane w NetBSD), summary. Zobacz listę parametrów procesu zwracanych dla każdego trybu i systemu operacyjnego.
Uwagi:
- Jeśli nie można pobrać wartości, na przykład z powodu błędu (proces już zakończył działanie, brak uprawnień, błąd wywołania systemowego), zostanie zwrócone
-1. - Zobacz uwagi dotyczące wybierania procesów za pomocą parametrów
nameicmdline(dotyczy tylko systemu Linux).
Przykłady:
proc.get[zabbix_server,zabbix,,process] #lista wszystkich procesów zabbix_server uruchomionych przez użytkownika zabbix, zwraca jeden wpis na PID
proc.get[java,,,thread] #lista wszystkich procesów Java, zwraca jeden wpis na wątek
proc.get[,zabbix,,summary] #połączone dane dla procesów każdego typu uruchomionych przez użytkownika zabbix, zwraca jeden wpis na nazwę procesu
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
Pamięć używana przez proces w bajtach.
Wartość zwracana: Integer - gdy mode ma wartość max, min, sum; Float - gdy mode ma wartość avg
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, OpenBSD, NetBSD.
Parametry:
- name - nazwa procesu (domyślnie wszystkie procesy);
- user - nazwa użytkownika (domyślnie wszyscy użytkownicy);
- mode - możliwe wartości: avg, max, min lub sum (domyślnie);
- cmdline - filtrowanie według linii poleceń (jest to regularne wyrażenie);
- memtype - typ pamięci używanej przez proces
Uwagi:
- Parametr
memtypejest obsługiwany tylko w systemach Linux, FreeBSD, Solaris6, AIX. - Gdy kilka procesów używa pamięci współdzielonej, suma pamięci używanej przez procesy może dawać duże, nierealistyczne wartości.
Zobacz uwagi dotyczące wybierania procesów za pomocą parametrównameicmdline(dotyczy tylko Linuxa).
Gdy ta pozycja jest wywoływana z wiersza poleceń i zawiera parametr linii poleceń (np. przy użyciu trybu testowego agent:zabbix_agentd -t proc.mem[,,,apache2]), zostanie zliczony jeden dodatkowy proces, ponieważ agent policzy również samego siebie.
Przykłady:
proc.mem[,root] #pamięć używana przez wszystkie procesy uruchomione przez użytkownika "root"
proc.mem[zabbix_server,zabbix] #pamięć używana przez wszystkie procesy zabbix_server uruchomione przez użytkownika zabbix
proc.mem[,oracle,max,oracleZABBIX] #pamięć używana przez proces zużywający najwięcej pamięci, uruchomiony przez użytkownika Oracle i mający oracleZABBIX w linii poleceń
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
Liczba procesów.
Wartość zwracana: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris6, HP-UX, AIX, OpenBSD, NetBSD, Windows.
Parametry:
- name - nazwa procesu (domyślnie all processes);
- user - nazwa użytkownika (domyślnie all users);
- state - możliwe wartości:
all (domyślnie),
disk - nieprzerywalny sen,
run - uruchomiony,
sleep - przerywalny sen,
trace - zatrzymany,
zomb - zombie; - cmdline - filtruj według linii poleceń (jest to wyrażenie regularne expression);
- zone - strefa docelowa: current (domyślnie) lub all. Ten parametr jest obsługiwany tylko w Solaris.
Komentarze:
- Parametry stanu disk i trace są obsługiwane tylko w Linux, FreeBSD, OpenBSD, NetBSD.
- W Windows obsługiwane są tylko parametry
nameiuser. - Gdy ta pozycja jest wywoływana z wiersza poleceń i zawiera parametr linii poleceń (np. przy użyciu trybu testowego agent:
zabbix_agentd -t proc.num[,,,apache2]), zostanie zliczony jeden dodatkowy proces, ponieważ agent policzy również siebie. - Ustawienie parametru
zonena current (lub domyślnie) w przypadku, gdy agent został skompilowany w Solaris bez obsługi stref, ale działa na nowszym Solaris, gdzie strefy są obsługiwane, spowoduje zwrócenie NOTSUPPORTED (agent nie może ograniczyć wyników wyłącznie do bieżącej strefy). Jednak all jest w tym przypadku obsługiwane. - Zobacz uwagi dotyczące wybierania procesów za pomocą parametrów
nameicmdline(dotyczy tylko Linux).
Przykłady:
proc.num[,mysql] #liczba procesów uruchomionych pod użytkownikiem mysql
proc.num[apache2,www-data] #liczba procesów apache2 uruchomionych pod użytkownikiem www-data
proc.num[,oracle,sleep,oracleZABBIX] #liczba procesów w stanie sleep uruchomionych pod Oracle, mających oracleZABBIX w linii poleceń
sensor[device,sensor,<mode>]
Odczyt czujnika sprzętowego.
Zwracana wartość: Float.
Obsługiwane platformy: Linux, OpenBSD.
Parametry:
- device - nazwa urządzenia;
- sensor - nazwa czujnika;
- mode - możliwe wartości: avg, max lub min.
Uwagi:
- Odczytuje /proc/sys/dev/sensors w systemie Linux 2.4.
- Odczytuje /sys/class/hwmon w systemie Linux 2.6+. Zobacz bardziej szczegółowy opis pozycji sensor w systemie Linux.
- Odczytuje MIB hw.sensors w systemie OpenBSD.
- W systemie Linux 2.4, jeśli określisz mode, wtedy device i sensor są traktowane jako wyrażenia regularne.
- W systemach Linux 2.6+ i OpenBSD lub jeśli mode zostanie pominięty, device i sensor są traktowane dosłownie.
Przykłady:
sensor[w83781d-i2c-0-2d,temp1]
sensor[cpu0,temp0] #the temperature of one CPU
sensor["cpu[0-2]$",temp,avg] #the average temperature of the first three CPUs
system.boottime
Czas uruchomienia systemu.
Zwracana wartość: Liczba całkowita (znacznik czasu Unix).
Obsługiwane platformy: Linux, FreeBSD, Solaris, MacOS X, OpenBSD, NetBSD.
system.cpu.discovery
Lista wykrytych procesorów CPU/rdzeni CPU.
Używana do wykrywania niskiego poziomu.
Zwracana wartość: ciąg JSON.
Zobacz obsługiwane platformy.
system.cpu.intr
Przerwania urządzenia.
Zwracana wartość: Liczba całkowita.
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, OpenBSD, NetBSD.
system.cpu.load[<cpu>,<mode>]
Obciążenie CPU.
Zwracana wartość: Float.
Zobacz obsługiwane platformy.
Parametry:
- cpu — możliwe wartości: all (domyślnie) lub percpu (całkowite obciążenie podzielone przez liczbę aktywnych CPU);
- mode — możliwe wartości: avg1 (średnia z jednej minuty, domyślnie), avg5 lub avg15.
Przykład:
system.cpu.load[,avg5]
system.cpu.num[<type>]
Liczba procesorów.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
Parametr:
- type — możliwe wartości: online (domyślnie) lub max
Parametr typu max jest obsługiwany tylko w systemach Linux, FreeBSD, Solaris, MacOS X.
Przykład:
system.cpu.num
system.cpu.switches
Liczba przełączeń kontekstu.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, OpenBSD, NetBSD.
system.cpu.util[<cpu>,<type>,<mode>,<logical or physical>]
Procent wykorzystania CPU.
Zwracana wartość: Float.
Obsługiwane platformy: Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD, Windows.
Parametry:
- cpu - <numer CPU> lub all (domyślnie);
- type - możliwe wartości: user (domyślnie), idle, nice, system, iowait, interrupt, softirq, steal, spin (w OpenBSD), guest (w jądrach Linux 2.6.24 i nowszych) lub guest_nice (w jądrach Linux 2.6.33 i nowszych);
- mode - możliwe wartości: avg1 (średnia jednominutowa, domyślnie), avg5 lub avg15;
- logical or physical - możliwe wartości: logical (domyślnie) lub physical. Ten parametr jest obsługiwany tylko w AIX.
Uwagi:
- Parametr typu nice jest obsługiwany tylko w systemach Linux, FreeBSD, HP-UX, OpenBSD, NetBSD.
- Parametr typu iowait jest obsługiwany tylko w systemach Linux 2.6 i nowszych, Solaris, AIX.
- Parametr typu interrupt jest obsługiwany tylko w systemach Linux 2.6 i nowszych, FreeBSD, OpenBSD.
- Parametry typu softirq, steal, guest, guest_nice są obsługiwane tylko w systemach Linux 2.6 i nowszych.
- Parametry trybu avg5 i avg15 są obsługiwane w systemach Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD.
Przykład:
system.cpu.util[0,user,avg5]
system.hostname[<type>,<transform>]
Nazwa hosta systemu.
Zwracana wartość: String.
Zobacz obsługiwane platformy.
Parametry:
- type - możliwe wartości: netbios (domyślnie w systemie Windows), host (domyślnie w systemie Linux), shorthost (zwraca część nazwy hosta przed pierwszą kropką, pełny ciąg dla nazw bez kropek), fqdn (zwraca w pełni kwalifikowaną nazwę domenową, Fully Qualified Domain Name);
- transform - możliwe wartości: none (domyślnie) lub lower (konwertuje na małe litery).
Wartość jest pobierana z nodename w danych wyjściowych systemowego API uname().
Przykłady zwracanych wartości:
system.hostname → linux-w7x1
system.hostname → example.com
system.hostname[shorthost] → example
system.hostname → WIN-SERV2008-I6
system.hostname[host] → Win-Serv2008-I6LonG
system.hostname[host,lower] → win-serv2008-i6long
system.hostname[fqdn,lower] → blog.zabbix.com
system.hw.chassis[<info>]
Informacje o obudowie.
Zwracana wartość: String.
Obsługiwane platformy: Linux.
Parametr:
- info - możliwe wartości: full (domyślnie), model, serial, type lub vendor
Uwagi:
- Ten klucz pozycji zależy od dostępności tabeli SMBIOS.
- Nastąpi próba odczytu tabeli DMI z sysfs; jeśli dostęp do sysfs się nie powiedzie, zostanie podjęta próba bezpośredniego odczytu z pamięci.
- Wymagane są uprawnienia root, ponieważ wartość jest uzyskiwana przez odczyt z sysfs lub pamięci.
Przykład:
system.hw.chassis[full] → Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop
system.hw.cpu[<cpu>,<info>]
Informacje o CPU.
Zwracana wartość: String lub Integer.
Obsługiwane platformy: Linux.
Parametry:
- cpu — <numer CPU> lub all (domyślnie);
- info — możliwe wartości: full (domyślnie), curfreq, maxfreq, model lub vendor.
Uwagi:
- Zbiera informacje z
/proc/cpuinfooraz/sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq. - Jeśli podano numer CPU oraz curfreq lub maxfreq, zwracana jest wartość liczbowa (Hz).
Przykład:
system.hw.cpu[0,vendor] → AuthenticAMD
system.hw.devices[<type>]
Lista urządzeń PCI lub USB.
Zwracana wartość: Tekst.
Obsługiwane platformy: Linux.
Parametr:
- type - pci (domyślnie) lub usb
Zwraca dane wyjściowe narzędzia lspci lub lsusb (uruchamianego bez żadnych parametrów).
Przykład:
system.hw.devices → 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
system.hw.macaddr[<interface>,<format>]
Lista adresów MAC.
Zwracana wartość: String.
Obsługiwane platformy: Linux.
Parametry:
- interface - all (domyślnie) lub regularne wyrażenie;
- format - full (domyślnie) lub short
Uwagi:
- Wyświetla adresy MAC interfejsów, których nazwa pasuje do podanego regularnego wyrażenia
interface(all wyświetla dla wszystkich interfejsów). - Jeśli
formatjest określony jako short, nazwy interfejsów i identyczne adresy MAC nie są wyświetlane.
Przykład:
system.hw.macaddr["eth0$",full] → [eth0] 00:11:22:33:44:55
system.localtime[<type>]
Czas systemowy.
Zwracana wartość: Integer - gdy type ma wartość utc; String - gdy type ma wartość local.
Zobacz obsługiwane platformy.
Parametry:
- type - możliwe wartości: utc - (domyślnie) czas od Epoki (00:00:00 UTC, 1 stycznia 1970), mierzony w sekundach, lub local - czas w formacie 'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm'
Musi być używane jako sprawdzenie pasywne dla Zabbix agent; w Zabbix agent 2 może być skonfigurowane jako sprawdzenie aktywne.
Przykład:
system.localtime[local] #utwórz pozycja używając tego klucza, a następnie użyj jej do wyświetlenia czasu hosta w widżecie pulpitu *Clock*.
system.run[command,<mode>]
Uruchamia określone polecenie na hoście.
Zwracana wartość: wynik Text polecenia lub 1 - przy mode ustawionym na nowait (niezależnie od wyniku polecenia).
Zobacz obsługiwane platformy.
Parametry:
- command - polecenie do wykonania;
- mode - możliwe wartości: wait - czekaj na zakończenie wykonania (domyślnie) lub nowait - nie czekaj.
Uwagi:
- Ta pozycja jest domyślnie wyłączona. Dowiedz się, jak włączyć je.
- Zwracana wartość pozycji to standardowe wyjście wraz ze standardowym błędem wygenerowanym przez polecenie. Sprawdzanie kodu zakończenia nie jest wykonywane.
- Aby przetwarzanie przebiegało poprawnie, zwracana wartość polecenia musi mieć typ danych
text. Pusty wynik jest również dozwolony. - Zwracana wartość jest ograniczona do 16 MB (w tym końcowe białe znaki, które są obcinane); obowiązują również limity bazy danych.
- Zobacz także: Wykonywanie poleceń.
Przykład:
system.run[ls -l /] #zwraca szczegółową listę plików katalogu głównego
system.stat[resource,<type>]
Statystyki systemu.
Zwracana wartość: Integer lub float.
Obsługiwane platformy: AIX.
Parametry:
- ent - liczba jednostek procesora, do których ta partycja jest uprawniona (float);
- kthr,<type> - informacje o stanach wątków jądra:
r - średnia liczba wątków jądra gotowych do uruchomienia (float)
b - średnia liczba wątków jądra umieszczonych w kolejce oczekiwania Menedżera Pamięci Wirtualnej (float) - memory,<type> - informacje o użyciu pamięci wirtualnej i rzeczywistej:
avm - aktywne strony wirtualne (integer)
fre - rozmiar listy wolnych stron (integer) - page,<type> - informacje o błędach stron i aktywności stronicowania:
fi - liczba stron plików wczytanych na sekundę (float)
fo - liczba stron plików zapisanych na sekundę (float)
pi - strony wczytane z przestrzeni stronicowania (float)
po - strony zapisane do przestrzeni stronicowania (float)
fr - zwolnione strony (zastępowanie stron) (float)
sr - strony przeskanowane przez algorytm zastępowania stron (float) - faults,<type> - częstotliwość pułapek i przerwań:
in - przerwania urządzeń (float)
sy - wywołania systemowe (float)
cs - przełączenia kontekstu wątków jądra (float) - cpu,<type> - podział procentowego wykorzystania czasu procesora:
us - czas użytkownika (float)
sy - czas systemowy (float)
id - czas bezczynności (float)
wa - czas bezczynności, podczas którego system miał oczekujące żądania wejścia/wyjścia dysku/NFS (float)
pc - liczba wykorzystanych fizycznych procesorów (float)
ec - procent wykorzystanej przydzielonej mocy obliczeniowej (float)
lbusy - wskazuje procent wykorzystania procesorów logicznych, który wystąpił podczas wykonywania na poziomie użytkownika i systemu (float)
app - wskazuje dostępne procesory fizyczne we wspólnej puli (float) - disk,<type> - statystyki dysku:
bps - wskazuje ilość danych przesłanych (odczytanych lub zapisanych) na dysk w bajtach na sekundę (integer)
tps - wskazuje liczbę transferów na sekundę skierowanych do fizycznego dysku/taśmy (float)
Uwagi:
- Zwróć uwagę na następujące ograniczenia tych pozycji:
system.stat[cpu,app]- obsługiwane tylko w AIX LPAR typu "Shared";
system.stat[cpu,ec]- obsługiwane w AIX LPAR typu "Shared" i "Dedicated" ("Dedicated" zawsze zwraca 100 (procent));
system.stat[cpu,lbusy]- obsługiwane tylko w AIX LPAR typu "Shared";
system.stat[cpu,pc]- obsługiwane w AIX LPAR typu "Shared" i "Dedicated";
system.stat[ent]- obsługiwane w AIX LPAR typu "Shared" i "Dedicated".
system.sw.arch
Informacja o architekturze oprogramowania.
Zwracana wartość: String.
Zobacz obsługiwane platformy.
Informacja jest pobierana za pomocą funkcji uname().
Przykład:
system.sw.arch → i686
system.sw.os[<info>]
Informacje o systemie operacyjnym.
Zwracana wartość: String.
Obsługiwane platformy: Linux, Windows.
Parametr:
- info - możliwe wartości: full (domyślnie), short lub name
Informacje są pobierane z (należy pamiętać, że nie wszystkie pliki i opcje są obecne we wszystkich dystrybucjach):
/proc/version(full) w systemie Linux;/proc/version_signature(short) w systemie Linux;- parametr PRETTY_NAME z
/etc/os-releasew systemach Linux, które go obsługują, lub/etc/issue.net(name); - klucz rejestru
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersionw systemie Windows.
Przykłady:
system.sw.os[short] → Ubuntu 2.6.35-28.50-generic 2.6.35.11
system.sw.os[full] → [s|Windows 10 Enterprise 22621.1.asd64fre.ni_release.220506-1250 Build 22621.963]
system.sw.os.get
Szczegółowe informacje o systemie operacyjnym (wersja, typ, nazwa dystrybucji, wersja główna i pomocnicza itp.).
Zwracana wartość: ciąg JSON.
Obsługiwane platformy: Linux, Windows.
system.sw.packages[<regexp>,<manager>,<format>]
Lista zainstalowanych pakietów.
Wartość zwracana: Text.
Obsługiwane platformy: Linux.
Parametry:
- regexp - all (domyślnie) lub wyrażenie regularne expression;
- manager - all (domyślnie) lub menedżer pakietów;
- format - full (domyślnie) lub short.
Uwagi:
- Wyświetla alfabetycznie zainstalowane pakiety, których nazwa pasuje do podanego wyrażenia regularnego expression (all wyświetla wszystkie).
- Obsługiwane menedżery pakietów (wykonywane polecenie):
dpkg (dpkg --get-selections)
pkgtool (ls /var/log/packages)
rpm (rpm -qa)
pacman (pacman -Q)
portage - Jeśli
formatma wartość full, pakiety są grupowane według menedżerów pakietów (każdy menedżer w osobnym wierszu rozpoczynającym się od jego nazwy w nawiasach kwadratowych). - Jeśli
formatma wartość short, pakiety nie są grupowane i są wyświetlane w jednym wierszu.
Przykład:
system.sw.packages[mini,dpkg,short] → python-minimal, python2.6-minimal, ubuntu-minimal
system.sw.packages.get[<regexp>,<manager>]
Szczegółowa lista zainstalowanych pakietów.
Wartość zwracana: ciąg JSON.
Obsługiwane platformy: Linux.
Parametry:
- regexp — all (domyślnie) lub regularne wyrażenie;
- manager — all (domyślnie) lub menedżer pakietów (możliwe wartości: rpm, dpkg, pkgtool, pacman lub portage).
Uwagi:
- Zwraca niesformatowany JSON z zainstalowanymi pakietami, których nazwa pasuje do podanego wyrażenia regularnego.
- Dane wyjściowe są tablicą obiektów, z których każdy zawiera następujące klucze: name, manager, version, size, architecture, buildtime oraz installtime (zobacz więcej szczegółów).
system.swap.in[<device>,<type>]
Statystyki swap-in (z urządzenia do pamięci).
Wartość zwracana: Integer.
Obsługiwane platformy: Linux, FreeBSD, OpenBSD.
Parametry:
- device - określa urządzenie używane do swapowania (tylko Linux) lub all (domyślnie);
- type - możliwe wartości: count (liczba swapinów, domyślnie na platformach innych niż Linux), sectors (sektory wczytane do swap), lub pages (strony wczytane do swap, domyślnie na Linux).
Komentarze:
- Źródłem tych informacji są:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6) - Należy pamiętać, że pages będzie działać tylko wtedy, gdy nie określono device.
- Parametr typu sectors jest obsługiwany tylko na Linux.
Przykład:
system.swap.in[,pages]
system.swap.out[<device>,<type>]
Statystyki swap-out (z pamięci na urządzenie).
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, OpenBSD.
Parametry:
- device - określa urządzenie używane do swapowania (tylko Linux) lub all (domyślnie);
- type - możliwe wartości: count (liczba operacji swap-out, domyślnie na platformach innych niż Linux), sectors (sektory przeniesione do obszaru wymiany) lub pages (strony przeniesione do obszaru wymiany, domyślnie w systemie Linux).
Uwagi:
- Źródłem tych informacji są:
/proc/swaps,/proc/partitions,/proc/stat(Linux 2.4)/proc/swaps,/proc/diskstats,/proc/vmstat(Linux 2.6) - Należy pamiętać, że pages będzie działać tylko wtedy, gdy nie określono urządzenia.
- Parametr typu sectors jest obsługiwany tylko w systemie Linux.
Przykład:
system.swap.out[,pages]
system.swap.size[<device>,<type>]
Rozmiar przestrzeni wymiany w bajtach lub jako procent całości.
Zwracana wartość: Integer - dla bajtów; Float - dla wartości procentowej.
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, OpenBSD, Windows.
Parametry:
- device - określa urządzenie używane do swapu (tylko FreeBSD) lub all (domyślnie);
- type - możliwe wartości: free (wolna przestrzeń wymiany, domyślnie), pfree (wolna przestrzeń wymiany, w procentach), pused (używana przestrzeń wymiany, w procentach), total (całkowita przestrzeń wymiany) lub used (używana przestrzeń wymiany).
Uwagi:
- Należy pamiętać, że pfree, pused nie są obsługiwane w systemie Windows, jeśli rozmiar swapu wynosi 0.
- Jeśli urządzenie nie zostanie określone, agent Zabbix uwzględni tylko urządzenia (pliki) swapu, a pamięć fizyczna zostanie pominięta.
Na przykład w systemach Solaris polecenie
swap -suwzględnia część pamięci fizycznej oraz urządzenia swapu (w przeciwieństwie doswap -l).
Przykład:
system.swap.size[,pfree] → procent wolnej przestrzeni wymiany
system.uname
Identyfikacja systemu.
Zwracana wartość: String.
Zobacz obsługiwane platformy.
Uwagi:
- W systemach UNIX wartość tej pozycji jest uzyskiwana za pomocą wywołania systemowego uname().
- W systemie Windows pozycja zwraca architekturę systemu operacyjnego, natomiast w systemach UNIX zwraca architekturę CPU.
Przykłady:
system.uname → FreeBSD localhost 4.2-RELEASE FreeBSD 4.2-RELEASE #0: Mon Nov i386
system.uname → Windows ZABBIX-WIN 6.0.6001 Microsoft® Windows Server® 2008 Standard Service Pack 1 x86
system.uptime
Czas działania systemu w sekundach.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD, Windows.
W konfiguracji pozycji użyj jednostek s lub uptime, aby uzyskać czytelne wartości.
system.users.num
Liczba zalogowanych użytkowników.
Wartość zwracana: Integer.
Zobacz obsługiwane platformy.
Do uzyskania tej wartości po stronie agent używane jest polecenie who.
vfs.dev.discovery
Lista urządzeń blokowych i ich typów.
Używane do wykrywania niskiego poziomu.
Wartość zwracana: ciąg JSON.
Obsługiwane platformy: Linux.
vfs.dev.read[<device>,<type>,<mode>]
Statystyki odczytu dysku.
Wartość zwracana: Integer - dla type ustawionego na sectors, operations, bytes; Float - dla type ustawionego na sps, ops, bps.
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, OpenBSD.
Parametry:
- device - urządzenie dyskowe (domyślnie all 3);
- type - możliwe wartości: sectors, operations, bytes, sps, ops lub bps (sps, ops, bps oznaczają odpowiednio: sektory, operacje, bajty na sekundę);
- mode - możliwe wartości: avg1 (średnia z jednej minuty, domyślnie), avg5 lub avg15.
Ten parametr jest obsługiwany tylko przy
typeustawionym na: sps, ops, bps.
Uwagi:
- Jeśli używany jest interwał aktualizacji wynoszący trzy godziny lub więcej2, ta pozycja zawsze zwróci '0'.
- Parametry typu sectors i sps są obsługiwane tylko w systemie Linux.
- Parametr typu ops jest obsługiwany tylko w systemach Linux i FreeBSD.
- Parametr typu bps jest obsługiwany tylko w systemie FreeBSD.
- Parametr typu bytes jest obsługiwany tylko w systemach FreeBSD, Solaris, AIX, OpenBSD.
- Parametr
modejest obsługiwany tylko w systemach Linux, FreeBSD. - Można używać nazw względnych urządzeń (na przykład
sda) oraz opcjonalnego prefiksu /dev/ (na przykład/dev/sda). - Obsługiwane są logiczne woluminy LVM.
- Domyślne wartości parametru 'type' dla różnych systemów operacyjnych:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - sps, ops i bps na obsługiwanych platformach są ograniczone do 1024 urządzeń (1023 indywidualnych i jednego dla all).
Przykład:
vfs.dev.read[,operations]
vfs.dev.write[<device>,<type>,<mode>]
Statystyki zapisu na dysku.
Wartość zwracana: Integer - dla type w sectors, operations, bytes; Float - dla type w sps, ops, bps.
Obsługiwane platformy: Linux, FreeBSD, Solaris, AIX, OpenBSD.
Parametry:
- device - urządzenie dyskowe (domyślnie all 3);
- type - możliwe wartości: sectors, operations, bytes, sps, ops lub bps (sps, ops, bps oznaczają odpowiednio: sektory, operacje, bajty na sekundę);
- mode - możliwe wartości: avg1 (średnia z jednej minuty, domyślnie), avg5 lub avg15.
Ten parametr jest obsługiwany tylko wtedy, gdy
typema wartość: sps, ops, bps.
Uwagi:
- Jeśli używany jest interwał aktualizacji wynoszący trzy godziny lub więcej2, ta pozycja zawsze zwróci '0'.
- Parametry typu sectors i sps są obsługiwane tylko w systemie Linux.
- Parametr typu ops jest obsługiwany tylko w systemie Linux i FreeBSD.
- Parametr typu bps jest obsługiwany tylko w systemie FreeBSD.
- Parametr typu bytes jest obsługiwany tylko w systemie FreeBSD, Solaris, AIX, OpenBSD.
- Parametr
modejest obsługiwany tylko w systemie Linux, FreeBSD. - Można używać nazw urządzeń względnych (na przykład
sda) oraz opcjonalnego prefiksu /dev/ (na przykład/dev/sda). - Obsługiwane są logiczne woluminy LVM.
- Wartości domyślne parametru 'type' dla różnych systemów operacyjnych:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - sps, ops i bps na obsługiwanych platformach są ograniczone do 1024 urządzeń (1023 pojedynczych i jednego dla all).
Przykład:
vfs.dev.write[,operations]
vfs.dir.count[dir,<regex incl>,<regex excl>,<types incl>,<types excl>,<max depth>,<min size>,<max size>,<min age>,<max age>,<regex excl dir>]
Liczba wpisów w katalogu.
Zwracana wartość: Integer.
Zobacz obsługiwane platformy.
Parametry:
- dir - bezwzględna ścieżka do katalogu;
- regex incl - wyrażenie regularne expression opisujące wzorzec nazwy encji (pliku, katalogu, dowiązania symbolicznego), które mają zostać uwzględnione; jeśli jest puste, uwzględniane są wszystkie encje (wartość domyślna);
- regex excl - wyrażenie regularne expression opisujące wzorzec nazwy encji (pliku, katalogu, dowiązania symbolicznego), które mają zostać wykluczone; jeśli jest puste, żadna encja nie jest wykluczana (wartość domyślna);
- types incl - typy wpisów katalogu, które mają być zliczane; możliwe wartości: file - zwykły plik, dir - podkatalog, sym - dowiązanie symboliczne, sock - gniazdo, bdev - urządzenie blokowe, cdev - urządzenie znakowe, fifo - FIFO, dev - synonim „bdev,cdev”, all - wszystkie typy (domyślnie), tj. „file,dir,sym,sock,bdev,cdev,fifo”. Wiele typów należy oddzielić przecinkami i ująć w cudzysłowy.
- types excl - typy wpisów katalogu (zobacz
types incl), które NIE mają być zliczane. Jeśli dany typ wpisu znajduje się zarówno wtypes incl, jak itypes excl, wpisy katalogu tego typu NIE są zliczane. - max depth - maksymalna głębokość podkatalogów, które mają być przeszukiwane:
-1 (domyślnie) - bez ograniczeń,
0 - bez przechodzenia do podkatalogów. - min size - minimalny rozmiar (w bajtach) pliku, który ma zostać zliczony. Mniejsze pliki nie będą zliczane. Można używać sufiksów rozmiaru pamięci.
- max size - maksymalny rozmiar (w bajtach) pliku, który ma zostać zliczony. Większe pliki nie będą zliczane. Można używać sufiksów rozmiaru pamięci.
- min age - minimalny wiek (w sekundach) wpisu katalogu, który ma zostać zliczony. Nowsze wpisy nie będą zliczane. Można używać sufiksów czasu.
- max age - maksymalny wiek (w sekundach) wpisu katalogu, który ma zostać zliczony. Wpisy w tym wieku i starsze nie będą zliczane (czas modyfikacji). Można używać sufiksów czasu.
- regex excl dir - wyrażenie regularne expression opisujące wzorzec nazwy katalogu, który ma zostać wykluczony.
Cała zawartość katalogu zostanie wykluczona (w przeciwieństwie do
regex_excl).
Uwagi:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Zmienne środowiskowe, np. %APP_HOME%, $HOME i %TEMP%, nie są obsługiwane.
- Pseudokatalogi „.” i „..” nigdy nie są zliczane.
- Podczas przechodzenia przez katalogi dowiązania symboliczne nigdy nie są śledzone.
- Zarówno
regex incl, jak iregex exclsą stosowane do plików i katalogów podczas obliczania liczby wpisów, ale są ignorowane przy wyborze podkatalogów do przeszukania (jeśliregex inclma wartość „(?i)^.+\.zip$”, amax depthnie jest ustawione, przeszukiwane będą wszystkie podkatalogi, ale zliczane będą tylko pliki typu zip). - Czas wykonania jest ograniczony wartością limitu czasu określoną w konfiguracji agent (3 sek.). Ponieważ przeszukiwanie dużego katalogu może trwać dłużej, dane nie zostaną zwrócone, a pozycja stanie się nieobsługiwana. Częściowa liczba nie zostanie zwrócona.
- Podczas filtrowania według rozmiaru tylko zwykłe pliki mają znaczące rozmiary.
W systemach Linux i BSD katalogi również mają rozmiary różne od zera (zwykle kilka KB).
Urządzenia mają rozmiar równy zero, np. rozmiar /dev/sda1 nie odzwierciedla rozmiaru odpowiedniej partycji.
Dlatego podczas używania
<min_size>i<max_size>zaleca się określenie<types_incl>jako „file”, aby uniknąć nieoczekiwanych wyników.
Przykłady:
vfs.dir.count[/dev] #monitoruje liczbę urządzeń w /dev (Linux)
vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] #monitoruje liczbę plików w katalogu tymczasowym
vfs.dir.get[dir,<regex incl>,<regex excl>,<types incl>,<types excl>,<max depth>,<min size>,<max size>,<min age>,<max age>,<regex excl dir>]
Lista wpisów katalogu.
Zwracana wartość: ciąg JSON.
Zobacz obsługiwane platformy.
Parametry:
- dir - bezwzględna ścieżka do katalogu;
- regex incl - wyrażenie regularne expression opisujące wzorzec nazwy jednostki (pliku, katalogu, dowiązania symbolicznego), która ma zostać uwzględniona; jeśli jest puste, uwzględniane są wszystkie jednostki (wartość domyślna);
- regex excl - wyrażenie regularne expression opisujące wzorzec nazwy jednostki (pliku, katalogu, dowiązania symbolicznego), która ma zostać wykluczona; jeśli jest puste, żadna jednostka nie jest wykluczana (wartość domyślna);
- types incl - typy wpisów katalogu, które mają zostać wyświetlone; możliwe wartości: file - zwykły plik, dir - podkatalog, sym - dowiązanie symboliczne, sock - gniazdo, bdev - urządzenie blokowe, cdev - urządzenie znakowe, fifo - FIFO, dev - synonim „bdev,cdev”, all - wszystkie typy (domyślnie), tj. „file,dir,sym,sock,bdev,cdev,fifo”. Wiele typów należy oddzielić przecinkiem i ująć w cudzysłów.
- types excl - typy wpisów katalogu (zobacz
types incl), które NIE mają zostać wyświetlone. Jeśli dany typ wpisu znajduje się zarówno wtypes incl, jak itypes excl, wpisy katalogu tego typu NIE zostaną wyświetlone. - max depth - maksymalna głębokość podkatalogów, które mają zostać przeszukane:
-1 (domyślnie) - bez ograniczeń,
0 - bez przechodzenia do podkatalogów. - min size - minimalny rozmiar (w bajtach) pliku, który ma zostać wyświetlony. Mniejsze pliki nie zostaną wyświetlone. Można używać przyrostków pamięci.
- max size - maksymalny rozmiar (w bajtach) pliku, który ma zostać wyświetlony. Większe pliki nie zostaną wyświetlone. Można używać przyrostków pamięci.
- min age - minimalny wiek (w sekundach) wpisu katalogu, który ma zostać wyświetlony. Nowsze wpisy nie zostaną wyświetlone. Można używać przyrostków czasu.
- max age - maksymalny wiek (w sekundach) wpisu katalogu, który ma zostać wyświetlony. Wpisy tak stare i starsze nie zostaną wyświetlone (czas modyfikacji). Można używać przyrostków czasu.
- regex excl dir - wyrażenie regularne expression opisujące wzorzec nazwy katalogu, który ma zostać wykluczony.
Cała zawartość katalogu zostanie wykluczona (w przeciwieństwie do
regex excl).
Uwagi:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Zmienne środowiskowe, np. %APP_HOME%, $HOME i %TEMP%, nie są obsługiwane.
- Pseudokatalogi „.” i „..” nigdy nie są wyświetlane.
- Podczas przechodzenia przez katalogi dowiązania symboliczne nigdy nie są śledzone.
- Zarówno
regex incl, jak iregex exclsą stosowane do plików i katalogów podczas generowania listy wpisów, ale są ignorowane przy wyborze podkatalogów do przeszukania (jeśliregex inclma wartość „(?i)^.+\.zip$”, amax depthnie jest ustawione, przeszukiwane będą wszystkie podkatalogi, ale zliczane będą tylko pliki typu zip). - Czas wykonania jest ograniczony wartością limitu czasu określoną w konfiguracji agent. Ponieważ przeszukanie dużego katalogu może potrwać dłużej, dane nie zostaną zwrócone, a pozycja stanie się nieobsługiwana. Nie zostanie zwrócona częściowa lista.
- Podczas filtrowania według rozmiaru znaczące rozmiary mają tylko zwykłe pliki.
W systemach Linux i BSD katalogi również mają rozmiary różne od zera (zwykle kilka KB).
Urządzenia mają rozmiar równy zero, np. rozmiar /dev/sda1 nie odzwierciedla rozmiaru odpowiedniej partycji.
Dlatego podczas używania
min sizeimax sizezaleca się określenietypes incljako „file”, aby uniknąć nieoczekiwanych wyników.
Przykłady:
vfs.dir.get[/dev] #pobiera listę urządzeń w /dev (Linux)
vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #pobiera listę plików w katalogu tymczasowym
vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]
Rozmiar katalogu (w bajtach).
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, Windows.
Ta pozycja może działać także na innych platformach typu UNIX.
Parametry:
- dir - ścieżka bezwzględna do katalogu;
- regex incl - wyrażenie regularne opisujące wzorzec nazwy encji (pliku, katalogu, dowiązania symbolicznego), która ma zostać uwzględniona; jeśli puste, uwzględniane są wszystkie (wartość domyślna);
- regex excl - wyrażenie regularne opisujące wzorzec nazwy encji (pliku, katalogu, dowiązania symbolicznego), która ma zostać wykluczona; jeśli puste, nic nie jest wykluczane (wartość domyślna);
- mode - możliwe wartości: apparent (domyślnie) - pobiera pozorne rozmiary plików zamiast użycia dysku (działa jak
du -sb dir), disk - pobiera użycie dysku (działa jakdu -s -B1 dir). W przeciwieństwie do poleceniadu, pozycja vfs.dir.size uwzględnia ukryte pliki przy obliczaniu rozmiaru katalogu (działa jakdu -sb .[^.]* *w obrębie dir). - max depth - maksymalna głębokość przeszukiwanych podkatalogów: -1 (domyślnie) - bez ograniczeń, 0 - bez schodzenia do podkatalogów.
- regex excl dir - wyrażenie regularne opisujące wzorzec nazwy katalogu, który ma zostać wykluczony.
Cała zawartość katalogu zostanie wykluczona (w przeciwieństwie do
regex excl)
Uwagi:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Obliczane są tylko katalogi, do których użytkownik zabbix ma co najmniej uprawnienie odczytu. Dla katalogów mających tylko uprawnienie odczytu obliczany jest rozmiar samego katalogu. Dla katalogów mających uprawnienia odczytu i wykonania obliczany jest rozmiar wraz z zawartością.
- W przypadku dużych katalogów lub wolnych dysków dla tej pozycji może wystąpić przekroczenie czasu z powodu ustawienia Timeout w plikach konfiguracyjnych agent oraz serwer/proxy. W razie potrzeby zwiększ wartości timeout.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykłady:
vfs.dir.size[/tmp,log] #oblicza rozmiar wszystkich plików w /tmp zawierających 'log' w nazwie
vfs.dir.size[/tmp,log,^.+\.old$] #oblicza rozmiar wszystkich plików w /tmp zawierających 'log' w nazwie, z wyłączeniem plików o nazwach kończących się na '.old'
vfs.file.cksum[file,<mode>]
Suma kontrolna pliku, obliczana za pomocą algorytmu UNIX cksum.
Zwracana wartość: Integer - gdy mode to crc32, String - gdy mode to md5, sha256.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- mode - crc32 (domyślnie), md5 lub sha256.
Uwagi:
- W systemie Windows ta pozycja podąża za ścieżkami UNC, co może stanowić zagrożenie bezpieczeństwa.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykład:
vfs.file.cksum[/etc/passwd]
Przykłady zwracanych wartości (odpowiednio crc32/md5/sha256):
675436101
9845acf68b73991eb7fd7ee0ded23c44
ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc
vfs.file.contents[file,<encoding>]
Pobieranie zawartości pliku7.
Wartość zwracana: Text.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- encoding - identyfikator strony kodowej identyfikator.
Komentarze:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Wartość zwracana jest ograniczona do 16 MB (w tym końcowe białe znaki, które są obcinane); obowiązują również limity bazy danych.
- Zwracany jest pusty ciąg, jeśli plik jest pusty lub zawiera wyłącznie znaki LF/CR.
- Znacznik kolejności bajtów (BOM) jest wykluczony z wyniku.
Przykład:
vfs.file.contents[/etc/passwd]
vfs.file.exists[file,<types incl>,<types excl>]
Sprawdza, czy plik istnieje.
Zwracana wartość: 0 - nie znaleziono; 1 - istnieje plik określonego typu.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- types incl - lista typów plików do uwzględnienia, możliwe wartości: file (zwykły plik, domyślnie, jeśli types_excl nie jest ustawiony), dir (katalog), sym (dowiązanie symboliczne), sock (gniazdo), bdev (urządzenie blokowe), cdev (urządzenie znakowe), fifo (FIFO), dev (synonim „bdev,cdev”), all (wszystkie wymienione typy, domyślnie, jeśli types_excl jest ustawiony).
- types excl - lista typów plików do wykluczenia, możliwe wartości jak dla types_incl (domyślnie żadne typy nie są wykluczane)
Uwagi:
- W systemie Windows ta pozycja podąża za ścieżkami UNC, co może stanowić zagrożenie bezpieczeństwa.
- Wiele typów musi być oddzielonych przecinkiem, a cały zestaw musi być ujęty w cudzysłowy "".
- Jeśli ten sam typ występuje zarówno w <types_incl>, jak i <types_excl>, pliki tego typu są wykluczane.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykłady:
vfs.file.exists[/tmp/application.pid]
vfs.file.exists[/tmp/application.pid,"file,dir,sym"]
vfs.file.exists[/tmp/application_dir,dir]
vfs.file.get[file]
Zwraca informacje o pliku.
Wartość zwracana: ciąg JSON.
Zobacz obsługiwane platformy.
Parametr:
- file — pełna ścieżka do pliku
Uwagi:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Obsługiwane typy plików w systemach typu UNIX: plik zwykły, katalog, dowiązanie symboliczne, gniazdo, urządzenie blokowe, urządzenie znakowe, FIFO.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykład:
vfs.file.get[/etc/passwd] #zwraca JSON z informacjami o pliku /etc/passwd (typ, użytkownik, uprawnienia, SID, uid itp.)
vfs.file.md5sum[file]
Suma kontrolna MD5 pliku.
Zwracana wartość: Ciąg znaków (skrót MD5 pliku).
Zobacz obsługiwane platformy.
Parametr:
- file - pełna ścieżka do pliku
Komentarze:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykład:
vfs.file.md5sum[/usr/local/etc/zabbix_agentd.conf]
Przykład zwracanej wartości:
b5052decb577e0fffd622d6ddc017e82
vfs.file.owner[file,<ownertype>,<resulttype>]
Pobiera właściciela pliku.
Zwracana wartość: String.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- ownertype - user (domyślnie) lub group (tylko Unix);
- resulttype - name (domyślnie) lub id; dla id - zwraca uid/gid w systemie Unix, SID w systemie Windows.
Uwagi:
- W systemie Windows ta pozycja podąża za ścieżkami UNC, co może stanowić zagrożenie bezpieczeństwa.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykłady:
vfs.file.owner[/tmp/zabbix_server.log] #zwraca właściciela pliku /tmp/zabbix_server.log
vfs.file.owner[/tmp/zabbix_server.log,,id] #zwraca identyfikator właściciela pliku /tmp/zabbix_server.log
vfs.file.permissions[file]
Zwraca 4-cyfrowy ciąg zawierający liczbę ósemkową z uprawnieniami UNIX.
Zwracana wartość: String.
Obsługiwane platformy: Linux.
Pozycja może działać na innych platformach typu UNIX.
Parametry:
- file — pełna ścieżka do pliku
Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykład:
vfs.file.permissions[/etc/passwd] #zwraca uprawnienia dla /etc/passwd, na przykład '0644'
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
Pobiera ciąg znaków z pliku7.
Wartość zwracana: Wiersz zawierający dopasowany ciąg znaków lub wartość określona przez opcjonalny parametr output.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- regexp - regularne wyrażenie opisujące wymagany wzorzec;
- encoding - identyfikator strony kodowej;
- start line - numer pierwszego wiersza do przeszukania (domyślnie pierwszy wiersz pliku);
- end line - numer ostatniego wiersza do przeszukania (domyślnie ostatni wiersz pliku);
- output - opcjonalny szablon formatowania danych wyjściowych. Sekwencja ucieczki \0 jest zastępowana dopasowaną częścią tekstu (od pierwszego znaku, od którego zaczyna się dopasowanie, do znaku, na którym dopasowanie się kończy), natomiast sekwencja ucieczki \N (gdzie N=1...9) jest zastępowana N-tą dopasowaną grupą (lub pustym ciągiem znaków, jeśli N przekracza liczbę przechwyconych grup).
Uwagi:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
- Zwracany jest tylko pierwszy pasujący wiersz.
- Jeśli żaden wiersz nie pasuje do wyrażenia, zwracany jest pusty ciąg znaków.
- Znacznik kolejności bajtów (BOM) jest wykluczany z danych wyjściowych.
- Wyodrębnianie zawartości przy użyciu parametru
outputodbywa się po stronie agent.
Przykłady:
vfs.file.regexp[/etc/passwd,zabbix]
vfs.file.regexp[/path/to/some/file,"([0-9]+)$",,3,5,\1]
vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1] → pobranie identyfikatora użytkownika *zabbix*
vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>]
Znajdź ciąg znaków w pliku7.
Zwracane wartości: 0 - nie znaleziono dopasowania; 1 - znaleziono.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- regexp - regularne wyrażenie opisujące wymagany wzorzec;
- encoding - identyfikator strony kodowej;
- start line - numer pierwszego wiersza do przeszukania (domyślnie pierwszy wiersz pliku);
- end line - numer ostatniego wiersza do przeszukania (domyślnie ostatni wiersz pliku).
Uwagi:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
- Znacznik kolejności bajtów (BOM) jest ignorowany.
Przykład:
vfs.file.regmatch[/var/log/app.log,error]
vfs.file.size[file,<mode>]
Rozmiar pliku (w bajtach).
Zwracana wartość: Integer.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- mode - możliwe wartości: bytes (domyślnie) lub lines (liczone są również puste wiersze).
Uwagi:
- W systemie Windows ta pozycja podąża za ścieżkami UNC, co może stanowić zagrożenie bezpieczeństwa.
- Plik musi mieć uprawnienia do odczytu dla użytkownika zabbix.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykład:
vfs.file.size[/var/log/syslog]
vfs.file.time[file,<mode>]
Informacje o czasie pliku.
Zwracana wartość: Integer (znacznik czasu Unix).
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- mode - możliwe wartości:
modify (domyślnie) - czas ostatniej modyfikacji zawartości pliku,
access - czas ostatniego odczytu pliku,
change - czas ostatniej zmiany właściwości pliku
Uwagi:
- W systemie Windows ta pozycja obsługuje ścieżki UNC, co może stanowić zagrożenie bezpieczeństwa.
- Limit rozmiaru pliku zależy od obsługi dużych plików.
Przykład:
vfs.file.time[/etc/passwd,modify]
vfs.fs.discovery
Lista zamontowanych systemów plików wraz z ich typem i opcjami montowania.
Używana do wykrywania niskiego poziomu.
Zwracana wartość: ciąg JSON.
Obsługiwane platformy: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
vfs.fs.get
Lista zamontowanych systemów plików wraz z ich typem, dostępną przestrzenią dyskową, statystykami inode oraz opcjami montowania.
Może być używana do niskopoziomowego wykrywania.
Wartość zwracana: ciąg JSON.
Obsługiwane platformy: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
Uwagi:
- Systemy plików z liczbą inode równą zero, co może mieć miejsce w przypadku systemów plików z dynamicznymi inode (np. btrfs), są również raportowane.
- Dostępna przestrzeń dyskowa i statystyki inode są zwracane tylko wtedy, gdy użytkownik agent Zabbix ma uprawnienie traverse do każdego katalogu w ścieżce punktu montowania; w przeciwnym razie system plików jest pomijany w wyniku.
- Zobacz także: Wykrywanie zamontowanych systemów plików.
vfs.fs.inode[fs,<mode>]
Liczba lub wartość procentowa inode'ów.
Zwracana wartość: Integer - dla liczby; Float - dla wartości procentowej.
Zobacz obsługiwane platformy.
Parametry:
- fs - system plików;
- mode - możliwe wartości: total (domyślnie), free, used, pfree (wolne, procentowo) lub pused (użyte, procentowo).
Jeśli liczba inode'ów jest równa zero, co może mieć miejsce w przypadku systemów plików z dynamicznymi inode'ami (np. btrfs), wartości pfree/pused będą raportowane odpowiednio jako „100” i „0”.
Przykład:
vfs.fs.inode[/,pfree]
vfs.fs.size[fs,<mode>]
Miejsce na dysku w bajtach lub jako wartość procentowa całkowitej pojemności.
Zwracana wartość: Integer - dla bajtów; Float - dla wartości procentowej.
Zobacz obsługiwane platformy.
Parametry:
- fs - system plików;
- mode - możliwe wartości: total (domyślnie), free, used, pfree (wolne, procentowo) lub pused (użyte, procentowo).
Uwagi:
- Jeśli system plików nie jest zamontowany, zwracany jest rozmiar lokalnego systemu plików, w którym znajduje się punkt montowania.
- Uwzględniana jest zarezerwowana przestrzeń systemu plików i nie jest ona wliczana przy użyciu trybu free.
Przykład:
vfs.fs.size[/tmp,free]
vm.memory.size[<mode>]
Rozmiar pamięci w bajtach lub jako wartość procentowa całkowitej pamięci.
Zwracana wartość: Integer - dla bajtów; Float - dla wartości procentowej.
Zobacz obsługiwane platformy.
Parametr:
- mode - możliwe wartości: total (domyślnie), active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired, used, pused (używana, wartość procentowa), available lub pavailable (dostępna, wartość procentowa).
Komentarze:
- Ta pozycja akceptuje trzy kategorie parametrów:
- total - całkowita ilość pamięci;
- specyficzne dla platformy typy pamięci: active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired;
- oszacowania na poziomie użytkownika dotyczące ilości używanej i dostępnej pamięci: used, pused, available, pavailable.
- Parametr trybu active jest obsługiwany tylko w systemach FreeBSD, HP-UX, MacOS X, OpenBSD, NetBSD.
- Parametry trybu anon, exec, file są obsługiwane tylko w systemie NetBSD.
- Parametr trybu buffers jest obsługiwany tylko w systemach Linux, FreeBSD, OpenBSD, NetBSD.
- Parametr trybu cached jest obsługiwany tylko w systemach Linux, FreeBSD, AIX, OpenBSD, NetBSD.
- Parametry trybu inactive, wired są obsługiwane tylko w systemach FreeBSD, MacOS X, OpenBSD, NetBSD.
- Parametr trybu pinned jest obsługiwany tylko w systemie AIX.
- Parametr trybu shared jest obsługiwany tylko w systemach Linux 2.4, FreeBSD, OpenBSD, NetBSD.
- Zobacz także dodatkowe szczegóły dotyczące tej pozycji.
Przykład:
vm.memory.size[pavailable]
web.page.get[host,<path>,<port>]
Pobiera zawartość strony internetowej.
Wartość zwracana: kod źródłowy strony internetowej jako tekst (łącznie z nagłówkami).
Zobacz obsługiwane platformy.
Parametry:
- host — nazwa hosta lub URL (w postaci
scheme://host:port/path, gdzie wymagany jest tylko host). Dozwolone schematy URL: http, https4. Brakujący schemat będzie traktowany jako http. Jeśli podano URL, parametrypathiportmuszą być puste. Podanie nazwy użytkownika/hasła podczas łączenia z serwerami wymagającymi uwierzytelniania, na przykład:http://user:[email protected], jest możliwe tylko przy obsłudze cURL 4. Punycode jest obsługiwany w nazwach hostów. - path — ścieżka do dokumentu HTML (domyślnie /);
- port — numer portu (domyślnie 80 dla HTTP)
Uwagi:
- Ta pozycja staje się nieobsługiwana, jeśli zasób określony w
hostnie istnieje lub jest niedostępny. hostmoże być nazwą hosta, nazwą domenową, adresem IPv4 lub IPv6. Jednak w przypadku adresu IPv6 agent Zabbix musi być skompilowany z włączoną obsługą IPv6.
Przykłady:
web.page.get[www.example.com,index.php,80]
web.page.get[https://www.example.com]
web.page.get[https://blog.example.com/?s=zabbix]
web.page.get[localhost:80]
web.page.get["[::1]/server-status"]
web.page.perf[host,<path>,<port>]
Czas ładowania pełnej strony WWW (w sekundach).
Zwracana wartość: Float.
Zobacz obsługiwane platformy.
Parametry:
- host — nazwa hosta lub URL (w postaci
scheme://host:port/path, gdzie tylko host jest obowiązkowy). Dozwolone schematy URL: http, https4. Brakujący schemat będzie traktowany jako http. Jeśli podano URL,pathiportmuszą być puste. Podanie nazwy użytkownika/hasła podczas łączenia z serwerami wymagającymi uwierzytelnienia, na przykład:http://user:[email protected], jest możliwe tylko przy obsłudze cURL 4. Punycode jest obsługiwany w nazwach hostów. - path — ścieżka do dokumentu HTML (domyślnie /);
- port — numer portu (domyślnie 80 dla HTTP)
Uwagi:
- Ta pozycja staje się nieobsługiwana, jeśli zasób określony w
hostnie istnieje lub jest niedostępny. hostmoże być nazwą hosta, nazwą domenową, adresem IPv4 lub IPv6. Jednak w przypadku adresu IPv6 agent Zabbix musi być skompilowany z włączoną obsługą IPv6.
Przykłady:
web.page.perf[www.example.com,index.php,80]
web.page.perf[https://www.example.com]
web.page.regexp[host,<path>,<port>,regexp,<length>,<output>]
Znajdź ciąg znaków na stronie internetowej.
Zwracana wartość: Dopasowany ciąg znaków lub wartość określona przez opcjonalny parametr output.
Zobacz obsługiwane platformy.
Parametry:
- host — nazwa hosta lub URL (w postaci
scheme://host:port/path, gdzie tylko host jest obowiązkowy). Dozwolone schematy URL: http, https4. Brakujący schemat będzie traktowany jako http. Jeśli podano URL, parametrypathiportmuszą być puste. Podanie nazwy użytkownika/hasła podczas łączenia z serwerami wymagającymi uwierzytelniania, na przykład:http://user:[email protected], jest możliwe tylko przy obsłudze cURL 4. Punycode jest obsługiwany w nazwach hostów. - path — ścieżka do dokumentu HTML (domyślnie /);
- port — numer portu (domyślnie 80 dla HTTP)
- regexp — regularne wyrażenie opisujące wymagany wzorzec;
- length — maksymalna liczba znaków do zwrócenia;
- output — opcjonalny szablon formatowania danych wyjściowych. Sekwencja ucieczki \0 jest zastępowana dopasowaną częścią tekstu (od pierwszego znaku, od którego zaczyna się dopasowanie, do znaku, na którym dopasowanie się kończy), natomiast sekwencja ucieczki \N (gdzie N=1...9) jest zastępowana N-tą dopasowaną grupą (lub pustym ciągiem, jeśli N przekracza liczbę przechwyconych grup).
Uwagi:
- Ta pozycja staje się nieobsługiwana, jeśli zasób określony w
hostnie istnieje lub jest niedostępny. hostmoże być nazwą hosta, nazwą domenową, adresem IPv4 lub IPv6. Jednak w przypadku adresu IPv6 agent Zabbix musi być skompilowany z włączoną obsługą IPv6.- Ekstrakcja zawartości przy użyciu parametru
outputodbywa się po stronie agenta.
Przykłady:
web.page.regexp[www.example.com,index.php,80,OK,2]
web.page.regexp[https://www.example.com,,,OK,2]
agent.hostmetadata
Metadane hosta agenta.
Zwracana wartość: String.
Zobacz obsługiwane platformy.
Zwraca wartość parametrów HostMetadata lub HostMetadataItem, albo pusty ciąg znaków, jeśli żaden z nich nie jest zdefiniowany.
agent.hostname
Nazwa hosta agenta.
Zwracana wartość: String.
Zobacz obsługiwane platformy.
Zwraca:
- Jako sprawdzenie pasywne — nazwę pierwszego hosta wymienionego w parametrze Hostname pliku konfiguracyjnego agenta;
- Jako sprawdzenie aktywne — nazwę bieżącego hosta.
agent.ping
Sprawdzenie dostępności agenta.
Zwracana wartość: Nic — niedostępny; 1 — dostępny.
Zobacz obsługiwane platformy.
Użyj funkcji wyzwalacza nodata(), aby sprawdzić niedostępność hosta.
agent.variant
Wariant agenta Zabbix (Zabbix agent lub Zabbix agent 2).
Zwracana wartość: 1 - Zabbix agent; 2 - Zabbix agent 2.
Zobacz obsługiwane platformy.
agent.version
Wersja agenta Zabbix.
Zwracana wartość: String.
Zobacz obsługiwane platformy.
Przykład zwracanej wartości:
6.0.3
zabbix.stats[<ip>,<port>]
Zwraca zestaw wewnętrznych metryk serwera Zabbix lub proxy.
Jeśli określono ip i port, metryki są pobierane ze zdalnej instancji; w przeciwnym razie z instancji lokalnej.
Wartość zwracana: ciąg JSON.
Zobacz obsługiwane platformy.
Parametry:
- ip - lista masek IP/DNS/sieci serwerów/proxy, które mają być odpytywane zdalnie (domyślnie 127.0.0.1);
- port - port serwera/proxy, który ma być odpytywany zdalnie (domyślnie 10051)
Uwagi:
- Ta pozycja zwraca wybrany zestaw wewnętrznych metryk. Szczegóły można znaleźć w sekcji Zdalne monitorowanie statystyk Zabbix.
- Należy pamiętać, że żądanie statystyk zostanie zaakceptowane tylko z adresów wymienionych w parametrze 'StatsAllowedIP' serwer/proxy w instancji docelowej.
zabbix.stats[<ip>,<port>,queue,<from>,<to>]
Zwraca liczbę monitorowanych pozycji w kolejce, które są opóźnione na serwerze Zabbix lub proxy.
Jeśli określono ip i port, metryki są pobierane ze zdalnej instancji; w przeciwnym razie z instancji lokalnej.
Wartość zwracana: ciąg JSON.
Zobacz obsługiwane platformy.
Parametry:
- ip - lista masek IP/DNS/sieci serwerów/proxy, które mają być odpytywane zdalnie (domyślnie 127.0.0.1);
- port - port serwera/proxy, który ma być odpytywany zdalnie (domyślnie 10051)
- queue - stała (należy użyć bez zmian)
- from - opóźnienie co najmniej o (domyślnie 6 sekund)
- to - opóźnienie co najwyżej o (domyślnie nieskończoność)
Należy pamiętać, że żądanie statystyk zostanie zaakceptowane tylko z adresów wymienionych w parametrze 'StatsAllowedIP' serwera/proxy w instancji docelowej.
Przypisy
1Uwaga specyficzna dla systemu Linux. Zabbix agent musi mieć dostęp tylko do odczytu do systemu plików /proc. Łaty jądra z www.grsecurity.org ograniczają prawa dostępu użytkowników nieuprzywilejowanych.
2 vfs.dev.read[], vfs.dev.write[]: Zabbix agent zakończy „nieaktywne” połączenia urządzeń, jeśli wartości pozycji nie będą odczytywane przez ponad 3 godziny.
Może się tak zdarzyć, jeśli system ma urządzenia z dynamicznie zmieniającymi się ścieżkami lub jeśli urządzenie zostanie ręcznie usunięte.
Należy również pamiętać, że te pozycje, jeśli używają interwału aktualizacji wynoszącego 3 godziny lub więcej, zawsze zwrócą „0”.
3 vfs.dev.read[], vfs.dev.write[]: Jeśli dla pierwszego parametru użyta jest domyślna wartość all, klucz zwróci statystyki zbiorcze obejmujące wszystkie urządzenia blokowe, takie jak sda, sdb i ich partycje (sda1, sda2, sdb3...), a także urządzenia wielodyskowe (MD raid) oparte na tych urządzeniach blokowych/partycjach oraz woluminy logiczne (LVM) oparte na tych urządzeniach blokowych/partycjach.
W takich przypadkach zwracane wartości należy traktować wyłącznie jako wartości względne (zmienne w czasie), a nie jako wartości bezwzględne.
4 SSL (HTTPS) jest obsługiwane tylko wtedy, gdy agent został skompilowany z obsługą cURL. W przeciwnym razie pozycja stanie się nieobsługiwana.
5 Wartości bytes i errors nie są obsługiwane dla interfejsów loopback w systemach Solaris do wersji Solaris 10 6/06 włącznie, ponieważ statystyki bajtów, błędów i wykorzystania nie są przechowywane i/lub raportowane przez jądro.
Jeśli jednak monitorujesz system Solaris przez net-snmp, wartości mogą być zwracane, ponieważ net-snmp zawiera starszy kod z cmu-snmp, datowany nawet na 1997 rok, który w przypadku niepowodzenia odczytu wartości bajtów ze statystyk interfejsu zwraca licznik pakietów (który istnieje na interfejsach loopback) pomnożony przez arbitralną wartość 308.
Zakłada to, że średnia długość pakietu wynosi 308 oktetów, co jest bardzo przybliżonym oszacowaniem, ponieważ limit MTU dla interfejsów loopback w systemach Solaris wynosi 8892 bajty.
Nie należy zakładać, że te wartości są poprawne ani nawet w przybliżeniu dokładne.
Są to jedynie szacunki.
Zabbix agent nie stosuje żadnych przybliżeń, ale net-snmp zwróci wartość dla tych pól.
6 Wiersz poleceń w systemie Solaris, pobierany z /proc/pid/psinfo, jest ograniczony do 80 bajtów i zawiera wiersz poleceń w postaci z momentu uruchomienia procesu.
7 Pozycje vfs.file.contents[], vfs.file.regexp[], vfs.file.regmatch[] mogą być używane do pobierania zawartości plików.
Jeśli chcesz ograniczyć dostęp do określonych plików zawierających informacje wrażliwe, uruchom Zabbix agent jako użytkownika, który nie ma uprawnień dostępu do przeglądania tych plików.
Użycie z narzędziami wiersza poleceń
Należy pamiętać, że podczas testowania lub używania kluczy pozycji za pomocą zabbix_agentd lub zabbix_get z wiersza poleceń należy również uwzględnić składnię powłoki.
Na przykład, jeśli określony parametr klucza musi być ujęty w podwójne cudzysłowy, należy jawnie poprzedzić podwójne cudzysłowy znakiem ucieczki, w przeciwnym razie zostaną one usunięte przez powłokę jako znaki specjalne i nie zostaną przekazane do narzędzia Zabbix.
Przykłady:
zabbix_agentd -t 'vfs.dir.count[/var/log,,,"file,dir",,0]'
zabbix_agentd -t vfs.dir.count[/var/log,,,\"file,dir\",,0]
Ustawienia kodowania
Aby upewnić się, że uzyskane dane nie zostaną uszkodzone, można określić prawidłowe kodowanie używane do przetwarzania sprawdzenia (np. vfs.file.contents) w parametrze encoding.
Lista obsługiwanych kodowań (identyfikatorów stron kodowych) znajduje się w dokumentacji libiconv (projekt GNU) lub w dokumentacji Microsoft Windows SDK dotyczącej „identyfikatorów stron kodowych”.
Należy pamiętać, że firma Microsoft czasami oznacza niektóre strony kodowe jako „dostępne tylko dla aplikacji zarządzanych”, co oznacza, że są one udostępniane wyłącznie za pośrednictwem środowiska uruchomieniowego .NET i nie są dostępne za pośrednictwem natywnych interfejsów API Win32. agent Zabbix implementuje własną logikę konwersji kodowania, dlatego te strony kodowe są obsługiwane przez agenta Zabbix nawet wtedy, gdy natywne funkcje systemu Windows ich nie udostępniają.
Jeśli w parametrze encoding nie określono kodowania, stosowane są następujące strategie ustalania kodowania:
- Jeśli kodowanie nie zostało określone (lub jest pustym ciągiem), przyjmuje się kodowanie UTF-8, a dane są przetwarzane „bez zmian”;
- Analiza BOM — dotyczy pozycji
vfs.file.contents,vfs.file.regexp,vfs.file.regmatch. Podejmowana jest próba określenia prawidłowego kodowania na podstawie znacznika kolejności bajtów (BOM) znajdującego się na początku pliku. Jeśli BOM nie występuje, stosowana jest standardowa strategia ustalania kodowania (zob. powyżej).
Rozwiązywanie problemów z pozycjami agenta
W przypadku kontroli pasywnych, aby zapobiec sytuacji, w której pozycja nie otrzyma żadnej wartości, ponieważ żądanie serwera do agenta zakończy się przekroczeniem limitu czasu jako pierwsze, należy uwzględnić następujące kwestie:
- Jeśli wersja agenta jest starsza niż wersja serwera, wartość Timeout w konfiguracji pozycji (lub globalny limit czasu) może wymagać ustawienia na wyższą niż wartość
Timeoutw pliku konfiguracyjnym agenta. - Jeśli wersja agenta jest nowsza niż wersja serwera, wartość
Timeoutw pliku konfiguracyjnym serwera może wymagać ustawienia na wyższą niż wartośćTimeoutw pliku konfiguracyjnym agenta.