3 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:

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ā:
    • pievienojiet aģenta konfigurācijā parametru AllowKey=system.run[<command>,*] katrai atļautajai komandai; * apzīmē wait un nowait režīmu;
  • Attālām komandām, kas tiek izpildītas Zabbix starpniekserverī:
    • Brīdinājums: nav nepieciešams iespējot attālās komandas Zabbix starpniekserverī, ja attālās komandas tiek izpildītas Zabbix aģentā, kuru uzrauga Zabbix starpniekserveris. Ja tomēr attālās komandas jāizpilda Zabbix starpniekserverī, starpniekservera konfigurācijā iestatiet parametru EnableRemoteCommands uz vērtību '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 darbība ar hostu vai manuāla darbība ar notikumu. Šis iestatījums nosaka, kur skripts ir pieejams - darbības operāciju attālajās komandās, hostu 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, uz tās nosaukuma nevar noklikšķināt.
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 skripta ietvaros 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).
Piekļuve hostam Tiek parādīts hostu grupai piešķirtais atļauju līmenis - Lasīšana vai Rakstīšana. Skriptam 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, bū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 ieteicams izmantot makro funkcijas, nevis vienkāršus makro, 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 ir 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ācijas”.
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 norādīt manuālu ievadi skripta izpildes laikā. 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 vajadzī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 hosta/notikuma izvēlni uzraudzības sadaļās, tie tiks sakārtoti atbilstoši norādītajiem direktorijiem.
Š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.
Makro un pielāgoti lietotāja makro tiek atbalstīti. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš 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.view
Makro vērtības nedrīkst būt kodētas 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.
Makro un pielāgoti lietotāja makro tiek atbalstīti parametru vērtībās. Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš 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š Tvērums).
Skatiet arī: Webhook multivides konfigurācija, Papildu Javascript objekti.
Noildze JavaScript izpildes noildze (1-60 s, pēc noklusējuma 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 izpildītu čaulas skriptu:
Zabbix aģents - skriptu izpildīs Zabbix aģents (ja sistēmas.run vienums 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 starpniekserverī, ja to iespējo EnableRemoteCommands.
Tas tiks izpildīts serverī, ja globālie skripti ir iespējoti ar servera parametru EnableGlobalScripts.
Zabbix serveris - skriptu izpildīs tikai Zabbix serveris.
Šī opcija nebūs pieejama, ja globālie skripti ir atspējoti ar servera parametru EnableGlobalScripts.
Komandas Ievadiet pilnu ceļu uz komandām, kas jāizpilda skripta ietvaros.
Makro atbalsts ir atkarīgs no skripta tvēruma (skatiet iepriekš 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š 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š 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š 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 skripts būtu pieejams visām hostu grupām).
Lietotāju grupa Atlasiet lietotāju grupu, kurai skripts būs pieejams (vai Visas, lai skripts 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 atļauju līmeni hostu grupai - 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 galvenes 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 pielāgotu lietotāja ievadi. Šis teksts tiks parādīts virs ievades lauka uznirstošajā logā Manuāla ievade.
Lai skatītu uznirstošā loga Manuāla ievade 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 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:
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, saraksta sākumā, vidū vai beigās pievienojiet papildu komatu.
Š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).
Š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āla ievade.
Šis lauks tiek parādīts tikai tad, ja Ievades tips ir iestatīts uz “Virkne”.
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 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, restartēš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 restartēta. Vai tiešām vēlaties turpināt?). Lai skatītu, kā teksts izskatīsies, blakus laukam noklikšķiniet uz Testēt apstiprinājumu.
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 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ā varat 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 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 izpilda Zabbix serveris, tiek izpildīti tādā secībā, kā aprakstīts komandas izpildes lapā.

Skripta rezultāts tiek parādīts uznirstošā logā, kas tiek atvērts pēc skripta izpildes. Skripta atgrieztā vērtība ir standarta izvade:

  • Ja skripts tiek pabeigts veiksmīgi (izejas kods 0), atgrieztā vērtība ir ierobežota līdz 16 MB (ieskaitot beigu atstarpes, kas tiek saīsinātas).
  • Ja skripts beidzas ar kļūdu (ne-nulle izejas kods), atgrieztā vērtība ir standarta kļūda, kas ierobežota līdz 2 KB.

Pēc noklusējuma Zabbix neglabā paplašinātu skripta izvadi. Lai saglabātu pilnu izvades informāciju, varat pašā skriptā ieviest reģistrēšanu (piemēram, novirzīt izvadi uz lokālu žurnālfailu).

Ņemiet vērā, ka skriptiem, kas tiek izpildīti gan Zabbix serverī, gan Zabbix starpniekserverī, tiek piemēroti arī datubāzes ierobežojumi.

Tālāk ir sniegts skripta un rezultāta loga piemērs:

uname -v
/tmp/non_existing_script.sh
echo "Šo skriptu sāka {USER.USERNAME}"

Skripta rezultātā pats skripts netiek parādīts.

Skripta noildze Zabbix aģentā

Var rasties situācija, kad skripta izpildes laikā iestājas noildze.

Tālāk skatiet piemēru skriptam, kas darbojas Zabbix aģentā, un rezultāta logu:

sleep 5
df -h

Kļūdas ziņojums šajā gadījumā ir šāds:

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 pielāgot Timeout parametru Zabbix aģenta konfigurācijā un Zabbix servera konfigurācijā.

Ja Timeout parametrs 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 Timeout parametrs ir jāmaina arī Zabbix servera konfigurācijā.

Skripta noildze aktīvajiem aģentiem

Ir iespējams izpildīt skriptus tikai uz aģentiem, kas darbojas aktīvajā režīmā. Kad skripta izpildi ierosina darbības operācija 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 skripta izpildes noildzi. Lūdzu, palieliniet noklusējuma serveris/starpniekserveris noildzi skripta izpildei. Noildzei jābūt lielākai par aktīvās pārbaudes atsvaidzināšanas biežumu, pretējā gadījumā noildze tiek pārsniegta, pirms aktīvais aģents saņem skriptu un spēj atgriezt rezultātu.

Skripta noildze uz Zabbix servera/starpniekservera

Skatiet piemēru skriptam, kas darbojas uz Zabbix servera, un rezultāta logu zemāk:

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).