[comment]: # ({188108fa-226b9489})
# 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](#detect-unavailable-host)
-   [Niedostępny proxy](#detect-unavailable-proxy)
-   [Niedostępny klaster SMTP](#detect-unavailable-smtp-cluster)
-   [Nieosiągalny host](#detect-unreachable-host)
-   [Nieoczekiwany restart](#detect-unexpected-reboot)
-   [Zmiany w ważnych plikach](#detect-changes-in-important-files)
-   [Zmiany w zapytaniu DNS](#detect-changes-in-dns-query)
-   [Niezgodne oprogramowanie na różnych hostach](#detect-non-matching-software-on-different-hosts)
-   [Niezsynchronizowane zegary](#detect-unsynchronized-clocks)
-   [Nieaktualny agent](#detect-outdated-agent)
-   [Niestabilny interfejs](#detect-flapping-interface)
-   [Wysoki ruch przychodzący](#detect-high-incoming-traffic)
-   [Mało miejsca na dysku](#detect-low-disk-space)
-   [Mało miejsca na dysku (próg dynamiczny)](#detect-low-disk-space-dynamic-threshold)
-   [Wysokie obciążenie CPU](#detect-high-cpu-load)
-   [Porównanie obciążenia CPU](#compare-cpu-loads)
-   [Długoterminowe porównanie obciążenia CPU](#compare-cpu-loads)
-   [Ciąg znaków zawierający znaki specjalne](#detect-string-containing-special-characters)

[comment]: # ({/188108fa-226b9489})

[comment]: # ({2116104b-1b661572})
##### Wykrywanie niedostępnego hosta

```default
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.<br>
Funkcja: [`max`](/manual/config/triggers/expression/aggregate#max)<br>
Pozycja danych: [`zabbix[host,agent,available]`](/manual/config/items/itemtypes/internal#host.available)

Alternatywnie:

```default
nodata(/host/agent.ping,5m)=1
```

Ten wyzwalacz uruchamia się, jeśli przez 5 minut nie odebrano żadnych danych od agenta Zabbix.<br>
Funkcja: [`nodata`](/manual/config/triggers/expression/history#nodata)<br>
Pozycja danych: [`agent.ping`](/manual/config/items/itemtypes/zabbix_agent#agent.ping)

[comment]: # ({/2116104b-1b661572})

[comment]: # ({fedc75b0-de5361b9})
##### Wykrywanie niedostępnego proxy

```default
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ę.<br>
Funkcja: [`fuzzytime`](/manual/config/triggers/expression/history#fuzzytime)<br>
Pozycja danych: [`zabbix[proxy,{$PROXY_NAME},lastaccess]`](/manual/config/items/itemtypes/internal#proxy)

[comment]: # ({/fedc75b0-de5361b9})

[comment]: # ({a2a7ab26-7956e04e})
##### Wykrywanie niedostępnego klastra SMTP

```default
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.<br>
Funkcja: [`last`](/manual/config/triggers/expression/history#last)<br>
Pozycja danych: [`net.tcp.service`](/manual/config/items/itemtypes/simple_checks#nettcpservice)

[comment]: # ({/a2a7ab26-7956e04e})

[comment]: # ({c2c339fa-567b88a9})
##### Wykrywanie nieosiągalnego hosta

```default
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.<br>
Funkcja: [`count`](/manual/config/triggers/expression/history#count)<br>
Pozycja danych: [`icmpping`](/manual/config/items/itemtypes/simple_checks#icmpping)

[comment]: # ({/c2c339fa-567b88a9})

[comment]: # ({e9862861-b356d712})
##### Wykrywanie nieoczekiwanego restartu

```default
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).<br>
Funkcja: [`change`](/manual/config/triggers/expression/history#change)<br>
Pozycja danych: [`system.uptime`](/manual/config/items/itemtypes/zabbix_agent#system.uptime)

[comment]: # ({/e9862861-b356d712})

[comment]: # ({1ee22f8b-49592749})
##### Wykrywanie zmian w ważnych plikach

```default
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.<br>
Funkcja: [`last`](/manual/config/triggers/expression/history#last)<br>
Pozycja danych: [`vfs.file.cksum`](/manual/config/items/itemtypes/zabbix_agent#vfs.file.cksum)

[comment]: # ({/1ee22f8b-49592749})

[comment]: # ({7df0f916-c2b4949f})
##### Wykrywanie zmian w zapytaniu DNS

```default
last(/Zabbix server/net.dns.record[192.0.2.1,{$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:

```default
example.com           MX       0 mail.example.com
```

Funkcja: [`last`](/manual/config/triggers/expression/history#last)<br>
Pozycja danych: [`net.dns.record[192.0.2.1,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1]`](/manual/config/items/itemtypes/zabbix_agent#net.dns.record), z makrami zdefiniowanymi jako:

```default
{$WEBSITE_NAME} = example.com
{$DNS_RESOURCE_RECORD_TYPE} = MX
```

[comment]: # ({/7df0f916-c2b4949f})

[comment]: # ({0fc019ff-adfc6b9d})
##### Wykrywanie niezgodnego oprogramowania na różnych hostach

```default
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.<br>
Funkcja: [`last`](/manual/config/triggers/expression/history#last)<br>
Pozycja danych: [`vfs.file.contents`](/manual/config/items/itemtypes/zabbix_agent#vfs.file.contents)

[comment]: # ({/0fc019ff-adfc6b9d})

[comment]: # ({101c1203-0e6bfc51})
##### Wykrywanie niezsynchronizowanych zegarów

```default
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.<br>
Funkcja: [`fuzzytime`](/manual/config/triggers/expression/history#fuzzytime)<br>
Pozycja danych: [`system.localtime`](/manual/config/items/itemtypes/zabbix_agent#system.localtime)

Należy pamiętać, że [`system.localtime`](/manual/config/items/itemtypes/zabbix_agent#systemlocaltime) musi być skonfigurowana jako [sprawdzenie pasywne](/manual/appendix/items/activepassive#passive-checks) dla agenta Zabbix; w Zabbix agent 2 może być skonfigurowana jako sprawdzenie aktywne.

[comment]: # ({/101c1203-0e6bfc51})

[comment]: # ({108d71c4-62cfb014})
##### Wykrywanie nieaktualnego agent

```default
find(/host/agent.version,,"like","beta")=1
```

Ten wyzwalacz uruchamia się, jeśli Zabbix agent ma wersję beta. Zabbix agent wymaga aktualizacji.<br>
Funkcja: [`find`](/manual/config/triggers/expression/history#find)<br>
Pozycja danych: [`agent.version`](/manual/config/items/itemtypes/zabbix_agent#agent.version)

[comment]: # ({/108d71c4-62cfb014})

[comment]: # ({b4fdf283-3f25a585})
##### Wykrywanie niestabilnego interfejsu

```default
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.<br>
Funkcja: [`changecount`](/manual/config/triggers/expression/history#changecount)<br>
Pozycja danych: [`vfs.file.contents`](/manual/config/items/itemtypes/zabbix_agent#vfs.file.contents)

[comment]: # ({/b4fdf283-3f25a585})

[comment]: # ({984a4c2f-46e72843})
##### Wykrywanie wysokiego ruchu przychodzącego

```default
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.<br>
Funkcja: [`min`](/manual/config/triggers/expression/aggregate#min)<br>
Pozycja danych: [`net.if.in[eth0,bytes]`](/manual/config/items/itemtypes/zabbix_agent#net.if.in)

[comment]: # ({/984a4c2f-46e72843})

[comment]: # ({2e223320-bddf0717})
##### Wykrywanie małej ilości wolnego miejsca na dysku

```default
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:

```default
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.<br>
Funkcja: [`min`](/manual/config/triggers/expression/aggregate#min)<br>
Pozycja danych: [`vfs.fs.size`](/manual/config/items/itemtypes/zabbix_agent#vfs.fs.size)

[comment]: # ({/2e223320-bddf0717})

[comment]: # ({e2a732dc-bb0f5278})
##### Wykrywanie małej ilości wolnego miejsca na dysku (próg dynamiczny)

```default
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`](/manual/config/triggers/expression/history#last)<br>

[comment]: # ({/e2a732dc-bb0f5278})

[comment]: # ({643d3a74-17b607dc})
##### Wykrywanie wysokiego obciążenia CPU

```default
last(/host/system.cpu.load[all,avg1])>5
```

Wyzwalacz uruchamia się, gdy średnie obciążenie procesora przekracza 5 przez jedną minutę.

Warianty:

```default
min(/host/system.cpu.load[all,avg1],5m)>2 and time()<060000
```
```default
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)

```default
(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.<br>
Funkcje: [`last`](/manual/config/triggers/expression/history#last), [`min`](/manual/config/triggers/expression/aggregate#min), [`dayofweek`](/manual/config/triggers/expression/time#dayofweek), [`time`](/manual/config/triggers/expression/time#time)<br>
Pozycja danych: [`system.cpu.load`](/manual/config/items/itemtypes/zabbix_agent#system.cpu.load)

[comment]: # ({/643d3a74-17b607dc})

[comment]: # ({49f3b448-47b2e2fd})
##### Porównanie obciążeń CPU

```default
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.<br>
Funkcja: [`avg`](/manual/config/triggers/expression/aggregate#avg)<br>
Pozycja danych: [`system.cpu.load`](/manual/config/items/itemtypes/zabbix_agent#system.cpu.load)

[comment]: # ({/49f3b448-47b2e2fd})

[comment]: # ({e83bf5a3-6906462b})
##### Porównanie długoterminowego obciążenia CPU

```default
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%<br>
Funkcja: [`trendavg`](/manual/config/triggers/expression/trends#trendavg)<br>
Pozycja danych: [`system.cpu.load`](/manual/config/items/itemtypes/zabbix_agent#system.cpu.load)

Możesz również użyć pola [Nazwa zdarzenia](/manual/config/triggers/trigger#configuration) 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:

```default
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.

[comment]: # ({/e83bf5a3-6906462b})

[comment]: # ({4ae4641e-60fad4fc})
##### Wykrywanie ciągu zawierającego znaki specjalne

```default
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}`:

```default
{$HELLO_MACRO} = \" //hello ?\"
```

Alternatywnie można porównać bezpośrednio do ciągu:

```default
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`](/manual/config/triggers/expression/history#last)<br>
Pozycja danych: [`vfs.file.contents`](/manual/config/items/itemtypes/zabbix_agent#vfs.file.contents)

[comment]: # ({/4ae4641e-60fad4fc})

[comment]: # ({baa6a112-contribute})
::: note-contribute
Masz przykład wyrażenia wyzwalacza, który inni mogą uznać za przydatny?<br>
Prześlij swój przykład (w tym zarówno wyrażenie, jak i kontekst), korzystając z naszego [formularza sugestii](#report-example), aby wysłać go do deweloperów Zabbix.
:::

[comment]: # ({/baa6a112-contribute})
