Skripti
Pārskats
Sadaļā Brīdinājumi > Skripti var konfigurēt un uzturēt lietotāja definētus globālos skriptus.
Šī izvēlne ir pieejama tikai lietotājiem ar lietotāja tipu SuperAdmin.
Globālie skripti atkarībā no konfigurētā tvēruma un lietotāja atļaujām ir pieejami izpildei:
- No hosta izvēlnes dažādās lietotāja saskarnes vietās (Informācijas panelis, Problēmas, Jaunākie dati, Kartes u. c.).
- No notikuma izvēlnes.
- Tos var palaist kā darbības operāciju.
Skripti tiek izpildīti Zabbix aģentā, Zabbix serverī (starpniekserverī) vai tikai Zabbix serverī.
Skatiet arī sadaļu Komandu izpilde.
Gan Zabbix aģentā, gan Zabbix starpniekserverī attālās komandas pēc noklusējuma ir atspējotas.
Tās var iespējot šādi:
- Attālām komandām, kas tiek izpildītas Zabbix aģentā:
- aģenta konfigurācijā katrai atļautajai komandai pievienojot parametru
AllowKey=system.run[<command>,*];*apzīmē gaidīšanas un negaidīšanas režīmu;
- aģenta konfigurācijā katrai atļautajai komandai pievienojot parametru
- Attālām komandām, kas tiek izpildītas Zabbix starpniekserverī:
- Brīdinājums: attālās komandas Zabbix starpniekserverī nav jāiespējo, ja attālās komandas tiek izpildītas Zabbix aģentā, kuru uzrauga Zabbix starpniekserveris. Ja tomēr ir nepieciešams izpildīt attālās komandas Zabbix starpniekserverī, starpniekservera konfigurācijā iestatiet parametru EnableRemoteCommands uz “1”.
Globālo skriptu izpildi Zabbix serverī var atspējot, servera konfigurācijā iestatot EnableGlobalScripts=0.
Jaunās instalācijās, sākot ar Zabbix 7.0, globālo skriptu izpilde Zabbix serverī pēc noklusējuma ir atspējota.
Tiek parādīts esošo skriptu saraksts ar to detalizētu informāciju.

Parādītie dati:
| Kolonna | Apraksts |
|---|---|
| Nosaukums | Skripta nosaukums. Noklikšķinot uz skripta nosaukuma, tiek atvērta skripta konfigurācijas veidlapa. |
| Tvērums | Skripta tvērums - darbības operācija, manuāla hosta darbība vai manuāla notikuma darbība. Šis iestatījums nosaka, kur skripts ir pieejams - darbības operāciju attālajās komandās, hosta izvēlnē vai notikuma izvēlnē. |
| Izmantots darbībās | Tiek parādītas visas darbības, kurās skripts tiek izmantots, pirms tām norādot šo darbību kopējo skaitu. Noklikšķinot uz darbības nosaukuma, tiek atvērta darbības konfigurācijas veidlapa. Ja lietotājam nav atļauju darbībai, nosaukums nav noklikšķināms. |
| Tips | Tiek parādīts skripta tips - URL, Webhook, Skripts, SSH, Telnet vai IPMI komanda. |
| Izpildīt | Tiek parādīts, vai skripts tiks izpildīts Zabbix aģentā, Zabbix starpniekserverī vai serverī, vai tikai Zabbix serverī. |
| Komandas | Tiek parādītas visas skriptā izpildāmās komandas. Webhook skriptiem šeit nekas netiek parādīts. |
| Lietotāju grupa | Tiek parādīta lietotāju grupa, kurai skripts ir pieejams (vai Visas, ja tas ir pieejams visām lietotāju grupām). |
| Hostu grupa | Tiek parādīta hostu grupa, kurai skripts ir pieejams (vai Visas, ja tas ir pieejams visām hostu grupām). |
| Hosta piekļuve | Tiek parādīts hostu grupai piešķirtais atļauju līmenis - Lasīšana vai Rakstīšana. Skripta izpildei varēs piekļūt tikai lietotāji ar nepieciešamo atļauju līmeni. |
Lai konfigurētu jaunu skriptu, augšējā labajā stūrī noklikšķiniet uz pogas Izveidot skriptu.
Masveida rediģēšanas opcijas
Poga zem saraksta piedāvā vienu masveida rediģēšanas opciju:
- Dzēst - dzēst skriptus
Lai izmantotu šo opciju, atzīmējiet izvēles rūtiņas pie attiecīgajiem skriptiem un noklikšķiniet uz Dzēst.
Filtra izmantošana
Varat izmantot filtru, lai parādītu tikai tos skriptus, kas jūs interesē. Lai uzlabotu meklēšanas veiktspēju, dati tiek meklēti ar neatrisinātiem makro.
Saite Filtrs ir pieejama virs skriptu saraksta. Ja uz tās noklikšķināsiet, kļūs pieejams filtrs, kurā varat filtrēt skriptus pēc nosaukuma un tvēruma.

Globāla skripta konfigurēšana

Lai uzlabotu drošību, globālajos skriptos vienkāršu makro vietā ieteicams izmantot makro funkcijas, jo makro netiek automātiski ekranēti.
Skripta atribūti:
| Parametrs | Apraksts | |
|---|---|---|
| Nosaukums | Unikāls skripta nosaukums. Piemēram, Clear /tmp filesystem |
|
| Tvērums | Skripta tvērums - darbības operācija, manuāla darbība ar hostu vai manuāla darbība ar notikumu. Šis iestatījums nosaka, kur skriptu var izmantot - darbības operāciju attālajās komandās, hosta izvēlnē vai notikuma izvēlnē. Iestatot tvērumu uz “Darbības operācija”, skripts kļūst pieejams visiem lietotājiem, kuriem ir piekļuve sadaļai Brīdinājumi > Darbības. Ja skripts faktiski tiek izmantots darbībā, tā tvērumu nevar mainīt no “darbības operācija”. Makro atbalsts Tvērums ietekmē pieejamo makro diapazonu. Piemēram, skriptos tiek atbalstīti ar lietotāju saistīti makro ( {USER.*}), lai varētu nodot informāciju par lietotāju, kurš palaida skriptu. Tomēr tie netiek atbalstīti, ja skripta tvērums ir darbības operācija, jo darbības operācijas tiek izpildītas automātiski.Makro {MANUALINPUT} ļauj skripta izpildes laikā norādīt manuālu ievadi. Tas tiek atbalstīts manuālas darbības ar hostu un manuālas darbības ar notikumu skriptos.Lai noskaidrotu, kuri citi makro tiek atbalstīti, atbalstīto makro tabulā meklējiet “Trigger-based notifications and commands/Trigger-based commands”, “Manual host action scripts” un “Manual event action scripts”. Ņemiet vērā: ja makro var tikt aizstāts ar vērtību, kurā ir atstarpes (piemēram, hosta nosaukums), neaizmirstiet to nepieciešamības gadījumā ievietot pēdiņās. |
|
| Izvēlnes ceļš | Vēlamais skripta izvēlnes ceļš. Piemēram, Default vai Default/ skriptu parādīs attiecīgajā direktorijā. Izvēlnes var būt ligzdotas, piemēram, Main menu/Sub menu1/Sub menu2. Piekļūstot skriptiem, izmantojot uzraudzības sadaļu hosta/notikuma izvēlni, tie tiks sakārtoti atbilstoši norādītajām direktorijām.Šis lauks tiek parādīts tikai tad, ja Tvērums ir iestatīts uz “Manuāla darbība ar hostu” vai “Manuāla darbība ar notikumu”. |
|
| Tips | Noklikšķiniet uz attiecīgās pogas, lai atlasītu skripta tipu: URL, Webhook, Skripts, SSH, Telnet vai IPMI komanda. Tips URL ir pieejams tikai tad, ja Tvērums ir iestatīts uz “Manuāla darbība ar hostu” vai “Manuāla darbība ar notikumu”. |
|
| Skripta tips: URL | ||
| URL | Norādiet URL ātrai piekļuvei no hosta izvēlnes vai notikuma izvēlnes. Tiek atbalstīti makro un pielāgoti lietotāja makro. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš sadaļu Tvērums). Izmantojiet makro {MANUALINPUT} šajā laukā, lai skripta izpildes laikā varētu norādīt manuālu ievadi, piemēram: http://{MANUALINPUT}/zabbix/zabbix.php?action=dashboard.viewMakro vērtības nedrīkst kodēt URL formātā. |
|
| Atvērt jaunā logā | Nosaka, vai URL jāatver jaunā vai tajā pašā pārlūkprogrammas cilnē. | |
| Skripta tips: Webhook | ||
| Parametri | Norādiet webhook mainīgos kā atribūtu un vērtību pārus. Skatiet arī: Webhook multivides konfigurācija. Parametru vērtībās tiek atbalstīti makro un pielāgoti lietotāja makro. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš sadaļu Tvērums). |
|
| Skripts | Ievadiet JavaScript kodu modālajā redaktorā, kas tiek atvērts, noklikšķinot parametra laukā vai uz zīmuļa ikonas blakus tam. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš sadaļu Tvērums). Skatiet arī: Webhook multivides konfigurācija, Papildu Javascript objekti. |
|
| Noildze | JavaScript izpildes noildze (1-60 s, noklusējums: 30 s). Tiek atbalstīti laika sufiksi (piemēram, 30s, 1m). |
|
| Skripta tips: Skripts | ||
| Izpildīt uz | Noklikšķiniet uz attiecīgās pogas, lai čaulas skriptu izpildītu: Zabbix aģents - skriptu izpildīs Zabbix aģents (ja vienums system.run ir atļauts) uz hosta Zabbix starpniekserveris vai serveris - skriptu izpildīs Zabbix starpniekserveris vai serveris atkarībā no tā, vai hostu uzrauga starpniekserveris vai serveris. Tas tiks izpildīts uz starpniekservera, ja to iespējo EnableRemoteCommands. Tas tiks izpildīts uz servera, ja globālos skriptus iespējo servera parametrs EnableGlobalScripts. Zabbix serveris - skriptu izpildīs tikai Zabbix serveris. Šī opcija nebūs pieejama, ja globālos skriptus atspējo servera parametrs EnableGlobalScripts. |
|
| Komandas | Ievadiet skriptā izpildāmo komandu pilno ceļu. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš sadaļu Tvērums). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Skripta tips: SSH | ||
| Autentifikācijas metode | Atlasiet autentifikācijas metodi - paroli vai publisko atslēgu. | |
| Lietotājvārds | Ievadiet lietotājvārdu. | |
| Parole | Ievadiet paroli. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Parole”. |
|
| Publiskās atslēgas fails | Ievadiet ceļu uz publiskās atslēgas failu. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Publiskā atslēga”. |
|
| Privātās atslēgas fails | Ievadiet ceļu uz privātās atslēgas failu. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Publiskā atslēga”. |
|
| Parole | Ievadiet paroles frāzi. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Publiskā atslēga”. |
|
| Ports | Ievadiet attālā SSH pakalpojuma portu mērķa hostā, ar kuru izveidos savienojumu Zabbix. | |
| Komandas | Ievadiet komandas. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš sadaļu Tvērums). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Skripta tips: Telnet | ||
| Lietotājvārds | Ievadiet lietotājvārdu. | |
| Parole | Ievadiet paroli. | |
| Ports | Ievadiet attālā Telnet pakalpojuma portu mērķa hostā, ar kuru izveidos savienojumu Zabbix. | |
| Komandas | Ievadiet komandas. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš sadaļu Tvērums). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Skripta tips: IPMI | ||
| Komanda | Ievadiet IPMI komandu. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš sadaļu Tvērums). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Apraksts | Ievadiet skripta aprakstu. | |
| Hostu grupa | Atlasiet hostu grupu, kurai skripts būs pieejams (vai Visas, lai tas būtu pieejams visām hostu grupām). | |
| Lietotāju grupa | Atlasiet lietotāju grupu, kurai skripts būs pieejams (vai Visas, lai tas būtu pieejams visām lietotāju grupām). Šis lauks tiek parādīts tikai tad, ja Tvērums ir iestatīts uz “Manuāla darbība ar hostu” vai “Manuāla darbība ar notikumu”. |
|
| Nepieciešamās atļaujas hostam | Atlasiet hostu grupas atļauju līmeni - Lasīšana vai Rakstīšana. Skripta izpildei varēs piekļūt tikai lietotāji ar nepieciešamo atļauju līmeni. Šis lauks tiek parādīts tikai tad, ja Tvērums ir iestatīts uz “Manuāla darbība ar hostu” vai “Manuāla darbība ar notikumu”. |
|
| Papildu konfigurācija | Noklikšķiniet uz virsraksta Papildu konfigurācija, lai parādītu papildu konfigurācijas opcijas. Šis lauks tiek parādīts tikai tad, ja Tvērums ir iestatīts uz “Manuāla darbība ar hostu” vai “Manuāla darbība ar notikumu”. |
|
Papildu konfigurācija
Papildu konfigurācijas opcijas ir pieejamas izvēršamā sadaļā Papildu konfigurācija:

| Parametrs | Apraksts |
|---|---|
| Iespējot lietotāja ievadi | Atzīmējiet izvēles rūtiņu, lai pirms skripta izpildes iespējotu manuālu lietotāja ievadi. Manuālā lietotāja ievade aizstās makro {MANUALINPUT} vērtību skriptā. Skatiet arī: Manuāla lietotāja ievade. |
| Ievades uzvedne | Ievadiet pielāgotu tekstu, kas pieprasa lietotāja ievadi. Šis teksts tiks parādīts virs ievades lauka Manuāla ievade uznirstošajā logā. Lai skatītu Manuāla ievade uznirstošā loga priekšskatījumu, noklikšķiniet uz Testēt lietotāja ievadi. Priekšskatījums ļauj arī pārbaudīt, vai ievades virkne atbilst ievades validācijas nosacījumam (skatiet tālāk norādītos parametrus). Makro un lietotāja makro atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums vispārīgajos skripta konfigurācijas parametros). |
| Ievades tips | Atlasiet manuālās ievades tipu: Virkne - viena virkne; Nolaižamais saraksts - vērtība tiek atlasīta no vairākām nolaižamā saraksta opcijām. |
| Nolaižamā saraksta opcijas | Ievadiet unikālas vērtības lietotāja ievades nolaižamajam sarakstam, atdalot tās ar komatiem. Lai nolaižamajā sarakstā iekļautu tukšu opciju, pievienojiet papildu komatu saraksta sākumā, vidū vai beigās. Šis lauks tiek parādīts tikai tad, ja Ievades tips ir iestatīts uz “Nolaižamais saraksts”. |
| Noklusējuma ievades virkne | Ievadiet lietotāja ievades noklusējuma virkni (vai atstājiet lauku tukšu). Šī virkne tiks validēta, izmantojot regulāro izteiksmi, kas norādīta laukā Ievades validācijas nosacījums. Šeit ievadītā vērtība pēc noklusējuma tiks parādīta Manuāla ievade uznirstošajā logā. Šis lauks tiek parādīts tikai tad, ja Ievades tips ir iestatīts uz “Virkne”. |
| Ievades validācijas nosacījums | Ievadiet regulāro izteiksmi, lai validētu lietotāja ievades virkni. Tiek atbalstītas globālās regulārās izteiksmes. Šis lauks tiek parādīts tikai tad, ja Ievades tips ir iestatīts uz “Virkne”. |
| Iespējot apstiprināšanu | Atzīmējiet izvēles rūtiņu, lai pirms skripta izpildes parādītu apstiprinājuma ziņojumu. Šī funkcija var būt īpaši noderīga potenciāli bīstamām darbībām (piemēram, atsāknēšanas skriptam) vai darbībām, kuru izpilde var aizņemt ilgu laiku. |
| Apstiprinājuma teksts | Ievadiet pielāgotu apstiprinājuma tekstu apstiprinājuma uznirstošajam logam, kas iespējots ar iepriekš norādīto izvēles rūtiņu (piemēram, Attālā sistēma tiks atsāknēta. Vai tiešām vēlaties turpināt?). Lai skatītu, kā teksts izskatīsies, noklikšķiniet uz Testēt apstiprinājumu blakus laukam. Tiek atbalstīti makro un pielāgoti lietotāja makro. Piezīme: makro netiks izvērsti, testējot apstiprinājuma ziņojumu. |
Ja ir konfigurēta gan manuāla lietotāja ievade, gan apstiprinājuma ziņojums, tie tiks parādīti secīgos uznirstošajos logos.
Manuāla lietotāja ievade
Manuāla lietotāja ievade ļauj katrā skripta izpildes reizē norādīt pielāgotu parametru. Tādējādi nav nepieciešams izveidot vairākus līdzīgus lietotāja skriptus, kas atšķiras tikai ar vienu parametru.
Piemēram, skripta izpildes laikā var būt nepieciešams norādīt citu veselu skaitli vai citu URL adresi.
Lai iespējotu manuālu lietotāja ievadi:
- izmantojiet makro {MANUALINPUT} skriptā (komandās, skriptā vai skripta parametrā), kur tas nepieciešams, vai URL skriptu URL laukā;
- papildu skripta konfigurācijā iespējojiet manuālu lietotāja ievadi un konfigurējiet ievades opcijas.
Ja lietotāja ievade ir iespējota, pirms skripta izpildes lietotājam tiks parādīts uznirstošais logs Manuāla ievade, kurā jānorāda pielāgota vērtība. Norādītā vērtība skriptā aizstās {MANUALINPUT}.
Atkarībā no konfigurācijas lietotājam tiks lūgts ievadīt virknes vērtību:

Vai arī atlasīt vērtību nolaižamajā sarakstā ar iepriekš noteiktām opcijām:

Manuāla lietotāja ievade ir pieejama tikai skriptiem, kuru tvērums ir “Manuāla darbība ar hostu” vai “Manuāla darbība ar notikumu”.
Skripta izpilde un rezultāts
Skripti, ko palaiž Zabbix serveris, tiek izpildīti secībā, kas aprakstīta komandu izpildes lapā.
Skripta rezultāts tiek parādīts uznirstošajā logā, kas parādās pēc skripta palaišanas. Skripta atgrieztā vērtība ir standarta izvade:
- Ja skripts beidzas veiksmīgi (izejas kods
0), atgrieztā vērtība ir ierobežota līdz 16MB (ieskaitot beigu atstarpes, kas tiek apgrieztas). - Ja skripts beidzas ar kļūdu (izejas kods nav nulle), atgrieztā vērtība ir standarta kļūdu izvade, kas ierobežota līdz 2KB.
Pēc noklusējuma Zabbix nesaglabā paplašinātu skripta izvadi. Lai saglabātu pilnu izvades informāciju, varat ieviest reģistrēšanu pašā skriptā (piemēram, novirzīt izvadi uz lokālu žurnālfailu).
Ņemiet vērā, ka skriptiem, kas tiek izpildīti vai nu uz Zabbix servera, vai Zabbix starpniekservera, ir spēkā arī datu bāzes ierobežojumi.
Tālāk ir sniegts skripta un rezultātu loga piemērs:
uname -v
/tmp/non_existing_script.sh
echo "This script was started by {USER.USERNAME}"

Skripta rezultātā netiek parādīts pats skripts.
Skripta izpildes noildze Zabbix aģentā
Var rasties situācija, kad skripta izpildes laikā iestājas noildze.
Tālāk skatiet skripta, kas darbojas Zabbix aģentā, piemēru un rezultātu logu:
sleep 5
df -h

Šajā gadījumā tiek parādīts šāds kļūdas ziņojums:
Timeout while executing a shell script.
Lai izvairītos no šādām situācijām, ieteicams optimizēt pašu skriptu (iepriekš minētajā piemērā — "5"), nevis mainīt parametru Timeout Zabbix aģenta konfigurācijā un Zabbix servera konfigurācijā.
Ja parametrs Timeout ir mainīts Zabbix aģenta konfigurācijā, tiks parādīts šāds kļūdas ziņojums:
Get value from agent failed: ZBX_TCP_READ() timed out.
Tas nozīmē, ka izmaiņas ir veiktas Zabbix aģenta konfigurācijā, taču parametru Timeout nepieciešams mainīt arī Zabbix servera konfigurācijā.
Skripta taimauts aktīvajiem aģentiem
Skriptus ir iespējams izpildīt tikai uz aģentiem, kas darbojas aktīvajā režīmā. Kad skripta izpildi iedarbina darbība operation vai manuāla skripta izpilde, komanda tiek iekļauta aktīvās pārbaudes konfigurācijā un izpildīta, tiklīdz aktīvais aģents to saņem.
Manuālie skripti tiek nosūtīti aktīvajam aģentam kopā ar servera/starpniekservera taimautu skripta izpildei. Lūdzu, palieliniet noklusējuma serveris/starpniekserveris taimautu skripta izpildei. Taimautam jābūt lielākam par aktīvās pārbaudes atsvaidzināšanas biežumu, pretējā gadījumā taimauts tiek pārsniegts, pirms aktīvais aģents saņem skriptu un var atgriezt rezultātu.
Skripta taimauts Zabbix serverī/starpniekserverī
Tālāk skatiet skripta, kas darbojas Zabbix serverī, piemēru un rezultātu logu:
sleep 11
df -h

Ieteicams arī optimizēt pašu skriptu, nevis pielāgot TrapperTimeout parametru atbilstošai vērtībai (mūsu gadījumā — > 11), modificējot Zabbix servera konfigurāciju.