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 Zabbix agent, 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. | Jądro |
| 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 logów |
| log.count | Liczba dopasowanych wierszy w monitorowanym pliku dziennika. | |
| logrt | Monitorowanie rotowanego pliku dziennika. | |
| logrt.count | Liczba dopasowanych wierszy w monitorowanym, rotowanym 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 out-of-window. | |
| 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 jest w stanie LISTEN. | |
| net.tcp.port | Sprawdza, czy możliwe jest nawiązanie połączenia TCP z określonym portem. | |
| net.tcp.service | Sprawdza, czy usługa działa i akceptuje 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 jest w stanie 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 CPU/rdzeni CPU. | |
| system.cpu.intr | Przerwania urządzeń. | |
| system.cpu.load | Obciążenie CPU. | |
| system.cpu.num | Liczba 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 główna i pomocnicza itd.). | |
| 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. | Systemy plików wirtualnych |
| vfs.dev.read | Statystyki odczytu dysku. | |
| vfs.dev.write | Statystyki zapisu dysku. | |
| vfs.dir.count | Liczba wpisów w katalogu. | |
| vfs.dir.get | Lista wpisów 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ępną przestrzenią dyskową, statystykami inode i opcjami montowania. | |
| vfs.fs.inode | Liczba lub procent inode. | |
| vfs.fs.size | Przestrzeń dyskowa 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 Zabbix agent (Zabbix agent lub Zabbix agent 2). | |
| agent.version | Wersja Zabbix agent. | |
| zabbix.stats | Zwraca zestaw wewnętrznych metryk Zabbix serwer lub proxy. Jeśli określono ip i port, metryki są pobierane ze zdalnej instancji; w przeciwnym razie z instancji lokalnej. |
|
| zabbix.stats | Zwraca liczbę monitorowanych pozycji w kolejce, które są opóźnione na Zabbix serwer lub proxy. Jeśli określono ip i port, metryki są pobierane ze zdalnej instancji; w przeciwnym razie z instancji lokalnej. |
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 Zabbix lub proxy.
Ten parametr nadpisuje 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 czasie "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 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 active check.
- 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. - Wyodrębnianie 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 wierszy w monitorowanym pliku dziennika.
Zwracana wartość: 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 wierszy 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 wierszy pliku dziennika; > 0.0 - ignoruj starsze wiersze, aby analizować najnowsze wiersze 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 sprawdzanie aktywne.
- Dopasowane wiersze są zliczane wśród nowych wierszy 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 rotowanego pliku dziennika.
Zwracana wartość: Log.
Zobacz obsługiwane platformy.
Parametry:
- file regexp - bezwzględna ścieżka do pliku, z nazwą pliku określoną za pomocą regularnego wyrażenia.
Pamiętaj, że wyrażenie regularne ma zastosowanie tylko do nazwy pliku i nie musi pasować do całej nazwy (np. /path/to/agent będzie pasować do zabbix_agentd.log).
- regexp - regularne wyrażenie opisujące wymagany wzorzec zawartości.
- encoding - identyfikator strony kodowej.
- maxlines - maksymalna liczba nowych linii na sekundę, które agent wyśle do serwer lub proxy.
Ten parametr nadpisuje 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 wyjścia.
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 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 - pamiętaj, że copytruncate nie może być używane razem z maxdelay. W takim przypadku maxdelay musi mieć wartość 0 lub nie może być podane; zobacz uwagi dotyczące copytruncate,
mtime-reread - nieunikalne rekordy, odczytuj ponownie, jeśli zmieni się czas modyfikacji lub rozmiar (używane domyślnie, jeśli żadna opcjamtime-*nie została jawnie ustawiona),
mtime-noreread - nieunikalne rekordy, odczytuj ponownie tylko wtedy, gdy 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 plików trwałych.
Komentarze:
- Pozycja musi być skonfigurowana jako active check.
- Rotacja dziennika opiera się na czasie ostatniej modyfikacji plików.
- Pamiętaj, że logrt jest zaprojektowane do pracy z jednym aktualnie aktywnym plikiem dziennika oraz kilkoma innymi pasującymi nieaktywnymi plikami po rotacji. Jeśli na przykład katalog zawiera wiele aktywnych plików dziennika, dla każdego z nich należy utworzyć osobną pozycję logrt. 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. Pamiętaj, ż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ę po stronie agenta. - W parametrze
file regexpścieżka katalogu dziennika i wyrażenie regularne nazwy pliku dziennika muszą być rozdzielone poprawnym separatorem katalogów:- W systemie Windows separatorem musi być ukośnik wsteczny (\); ukośniki zwykłe mogą być tolerowane w innych pozycjach, z wyjątkiem tego, który rozdziela ścieżkę katalogu dziennika i wyrażenie regularne nazwy pliku dziennika (zobacz przykłady poniżej).
- W innych systemach musi to być ukośnik zwykły (/).
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ć "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:
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 do serwer zmodyfikowany rekord "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08".
logrt.count[file regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
Liczba dopasowanych linii w monitorowanym pliku logu podlegającym rotacji.
Zwracana wartość: Integer.
Zobacz obsługiwane platformy.
Parametry:
- file regexp - bezwzględna ścieżka do pliku, z nazwą pliku określoną za pomocą regularnego wyrażenia.
Pamiętaj, że wyrażenie regularne ma zastosowanie tylko do nazwy pliku i nie musi pasować do całej nazwy (np. /path/to/agent będzie pasować do zabbix_agentd.log).
- regexp - regularne wyrażenie 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 logu; > 0.0 - ignoruj starsze linie, aby przeanalizować najnowsze linie w ciągu „maxdelay” sekund.
Przed użyciem przeczytaj uwagi dotyczące maxdelay!
- options - typ rotacji pliku logu i inne opcje.
Możliwe wartości:
rotate (domyślnie),
copytruncate - pamiętaj, ż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 - nieunikalne rekordy, odczytuj ponownie, jeśli zmieni się czas modyfikacji lub rozmiar (domyślnie),
mtime-noreread - nieunikalne rekordy, odczytuj ponownie tylko wtedy, gdy 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 plików trwałych.
Uwagi:
- Pozycja musi być skonfigurowana jako active check.
- Dopasowane linie są zliczane wśród nowych linii od ostatniego sprawdzenia logu przez agent, a więc zależą od interwału aktualizacji pozycji.
- Rotacja logu opiera się na czasie ostatniej modyfikacji plików.
- W parametrze
file regexpścieżka katalogu logu i wyrażenie regularne pliku logu muszą być rozdzielone poprawnym separatorem katalogów:- W systemie Windows separatorem musi być ukośnik odwrotny (\); ukośniki zwykłe mogą być tolerowane w innych miejscach, z wyjątkiem tego, które rozdziela ścieżkę katalogu logu i wyrażenie regularne pliku logu (zobacz przykłady poniżej).
- W innych systemach musi to być ukośnik zwykły (/).
Przykłady dla systemu Windows:
logrt.count["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will count the number of matches for the pattern "pattern_to_match" in log files located in "c:/dir1/dir2/dir3".
logrt.count["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will count the number of matches for the pattern "pattern_to_match" in log files on the network share "//example.com/share/dir1/dir2/dir3".
Przykłady dla innych systemów:
logrt.count["/home/zabbix/logs/.*","^logfile[0-9]{1,3}$",,100] #this item will count the number of matches for the pattern "^logfile[0-9]{1,3}$" in log files in the "/home/zabbix/logs" directory.
logrt.count["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #this item will count the number of occurrences of the pattern "pattern_to_match" in log files located in "/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 podąża za ścieżkami 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.
Wartość zwracana: 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.
Zwracana wartość: Integer.
Obsługiwane platformy: Linux, FreeBSD, Solaris6, HP-UX, AIX, OpenBSD, NetBSD, Windows.
Parametry:
- name - nazwa procesu (domyślnie wszystkie procesy);
- user - nazwa użytkownika (domyślnie wszyscy użytkownicy);
- state - możliwe wartości:
all (domyślnie),
disk - nieprzerywalny sen,
run - uruchomiony,
sleep - przerywalny sen,
trace - zatrzymany,
zomb - zombie; - cmdline - filtrowanie według wiersza poleceń (jest to wyrażenie regularne);
- zone - docelowa strefa: current (domyślnie) lub all. Ten parametr jest obsługiwany tylko w systemie Solaris.
Uwagi:
- Parametry stanu disk i trace są obsługiwane tylko w systemach Linux, FreeBSD, OpenBSD, NetBSD.
- W systemie Windows obsługiwane są tylko parametry
nameiuser. - Gdy ta pozycja jest wywoływana z wiersza poleceń i zawiera parametr wiersza poleceń (na przykład przy użyciu trybu testowego agenta:
zabbix_agentd -t proc.num[,,,apache2]), zostanie zliczony jeden dodatkowy proces, ponieważ agent policzy samego siebie. - Jeśli parametr
zonezostanie ustawiony nacurrent(lub domyślny), 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. - Zobacz uwagi dotyczące wybierania procesów za pomocą parametrów
nameicmdline(dotyczy tylko systemu Linux).
Przykłady:
proc.num[,mysql] #liczba procesów uruchomionych przez użytkownika mysql
proc.num[apache2,www-data] #liczba procesów apache2 uruchomionych przez użytkownika www-data
proc.num[,oracle,sleep,oracleZABBIX] #liczba procesów w stanie sleep uruchomionych przez użytkownika Oracle, zawierających oracleZABBIX w wierszu 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 systemie 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 pozycję przy użyciu tego klucza, a następnie użyj jej do wyświetlenia czasu hosta w widżecie pulpitu *Clock*.
system.run[command,<mode>]
Uruchom określone polecenie na hoście.
Wartość zwracana: wynik polecenia w postaci tekstu lub 1 - gdy mode ma wartość 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 je włączyć.
- Wartością zwracaną przez pozycję jest standardowe wyjście wraz ze standardowym wyjściem błędów generowanym przez polecenie. Sprawdzanie kodu zakończenia nie jest wykonywane.
- Aby wartość zwracana była poprawnie przetwarzana, musi mieć typ danych
text. Dozwolony jest również pusty wynik. - Wartość zwracana jest ograniczona do 16 MB (włącznie z końcowymi białymi znakami, które są obcinane); obowiązują również ograniczenia bazy danych.
- Zobacz także: Wykonywanie poleceń.
Przykład:
system.run[ls -l /] #zwraca szczegółową listę plików w katalogu głównym
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.
Zwracana wartość: Tekst.
Obsługiwane platformy: Linux.
Parametry:
- regexp - all (domyślnie) lub regularne wyrażenie;
- 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 regularnego wyrażenia (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 parametr
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 parametr
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).
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-in, domyślnie na platformach innych niż Linux), sectors (sektory przeniesione do pamięci), lub pages (strony przeniesione do pamięci, 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 parametr pages będzie działał tylko wtedy, gdy urządzenie nie zostało określone.
- Parametr typu sectors jest obsługiwany tylko w systemie 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.
Zwracana wartość: Integer - gdy type ma wartość sectors, operations, bytes; Float - gdy type ma wartość 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 jednominutowa, domyślnie), avg5 lub avg15.
Ten parametr jest obsługiwany tylko wtedy, gdy
typema jedną z wartości: sps, ops, bps.
Uwagi:
- W przypadku użycia interwału aktualizacji wynoszącego trzy godziny lub więcej2, ta pozycja będzie zawsze zwracać '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 i FreeBSD. - Można używać względnych nazw urządzeń (na przykład
sda), jak również opcjonalnego prefiksu/dev/(na przykład/dev/sda). - Obsługiwane są woluminy logiczne 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 jedno dla all).
Przykład:
vfs.dev.read[,operations]
vfs.dev.write[<device>,<type>,<mode>]
Statystyki zapisu na dysku.
Zwracana wartość: Integer - gdy type ma wartość sectors, operations, bytes; Float - gdy type ma wartość 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 jednominutowa, domyślnie), avg5 lub avg15.
Ten parametr jest obsługiwany tylko wtedy, gdy
typema jedną z wartości: sps, ops, bps.
Uwagi:
- W przypadku użycia interwału aktualizacji wynoszącego trzy godziny lub więcej2, ta pozycja zawsze będzie zwracać '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 i FreeBSD. - Można używać względnych nazw urządzeń (na przykład
sda), a także opcjonalnego prefiksu/dev/(na przykład/dev/sda). - Woluminy logiczne LVM są obsługiwane.
- 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 jedno 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 katalogu.
Zwracana wartość: Integer.
Zobacz obsługiwane platformy.
Parametry:
- dir - ścieżka bezwzględna do katalogu;
- regex incl - wyrażenie regularne opisujące wzorzec nazwy encji (pliku, katalogu, dowiązania symbolicznego), które mają zostać uwzględnione; 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óre mają zostać wykluczone; jeśli puste, nic nie jest wykluczane (wartość domyślna);
- types incl - typy wpisów katalogu do zliczania, 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 musi być oddzielonych przecinkiem i ujętych w cudzysłów.
- types excl - typy wpisów katalogu (zobacz
types incl), które NIE mają być zliczane. Jeśli jakiś typ wpisu występuje zarówno wtypes incl, jak itypes excl, wpisy katalogu tego typu NIE są zliczane. - max depth - maksymalna głębokość przeszukiwania podkatalogów:
-1 (domyślnie) - bez ograniczeń,
0 - bez schodzenia do podkatalogów. - min size - minimalny rozmiar (w bajtach) pliku, aby został zliczony. Mniejsze pliki nie będą zliczane. Można używać sufiksów pamięci.
- max size - maksymalny rozmiar (w bajtach) pliku, aby został zliczony. Większe pliki nie będą zliczane. Można używać sufiksów pamięci.
- min age - minimalny wiek (w sekundach) wpisu katalogu, aby został zliczony. Nowsze wpisy nie będą zliczane. Można używać sufiksów czasu.
- max age - maksymalny wiek (w sekundach) wpisu katalogu, aby został zliczony. Wpisy starsze oraz o dokładnie takim wieku nie będą zliczane (czas modyfikacji). Można używać sufiksów czasu.
- 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 podąża za ścieżkami 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.
- Dowiązania symboliczne nigdy nie są śledzone podczas przechodzenia po katalogach.
- Zarówno
regex incl, jak iregex exclsą stosowane do plików i katalogów podczas obliczania liczby wpisów, ale są ignorowane przy wybieraniu podkatalogów do przeszukiwania (jeśliregex inclma wartość "(?i)\^.+\.zip$" imax depthnie jest ustawione, wtedy wszystkie podkatalogi zostaną przeszukane, ale zliczone zostaną tylko pliki typu zip). - Czas wykonania jest ograniczony przez wartość timeout w konfiguracji agent (3 sek.). Ponieważ przeszukiwanie dużych katalogów może trwać dłużej, żadne dane nie zostaną zwrócone, a pozycja stanie się nieobsługiwana. Częściowy wynik zliczania nie zostanie zwrócony.
- Przy filtrowaniu 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 zero, np. rozmiar /dev/sda1 nie odzwierciedla rozmiaru odpowiedniej partycji.
Dlatego przy używaniu
<min_size>i<max_size>zaleca się określenie<types_incl>jako "file", aby uniknąć niespodzianek.
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 - ścieżka bezwzględna do katalogu;
- regex incl - regularne wyrażenie 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 - regularne wyrażenie 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);
- types incl - typy wpisów katalogu do wyświetlenia, 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 musi być oddzielonych przecinkiem i ujętych w cudzysłów.
- types excl - typy wpisów katalogu (zobacz
types incl), które NIE mają być wyświetlane. Jeśli jakiś typ wpisu występuje zarówno wtypes incl, jak itypes excl, wpisy katalogu tego typu NIE będą wyświetlane. - max depth - maksymalna głębokość przeszukiwania podkatalogów:
-1 (domyślnie) - bez ograniczeń,
0 - bez schodzenia do podkatalogów. - min size - minimalny rozmiar (w bajtach) pliku, który ma zostać wyświetlony. Mniejsze pliki nie będą wyświetlane. Można używać sufiksów pamięci.
- max size - maksymalny rozmiar (w bajtach) pliku, który ma zostać wyświetlony. Większe pliki nie będą wyświetlane. Można używać sufiksów pamięci.
- min age - minimalny wiek (w sekundach) wpisu katalogu, który ma zostać wyświetlony. Nowsze wpisy nie będą wyświetlane. Można używać sufiksów czasu.
- max age - maksymalny wiek (w sekundach) wpisu katalogu, który ma zostać wyświetlony. Wpisy tak stare i starsze nie będą wyświetlane (czas modyfikacji). Można używać sufiksów czasu.
- regex excl dir - regularne wyrażenie 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 podąża za ścieżkami 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.
- Dowiązania symboliczne nigdy nie są śledzone podczas przeszukiwania katalogów.
- Zarówno
regex incl, jak iregex exclsą stosowane do plików i katalogów podczas generowania listy wpisów, ale są ignorowane przy wybieraniu podkatalogów do przeszukania (jeśliregex inclma wartość "(?i)\^.+\.zip$" imax depthnie jest ustawione, wtedy wszystkie podkatalogi zostaną przeszukane, ale zliczane będą tylko pliki typu zip). - Czas wykonania jest ograniczony przez wartość timeout w konfiguracji agent. Ponieważ przeszukiwanie dużych katalogów może trwać dłużej, żadne dane nie zostaną zwrócone, a pozycja stanie się nieobsługiwana. Częściowa lista nie zostanie zwrócona.
- Podczas filtrowania według rozmiaru tylko zwykłe pliki mają sensowne rozmiary.
W systemach Linux i BSD katalogi również mają rozmiary różne od zera (zwykle kilka KB).
Urządzenia mają rozmiar zero, np. rozmiar /dev/sda1 nie odzwierciedla rozmiaru odpowiedniej partycji.
Dlatego przy używaniu
min sizeimax sizezaleca się ustawienietypes inclna "file", aby uniknąć niespodzianek.
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.
Zwracana wartość: Tekst.
Zobacz obsługiwane platformy.
Parametry:
- file - pełna ścieżka do pliku;
- encoding - identyfikator strony kodowej identifier.
Uwagi:
- W systemie Windows ta pozycja podąża za ścieżkami UNC, co może stanowić zagrożenie bezpieczeństwa.
- Zwracana wartość jest ograniczona do 16 MB (wliczając końcowe białe znaki, które są obcinane); obowiązują również ograniczenia bazy danych.
- Pusty ciąg jest zwracany, jeśli plik jest pusty lub zawiera wyłącznie znaki LF/CR.
- Znacznik kolejności bajtów (BOM) jest wykluczany z danych wyjściowych.
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 - wyrażenie regularne 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, 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.
- 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>]
Znajduje 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ępnym miejscem na dysku, statystykami inode oraz opcjami montowania.
Może być 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.
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.
- 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 lub proxy Zabbix. 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 IP/DNS/masek sieciowych 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 znajdują się 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 IP/DNS/masek sieciowych 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' instancji docelowej serwera/proxy.
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 pozyskane dane nie są uszkodzone, można określić prawidłowe kodowanie do przetwarzania sprawdzenia (np. vfs.file.contents) w parametrze encoding.
Listę obsługiwanych kodowań (identyfikatorów stron kodowych) można znaleźć w dokumentacji libiconv (projekt GNU) lub w dokumentacji Microsoft Windows SDK dla "Code Page Identifiers".
Należy pamiętać, że Microsoft czasami oznacza niektóre strony kodowe jako „dostępne tylko dla aplikacji zarządzanych” — tj. udostępniane wyłącznie przez środowisko uruchomieniowe .NET i niedostępne przez natywne interfejsy API Win32.
Zabbix agent implementuje własną logikę konwersji kodowania, dlatego te strony kodowe są obsługiwane przez Zabbix agent 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 rozpoznawania:
- Jeśli kodowanie nie jest określone (lub jest pustym ciągiem), przyjmuje się UTF-8, a dane są przetwarzane „tak jak są”;
- Analiza BOM — dotyczy pozycji
vfs.file.contents,vfs.file.regexp,vfs.file.regmatch. Podejmowana jest próba określenia prawidłowego kodowania przy użyciu znacznika kolejności bajtów (BOM) na początku pliku. Jeśli BOM nie występuje, zamiast tego stosowane jest standardowe rozpoznawanie (zob. wyżej).
Rozwiązywanie problemów z pozycjami agenta
W przypadku sprawdzeń pasywnych, aby zapobiec sytuacji, w której pozycja nie otrzyma żadnej wartości, ponieważ żądanie serwera do agenta najpierw przekroczy limit czasu, należy zwrócić uwagę na 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.