[comment]: # ({fc0a59fb-e25ccc09})
# 3 Pielāgoti brīdinājumu skripti

[comment]: # ({/fc0a59fb-e25ccc09})

[comment]: # ({dbb571ef-bc410af8})
### Pārskats

Ja jūs neesat apmierināts ar esošajiem mediju tipiem brīdinājumu nosūtīšanai, ir alternatīvs veids, kā to izdarīt.
Jūs varat izveidot skriptu, kas apstrādās paziņojumu jums vēlamajā veidā.

Pielāgotie brīdinājumu skripti tiek izpildīti uz Zabbix serveris.
Šiem skriptiem jāatrodas direktorijā, kas norādīta serveris konfigurācijas faila [AlertScriptsPath](/manual/appendix/config/zabbix_server#alertscriptspath) parametrā.

Šeit ir pielāgota brīdinājumu skripta piemērs:

```bash
#!/bin/bash

to=$1
subject=$2
body=$3
host=$4
value=$5

cat <<EOF | mail -s "$subject" "$to"
$body

Host: $host
Value: $value
EOF
```

::: noteimportant
Zabbix pārbauda izpildīto komandu un skriptu izejas kodu.
Jebkurš izejas kods, kas atšķiras no **0**, tiek uzskatīts par [komandas izpildes](/manual/appendix/command_execution) kļūdu.
Šādos gadījumos Zabbix mēģinās atkārtot neveiksmīgo izpildi.
:::

Vides mainīgie skriptam netiek saglabāti vai izveidoti, tāpēc tie jāapstrādā tieši.

[comment]: # ({/dbb571ef-bc410af8})

[comment]: # ({9d81bec0-47055351})
### Konfigurācija

Lai konfigurētu pielāgotus brīdinājumu skriptus kā medija tipu:

1. Dodieties uz *Brīdinājumi → Medija tipi*.
2. Noklikšķiniet uz *Izveidot medija tipu*.

Cilnē **Medija tips** ir ietverti vispārīgie medija tipa atribūti:

![](../../../../../assets/en/manual/config/notifications/media/media_script.png){width="600"}

Visi obligātie ievades lauki ir atzīmēti ar sarkanu zvaigznīti.

Tālāk norādītie parametri ir specifiski skripta medija tipam:

|Parameter|Description|
|--|--------|
|*Script name*|Ievadiet skripta faila nosaukumu (piem., notification.sh), kas atrodas direktorijā, kura norādīta servera konfigurācijas parametram [AlertScriptsPath](/manual/appendix/config/zabbix_server#alertscriptspath).|
|*Script parameters*|Pievienojiet izvēles skripta parametrus, kas tiks nodoti skriptam kā komandrindas argumenti tādā secībā, kādā tie ir definēti.<br><br>Skripta parametri atbalsta {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} makro un visus [makro](/manual/appendix/macros/supported_by_location), kas tiek atbalstīti paziņojumos, kā arī [lietotāja makro](/manual/appendix/macros/supported_by_location_user).|

Skatiet [kopīgos medija tipa parametrus](/manual/config/notifications/media#common-parameters), lai iegūtu informāciju par to, kā konfigurēt noklusējuma ziņojumus un brīdinājumu apstrādes opcijas.

::: notewarning
Pat ja brīdinājumu skripts neizmanto noklusējuma ziņojumus, šim medija tipam izmantoto darbību tipu ziņojumu veidnēm joprojām ir jābūt definētām.
Pretējā gadījumā paziņojums netiks nosūtīts.
:::

::: noteimportant
Ja ir konfigurēts vairāk nekā viens skripta medija tips, šos skriptus brīdinātāja procesos var apstrādāt paralēli.
Brīdinātāja procesu kopskaitu ierobežo servera konfigurācijas faila parametrs [`StartAlerters`](/manual/appendix/config/zabbix_server#startalerters).
:::

[comment]: # ({/9d81bec0-47055351})

[comment]: # ({38908152-6a270eac})
### Testēšana

Lai pārbaudītu konfigurētu skripta mediju tipu:

1. Atrodiet attiecīgo skriptu [sarakstā](/manual/config/notifications/media#overview) ar mediju tipiem.

2. Noklikšķiniet uz *Test* saraksta pēdējā kolonnā; tiks atvērta testēšanas forma uznirstošajā logā.
Testēšanas forma saturēs tikpat daudz parametru, cik ir konfigurēts skripta mediju tipam.

3. Ja nepieciešams, rediģējiet skripta parametru vērtības. Rediģēšana ietekmē tikai testēšanas procedūru; faktiskās vērtības netiks mainītas.

4. Noklikšķiniet uz *Test*.

![](../../../../../assets/en/manual/config/notifications/media/script_test.png){width="600"}

::: noteclassic
Pārbaudot konfigurētu skripta mediju tipu, {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} un lietotāja makrosi tiks aizstāti ar savām vērtībām,
bet makrosi, kas ir saistīti ar notikumiem (piem., {HOST.HOST}, {ITEM.LASTVALUE} u.c.), netiks aizstāti, jo testēšanas laikā nav saistīta notikuma, no kura iegūt detaļas.
Ņemiet vērā, ka makrosi {ALERT.SUBJECT} un {ALERT.MESSAGE} iekšienē arī netiks aizstāti.
Piemēram, ja {ALERT.SUBJECT} vērtība ir veidota kā "Problem: {EVENT.NAME}", tad makross {EVENT.NAME} netiks aizstāts.
:::

[comment]: # ({/38908152-6a270eac})

[comment]: # ({df584c5a-525cb972})
### Lietotāja mediji

Kad mediju tips ir konfigurēts, dodieties uz sadaļu *Users → Users* un rediģējiet lietotāja profilu, piešķirot šo mediju tipu lietotājam.
Lietotāja mediju iestatīšanas darbības, kas ir kopīgas visiem mediju tipiem, ir aprakstītas lapā [Media types](/manual/config/notifications/media#user-media).

Ņemiet vērā, ka, definējot lietotāja medijus, lauks *Send to* nevar būt tukšs.
Ja šis lauks netiek izmantots brīdinājuma skriptā, ievadiet jebkuru atbalstīto rakstzīmju kombināciju, lai apietu validācijas prasības.

[comment]: # ({/df584c5a-525cb972})
