- 1 Przykłady wyzwalaczy
- Wykrywanie niedostępnego hosta
- Wykrywanie niedostępnego proxy
- Wykrywanie niedostępnego klastra SMTP
- Wykrywanie nieosiągalnego hosta
- Wykrywanie nieoczekiwanego restartu
- Wykrywanie zmian w ważnych plikach
- Wykrywanie zmian w zapytaniu DNS
- Wykrywanie niezgodnego oprogramowania na różnych hostach
- Wykrywanie niezsynchronizowanych zegarów
- Wykrywanie nieaktualnego agent
- Wykrywanie niestabilnego interfejsu
- Wykrywanie wysokiego ruchu przychodzącego
- Wykrywanie małej ilości wolnego miejsca na dysku
- Wykrywanie małej ilości wolnego miejsca na dysku (próg dynamiczny)
- Wykrywanie wysokiego obciążenia CPU
- Porównanie obciążeń CPU
- Porównanie długoterminowego obciążenia CPU
- Wykrywanie ciągu zawierającego znaki specjalne
1 Przykłady wyzwalaczy
Ta strona zawiera zbiór przykładów wyzwalaczy.
Przykłady są posortowane według przypadków użycia:
- Niedostępny host
- Niedostępny proxy
- Niedostępny klaster SMTP
- Nieosiągalny host
- Nieoczekiwany restart
- Zmiany w ważnych plikach
- Zmiany w zapytaniu DNS
- Niezgodne oprogramowanie na różnych hostach
- Niezsynchronizowane zegary
- Nieaktualny agent
- Niestabilny interfejs
- Wysoki ruch przychodzący
- Mało miejsca na dysku
- Mało miejsca na dysku (próg dynamiczny)
- Wysokie obciążenie CPU
- Porównanie obciążenia CPU
- Długoterminowe porównanie obciążenia CPU
- Ciąg znaków zawierający znaki specjalne
Wykrywanie niedostępnego hosta
max(/host/zabbix[host,agent,available],5m)=0
Ten wyzwalacz uruchamia się, jeśli agent Zabbix na hoście jest niedostępny przez 5 minut.
Funkcja: max
Pozycja danych: zabbix[host,agent,available]
Alternatywnie:
nodata(/host/agent.ping,5m)=1
Ten wyzwalacz uruchamia się, jeśli przez 5 minut nie odebrano żadnych danych od agenta Zabbix.
Funkcja: nodata
Pozycja danych: agent.ping
Wykrywanie niedostępnego proxy
fuzzytime(/host/zabbix[proxy,{$PROXY_NAME},lastaccess],1m)=0
Ten wyzwalacz uruchamia się, jeśli dane proxy Zabbix są opóźnione względem czasu serwera Zabbix o 1 minutę.
Funkcja: fuzzytime
Pozycja danych: zabbix[proxy,{$PROXY_NAME},lastaccess]
Wykrywanie niedostępnego klastra SMTP
last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0
Ten wyzwalacz uruchamia się, jeśli oba serwery SMTP są niedostępne.
Funkcja: last
Pozycja danych: net.tcp.service
Wykrywanie nieosiągalnego hosta
count(/host/icmpping,30m,,"0")>5
Ten wyzwalacz uruchamia się, jeśli host jest nieosiągalny przez ping więcej niż 5 razy w ciągu ostatnich 30 minut.
Funkcja: count
Pozycja danych: icmpping
Wykrywanie nieoczekiwanego restartu
change(/host/system.uptime)<0
Ten wyzwalacz uruchamia się, jeśli zostanie wykryta ujemna zmiana wartości czasu działania systemu (co wskazuje na restart).
Funkcja: change
Pozycja danych: system.uptime
Wykrywanie zmian w ważnych plikach
last(/host/vfs.file.cksum[/etc/passwd],#1)<>last(/host/vfs.file.cksum[/etc/passwd],#2)
Ten wyzwalacz uruchamia się, jeśli plik /etc/passwd został zmieniony. Wyrażenie jest prawdziwe, gdy poprzednia suma kontrolna /etc/passwd różni się od najnowszej. Podobne wyrażenia mogą być przydatne do monitorowania zmian w ważnych plikach, takich jak /etc/passwd, /etc/inetd.conf, /kernel itd.
Funkcja: last
Pozycja danych: vfs.file.cksum
Wykrywanie zmian w zapytaniu DNS
last(/Zabbix server/net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1])<>"{$WEBSITE_NAME} {$DNS_RESOURCE_RECORD_TYPE} 0 mail.{$WEBSITE_NAME}"
Zwróć uwagę na cudzysłowy wokół drugiego operandu.
Ten wyzwalacz uruchamia się, jeśli wynik zapytania nie jest równy temu, co zwykle zwraca:
example.com MX 0 mail.example.com
Funkcja: last
Pozycja danych: net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1], z makrami zdefiniowanymi jako:
{$WEBSITE_NAME} = example.com
{$DNS_RESOURCE_RECORD_TYPE} = MX
Wykrywanie niezgodnego oprogramowania na różnych hostach
last(/host/vfs.file.contents[/etc/os-release])<>last(/host2/vfs.file.contents[/etc/os-release])
Ten wyzwalacz uruchamia się, jeśli wersja Ubuntu jest różna na różnych hostach. Zwróć uwagę, że operandami są tutaj funkcje zwracające ciągi znaków.
Funkcja: last
Pozycja danych: vfs.file.contents
Wykrywanie niezsynchronizowanych zegarów
fuzzytime(/host/system.localtime,10s)=0
Wyzwalacz uruchamia się, jeśli lokalny czas klienta i czas serwera Zabbix różnią się o więcej niż 10 sekund.
Funkcja: fuzzytime
Pozycja danych: system.localtime
Należy pamiętać, że system.localtime musi być skonfigurowana jako sprawdzenie pasywne dla agenta Zabbix; w Zabbix agent 2 może być skonfigurowana jako sprawdzenie aktywne.
Wykrywanie nieaktualnego agent
find(/host/agent.version,,"like","beta")=1
Ten wyzwalacz uruchamia się, jeśli Zabbix agent ma wersję beta. Zabbix agent wymaga aktualizacji.
Funkcja: find
Pozycja danych: agent.version
Wykrywanie niestabilnego interfejsu
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5
Ten wyzwalacz uruchamia się, jeśli stan operacyjny (up/down/unknown) interfejsu eth0 zmienił się więcej niż 5 razy w ciągu godziny.
Funkcja: changecount
Pozycja danych: vfs.file.contents
Wykrywanie wysokiego ruchu przychodzącego
min(/host/net.if.in[eth0,bytes],5m)>100K
Ten wyzwalacz uruchamia się, jeśli liczba odebranych bajtów na eth0 w ciągu ostatnich pięciu minut była zawsze większa niż 100 kilobajtów. Prawdopodobnie ktoś pobiera duży plik.
Funkcja: min
Pozycja danych: net.if.in[eth0,bytes]
Wykrywanie małej ilości wolnego miejsca na dysku
max(/host/vfs.fs.size[/,free],5m)<10G
Wyzwalacz uruchamia się, jeśli ilość wolnego miejsca na dysku jest stale (przez 5 minut) poniżej 10 GB.
Można również zdefiniować wyrażenie odzyskiwania:
min(/host/vfs.fs.size[/,free],10m)>40G
Problem zostaje rozwiązany dopiero wtedy, gdy ilość wolnego miejsca na dysku jest stale (przez 10 minut) powyżej 40 GB.
Funkcja: min
Pozycja danych: vfs.fs.size
Wykrywanie małej ilości wolnego miejsca na dysku (próg dynamiczny)
last(/template/hrStorageFree[{#SNMPVALUE}])<last(/template/hrStorageSize[{#SNMPVALUE}])*0.1
Wyzwalacz uruchamia się, jeśli ilość wolnego miejsca w pamięci masowej (w jednostkach alokacji) spadnie poniżej 10 procent. Zwróć uwagę na użycie wartości innej pozycji do uzyskania adaptacyjnego progu wyzwalacza, mającego zastosowanie do wykrytej pamięci masowej o różnej wielkości.
Funkcja: last
Wykrywanie wysokiego obciążenia CPU
last(/host/system.cpu.load[all,avg1])>5
Wyzwalacz uruchamia się, gdy średnie obciążenie procesora przekracza 5 przez jedną minutę.
Warianty:
min(/host/system.cpu.load[all,avg1],5m)>2 and time()<060000
min(/host/system.cpu.load[all,avg1],5m)>2 and not (dayofweek()=7 and time()>230000) and not (dayofweek()=1 and time()<010000)
Takie wyzwalacze analizują dane z 5 minut i uruchamiają się tylko wtedy, gdy obciążenie CPU nigdy nie spada poniżej 2. Dodatkowo te wyzwalacze uruchamiają się:
- tylko w nocy (00:00-06:00)
- o dowolnej porze z wyjątkiem 2 godzin podczas zmiany tygodnia (niedziela, 23:00 - poniedziałek, 01:00)
(last(/host/system.cpu.load[all,avg1])>5) + (last(/host2/system.cpu.load[all,avg1])>5) + (last(/host3/system.cpu.load[all,avg1])>5)>=2
Ten wyzwalacz uruchamia się, jeśli obciążenie procesora jest zbyt wysokie na co najmniej dwóch z trzech hostów.
Funkcje: last, min, dayofweek, time
Pozycja danych: system.cpu.load
Porównanie obciążeń CPU
avg(/Zabbix server/system.cpu.load,1h)/avg(/Zabbix server/system.cpu.load,1h:now-1d)>2
Wyzwalacz uruchamia się, jeśli średnie obciążenie dzisiaj przekracza średnie obciążenie z tej samej godziny wczoraj (z użyciem przesunięcia czasu now-1d) ponad dwukrotnie.
Funkcja: avg
Pozycja danych: system.cpu.load
Porównanie długoterminowego obciążenia CPU
trendavg(/host/system.cpu.load,1M:now/M)>1.1*trendavg(/host/system.cpu.load,1M:now/M-1M)
Ten wyzwalacz uruchamia się, jeśli obciążenie CPU na hoście wzrosło w ostatnim miesiącu o więcej niż 10%
Funkcja: trendavg
Pozycja danych: system.cpu.load
Możesz również użyć pola Nazwa zdarzenia w konfiguracji wyzwalacza, aby zbudować zrozumiały komunikat alertu, na przykład aby otrzymać coś takiego
"Obciążenie serwera Exchange wzrosło o 24% w lipcu (0.69) w porównaniu do czerwca (0.56)"
nazwa zdarzenia musi być zdefiniowana jako:
Load of {HOST.HOST} server increased by {{?100*trendavg(//system.cpu.load,1M:now/M)/trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(0)}% in {{TIME}.fmttime(%B,-1M)} ({{?trendavg(//system.cpu.load,1M:now/M)}.fmtnum(2)}) comparing to {{TIME}.fmttime(%B,-2M)} ({{?trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(2)})
Przy tego rodzaju problemie przydatne jest również zezwolenie na ręczne zamykanie w konfiguracji wyzwalacza.
Wykrywanie ciągu zawierającego znaki specjalne
last(/host/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}
Wyzwalacz uruchamia się, jeśli zawartość /tmp/hello jest równa ciągowi zdefiniowanemu w {$HELLO_MACRO}:
{$HELLO_MACRO} = \" //hello ?\"
Alternatywnie można porównać bezpośrednio do ciągu:
last(/Zabbix server/vfs.file.contents[/tmp/hello])="\\\" //hello ?\\\""
Zwróć uwagę, że znaki specjalne (\\ i ") są poprzedzone znakiem ucieczki, gdy ciąg jest porównywany bezpośrednio.
Funkcja: last
Pozycja danych: vfs.file.contents
Masz przykład wyrażenia wyzwalacza, który inni mogą uznać za przydatny?
Prześlij swój przykład (w tym zarówno wyrażenie, jak i kontekst), korzystając z naszego formularza sugestii, aby wysłać go do deweloperów Zabbix.