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

Drošības uzlabošanai globālajos skriptos ieteicams izmantot makro funkcijas, nevis vienkāršus makro, jo makro netiek automātiski ekranēti.
Skripta atribūti:
| Parametrs | Apraksts | |
|---|---|---|
| Name | Skripta unikālais nosaukums. Piemēram, Clear /tmp filesystem |
|
| Scope | 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 attālajās komandās operācijās, no hosta izvēlnes vai attiecīgi no notikuma izvēlnes. Iestatot tvērumu uz “Action operation”, skripts kļūst pieejams visiem lietotājiem, kuriem ir piekļuve sadaļai Alerts > Actions. Ja skripts tiek izmantots darbībā, tā tvērumu nevar mainīt no “action operation”. Makro atbalsts Tvērums ietekmē pieejamo makro diapazonu. Piemēram, ar lietotāju saistītie makro ( {USER.*}) tiek atbalstīti skriptos, 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 nosaukumu), neaizmirstiet to vajadzības gadījumā ietvert pēdiņās. |
|
| Menu path | 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 hosta/notikuma izvēlni uzraudzības sadaļās, tie tiks sakārtoti atbilstoši norādītajām direktorijām.Šis lauks tiek parādīts tikai tad, ja Scope ir atlasīts “Manual host action” vai “Manual event action”. |
|
| Type | Noklikšķiniet uz attiecīgās pogas, lai atlasītu skripta tipu: URL, Webhook, Script, SSH, Telnet vai IPMI komanda. Skripta tips URL ir pieejams tikai tad, ja Scope ir atlasīts “Manual host action” vai “Manual event action”. |
|
| 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š Scope). 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ā. |
|
| Open in new window | Nosaka, vai URL jāatver jaunā vai tajā pašā pārlūkprogrammas cilnē. | |
| Skripta tips: Webhook | ||
| Parameters | Norādiet webhook mainīgos kā atribūtu un vērtību pārus. Skatiet arī: Webhook medija konfigurēšana. 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š Scope). |
|
| Script | 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š Scope). Skatiet arī: Webhook medija konfigurēšana, Papildu Javascript objekti. |
|
| Timeout | JavaScript izpildes noildze (1-60 s, noklusējums: 30 s). Tiek atbalstīti laika sufiksi (piemēram, 30s, 1m). |
|
| Skripta tips: Script | ||
| Execute on | Noklikšķiniet uz attiecīgās pogas, lai izpildītu čaulas skriptu: Zabbix agent - skriptu izpildīs Zabbix aģents (ja system.run vienums ir atļauts) uz hosta Zabbix proxy or server - skriptu izpildīs Zabbix starpniekserveris vai serveris - atkarībā no tā, vai hostu uzrauga starpniekserveris vai serveris. Tas tiks izpildīts starpniekserverī, ja to iespējo EnableRemoteCommands. Tas tiks izpildīts serverī, ja globālos skriptus iespējo servera parametrs EnableGlobalScripts. Zabbix server - skriptu izpildīs tikai Zabbix serveris. Šī opcija nebūs pieejama, ja globālie skripti ir atspējoti ar servera parametru EnableGlobalScripts. |
|
| Commands | Ievadiet skriptā izpildāmo komandu pilnos ceļus. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš Scope). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Skripta tips: SSH | ||
| Authentication method | Atlasiet autentifikācijas metodi - paroli vai publisko atslēgu. | |
| Username | Ievadiet lietotājvārdu. | |
| Password | Ievadiet paroli. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Password”. |
|
| Public key file | Ievadiet ceļu uz publiskās atslēgas failu. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Public key”. |
|
| Private key file | Ievadiet ceļu uz privātās atslēgas failu. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Public key”. |
|
| Passphrase | Ievadiet ieejas frāzi. Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Public key”. |
|
| Port | Ievadiet attālā SSH pakalpojuma portu mērķa hostā, ar kuru izveidos savienojumu Zabbix. | |
| Commands | Ievadiet komandas. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš Scope). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Skripta tips: Telnet | ||
| Username | Ievadiet lietotājvārdu. | |
| Password | Ievadiet paroli. | |
| Port | Ievadiet attālā Telnet pakalpojuma portu mērķa hostā, ar kuru izveidos savienojumu Zabbix. | |
| Commands | Ievadiet komandas. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš Scope). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Skripta tips: IPMI | ||
| Command | Ievadiet IPMI komandu. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš Scope). Tiek atbalstīti pielāgoti lietotāja makro. |
|
| Description | Ievadiet skripta aprakstu. | |
| Host group | Atlasiet hostu grupu, kurai skripts būs pieejams (vai All, lai tas būtu pieejams visām hostu grupām). | |
| User group | Atlasiet lietotāju grupu, kurai skripts būs pieejams (vai All, lai tas būtu pieejams visām lietotāju grupām). Šis lauks tiek parādīts tikai tad, ja Scope ir atlasīts “Manual host action” vai “Manual event action”. |
|
| Required host permissions | Atlasiet hostu grupas atļauju līmeni - Read vai Write. Skriptam varēs piekļūt tikai lietotāji ar nepieciešamo atļauju līmeni. Šis lauks tiek parādīts tikai tad, ja Scope ir atlasīts “Manual host action” vai “Manual event action”. |
|
| Advanced configuration | Noklikšķiniet uz virsraksta Advanced configuration, lai parādītu papildu konfigurācijas opcijas. Šis lauks tiek parādīts tikai tad, ja Scope ir atlasīts “Manual host action” vai “Manual event action”. |
|
Papildu konfigurācija
Papildu konfigurācijas opcijas ir pieejamas salokāmā Papildu konfigurācija sadaļā:

| 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 skriptā aizstās {MANUALINPUT} makro vērtību. Skatiet arī: Manuāla lietotāja ievade. |
| Ievades uzvedne | Ievadiet pielāgotu tekstu, kas aicina ievadīt pielāgotu lietotāja ievadi. Šis teksts tiks parādīts virs ievades lauka uznirstošajā logā Manuālā ievade. Lai skatītu uznirstošā loga Manuālā ievade priekšskatījumu, noklikšķiniet uz Testēt lietotāja ievadi. Priekšskatījums arī ļauj pārbaudīt, vai ievades virkne atbilst ievades validācijas noteikumam (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: String - viena virkne; Dropdown - 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 ar komatiem atdalītā sarakstā. Lai nolaižamajā sarakstā iekļautu tukšu opciju, saraksta sākumā, vidū vai beigās pievienojiet papildu komatu. Šis lauks tiek parādīts tikai tad, ja kā Ievades tips ir atlasīts 'Dropdown'. |
| Noklusējuma ievades virkne | Ievadiet noklusējuma virkni lietotāja ievadei (vai neko). Šis lauks tiks validēts, izmantojot regulāro izteiksmi, kas norādīta laukā Ievades validācijas noteikums. Šeit ievadītā vērtība pēc noklusējuma tiks parādīta uznirstošajā logā Manuālā ievade. Šis lauks tiek parādīts tikai tad, ja kā Ievades tips ir atlasīts 'String'. |
| Ievades validācijas noteikums | 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 kā Ievades tips ir atlasīts 'String'. |
| Iespējot apstiprinājumu | 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, pārstartēšanas skriptam) vai darbībām, kas var aizņemt ilgu laiku. |
| Apstiprinājuma teksts | Ievadiet pielāgotu apstiprinājuma tekstu apstiprinājuma uznirstošajam logam, kas tiek iespējots ar iepriekš norādīto izvēles rūtiņu (piemēram, Attālinātā sistēma tiks pārstartēta. Vai esat pārliecināts?). Lai redzē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: testējot apstiprinājuma ziņojumu, makro netiks izvērsti. |
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 norādīt pielāgotu parametru katrā skripta izpildes reizē. Tas novērš nepieciešamību 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 vesela skaitļa vērtību vai citu URL adresi.
Lai iespējotu manuālu lietotāja ievadi:
- izmantojiet makrosu {MANUALINPUT} skriptā (komandās, skriptā, skripta parametrā), kur tas ir nepieciešams; vai URL skriptu URL laukā;
- paplašinātajā 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 Manual input, kurā būs 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 atlasīt vērtību no nolaižamā saraksta ar iepriekš noteiktām opcijām:

Manuāla lietotāja ievade ir pieejama tikai skriptiem, kuru tvērums ir 'Manual host action' vai 'Manual event action'.
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.