3 Skripti

Pārskats

Sadaļā Brīdinājumi > Skripti var konfigurēt un uzturēt lietotāja definētus globālos skriptus.

Globālie skripti atkarībā no konfigurētās darbības jomas un arī lietotāja atļaujām ir pieejami izpildei:

  • no hosta izvēlnes dažādās lietotāja saskarnes vietās (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ī Komandu izpilde.

Gan Zabbix aģentā, gan Zabbix starpniekserverī attālinātie skripti pēc noklusējuma ir atspējoti. Tos var iespējot šādi:

  • Attālinātām komandām, kas tiek izpildītas Zabbix aģentā:
    • katrai atļautajai komandai aģenta konfigurācijā pievienojot parametru AllowKey=system.run[<command>,*], kur * apzīmē gaidīšanas un negaidīšanas režīmu;
  • Attālinātām komandām, kas tiek izpildītas Zabbix starpniekserverī:
    • Brīdinājums: Nav nepieciešams iespējot attālinātās komandas Zabbix starpniekserverī, ja attālinātās komandas tiek izpildītas Zabbix aģentā, kuru uzrauga Zabbix starpniekserveris. Tomēr, ja ir nepieciešams izpildīt attālinātās komandas Zabbix starpniekserverī, iestatiet parametru EnableRemoteCommands uz '1' starpniekservera konfigurācijā.

Globālo skriptu izpildi Zabbix serverī var atspējot, servera konfigurācijā iestatot EnableGlobalScripts=0. Jaunām instalācijām, 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ēto informāciju.

Parādītie dati:

Column Description
Name Skripta nosaukums. Noklikšķinot uz skripta nosaukuma, tiek atvērta skripta konfigurācijas forma.
Scope Skripta darbības joma — darbības operācija, manuāla hosta darbība vai manuāla notikuma darbība. Šis iestatījums nosaka, kur skripts ir pieejams.
Used in actions Tiek parādītas visas darbības, kurās skripts tiek izmantots, pirms tam norādot šo darbību kopējo skaitu.
Noklikšķinot uz darbības nosaukuma, tiek atvērta darbības konfigurācijas forma. Ja lietotājam nav atļauju šai darbībai, nosaukums nav noklikšķināms.
Type Tiek parādīts skripta tips — URL, Webhook, Skripts, SSH, Telnet vai IPMI komanda.
Execute on Tiek parādīts, vai skripts tiks izpildīts Zabbix aģentā, Zabbix starpniekserverī vai serverī, vai tikai Zabbix serverī.
Commands Tiek parādītas visas komandas, kas tiks izpildītas skripta ietvaros.
Webhook gadījumā šeit nekas netiek parādīts.
User group Tiek parādīta lietotāju grupa, kurai skripts ir pieejams (vai Visi visām lietotāju grupām).
Host group Tiek parādīta hostu grupa, kurai skripts ir pieejams (vai Visi visām hostu grupām).
Host access Tiek parādīts hostu grupas atļauju līmenis — Lasīt vai Rakstīt. Tikai lietotājiem ar nepieciešamo atļauju līmeni būs piekļuve skripta izpildei.

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

Jūs varat izmantot filtru, lai parādītu tikai tos skriptus, kas jūs interesē. Labākai meklēšanas veiktspējai dati tiek meklēti ar neatrisinātām makro vērtībām.

Saite Filtrs ir pieejama virs skriptu saraksta. Ja uz tās noklikšķināt, kļūst pieejams filtrs, kurā varat filtrēt skriptus pēc nosaukuma un tvēruma.

Globāla skripta konfigurēšana

Drošības uzlabošanai ieteicams globālajos skriptos vienkāršu makrosu vietā izmantot makrosu funkcijas, jo makrosi netiek automātiski atsaistī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 hosta darbība vai manuāla notikuma darbība. Šis iestatījums nosaka, kur skriptu var izmantot — darbību operāciju attālinātajās komandās, no hosta izvēlnes vai no notikuma izvēlnes.
Iestatot tvērumu uz “Darbības operācija”, skripts kļūst pieejams visiem lietotājiem, kuriem ir piekļuve Brīdinājumi > Darbības.
Ja skripts faktiski tiek izmantots darbībā, tā tvērumu vairs nevar mainīt no “darbības operācija” uz citu vērtību.
Makrosu atbalsts
Tvērums ietekmē pieejamo makrosu diapazonu. Piemēram, ar lietotāju saistītie makrosi ({USER.*}) tiek atbalstīti skriptos, lai varētu nodot informāciju par lietotāju, kurš palaida skriptu. Taču tie netiek atbalstīti, ja skripta tvērums ir darbības operācija, jo darbību operācijas tiek izpildītas automātiski.
Makross {MANUALINPUT} ļauj norādīt manuālu ievadi skripta izpildes laikā. Tas tiek atbalstīts manuālas hosta darbības un manuālas notikuma darbības skriptos.
Lai noskaidrotu, kuri citi makrosi tiek atbalstīti, meklējiet “Trigger-based notifications and commands/Trigger-based commands”, “Manual host action scripts” un “Manual event action scripts” atbalstīto makrosu tabulā. Ņemiet vērā: ja makross var tikt atrisināts uz vērtību ar atstarpēm (piemēram, hosta nosaukumu), neaizmirstiet to vajadzības gadījumā ietvert pēdiņās.
Izvēlnes ceļš Vēlamais izvēlnes ceļš uz skriptu. Piemēram, Default vai Default/ parādīs skriptu attiecīgajā direktorijā. Izvēlnes var būt ligzdotas, piemēram, Main menu/Sub menu1/Sub menu2. Piekļūstot skriptiem caur hosta/notikuma izvēlni uzraudzības sadaļās, tie tiks sakārtoti atbilstoši norādītajām direktorijām.
Šis lauks tiek rādīts tikai tad, ja kā Tvērums ir atlasīts “Manuāla hosta darbība” vai “Manuāla notikuma darbība”.
Tips Noklikšķiniet uz atbilstošās pogas, lai atlasītu skripta tipu:
URL, Webhook, Skripts, SSH, Telnet vai IPMI komanda.
Tips URL ir pieejams tikai tad, ja kā Tvērums ir atlasīts “Manuāla hosta darbība” vai “Manuāla notikuma darbība”.
Skripta tips: URL
URL Norādiet URL ātrai piekļuvei no hosta izvēlnes vai notikuma izvēlnes.
Tiek atbalstīti makrosi un pielāgoti lietotāja makrosi. Makrosu atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums iepriekš).
Izmantojiet makrosu {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
Makrosu vērtības nedrīkst būt URL kodētas.
Atvērt jaunā logā Nosaka, vai URL jāatver jaunā vai tajā pašā pārlūka cilnē.
Skripta tips: Webhook
Parametri Norādiet webhook mainīgos kā atribūta-vērtības pārus.
Skatiet arī: Webhook medija konfigurācija.
Makrosi un pielāgoti lietotāja makrosi tiek atbalstīti parametru vērtībās. Makrosu atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums iepriekš).
Skripts Ievadiet JavaScript kodu modālajā redaktorā, kas tiek atvērts, noklikšķinot parametra laukā vai uz zīmuļa ikonas blakus tam.
Makrosu atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums iepriekš).
Skatiet arī: Webhook medija konfigurācija, Papildu Javascript objekti.
Noildze JavaScript izpildes noildze (1-60s, noklusējums 30s).
Tiek atbalstīti laika sufiksi, piemēram, 30s, 1m.
Skripta tips: Skripts
Izpildīt uz Noklikšķiniet uz atbilstošās pogas, lai izpildītu čaulas skriptu uz:
Zabbix aģenta — skriptu izpildīs Zabbix aģents (ja system.run vienums ir atļauts) hostā
Zabbix starpniekservera vai servera — skriptu izpildīs Zabbix starpniekserveris vai serveris atkarībā no tā, vai hosts tiek uzraudzīts ar starpniekserveri vai serveri.
Tas tiks izpildīts uz starpniekservera, ja to atļauj EnableRemoteCommands.
Tas tiks izpildīts uz servera, ja globālie skripti ir iespējoti ar servera parametru EnableGlobalScripts.
Zabbix servera — 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.
Makrosu atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums iepriekš). Tiek atbalstīti pielāgoti lietotāja makrosi.
Skripta tips: SSH
Autentifikācijas metode Atlasiet autentifikācijas metodi — parole vai publiskā atslēga.
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”.
Paroles frāze Ievadiet paroles frāzi.
Šis lauks ir pieejams, ja kā autentifikācijas metode ir atlasīta “Publiskā atslēga”.
Ports Ievadiet attālinātā SSH pakalpojuma portu mērķa hostā, pie kura Zabbix pieslēgsies.
Komandas Ievadiet komandas.
Makrosu atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums iepriekš). Tiek atbalstīti pielāgoti lietotāja makrosi.
Skripta tips: Telnet
Lietotājvārds Ievadiet lietotājvārdu.
Parole Ievadiet paroli.
Ports Ievadiet attālinātā Telnet pakalpojuma portu mērķa hostā, pie kura Zabbix pieslēgsies.
Komandas Ievadiet komandas.
Makrosu atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums iepriekš). Tiek atbalstīti pielāgoti lietotāja makrosi.
Skripta tips: IPMI
Komanda Ievadiet IPMI komandu.
Makrosu atbalsts ir atkarīgs no skripta tvēruma (skatiet Tvērums iepriekš). Tiek atbalstīti pielāgoti lietotāja makrosi.
Apraksts Ievadiet skripta aprakstu.
Hostu grupa Atlasiet hostu grupu, kurai skripts būs pieejams (vai Visi visām hostu grupām).
Lietotāju grupa Atlasiet lietotāju grupu, kurai skripts būs pieejams (vai Visi visām lietotāju grupām).
Šis lauks tiek rādīts tikai tad, ja kā Tvērums ir atlasīts “Manuāla hosta darbība” vai “Manuāla notikuma darbība”.
Nepieciešamās hosta atļaujas Atlasiet atļauju līmeni hostu grupai — Lasīt vai Rakstīt. Tikai lietotājiem ar nepieciešamo atļauju līmeni būs piekļuve skripta izpildei.
Šis lauks tiek rādīts tikai tad, ja kā Tvērums ir atlasīts “Manuāla hosta darbība” vai “Manuāla notikuma darbība”.
Paplašinātā konfigurācija Noklikšķiniet uz virsraksta Paplašinātā konfigurācija, lai parādītu paplašinātās konfigurācijas opcijas.
Šis lauks tiek rādīts tikai tad, ja kā Tvērums ir atlasīts “Manuāla hosta darbība” vai “Manuāla notikuma darbība”.

Papildu konfigurācija

Papildu konfigurācijas opcijas ir pieejamas sakļaujamā 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ālā 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 Pārbaudīt lietotāja ievadi. Priekšskatījums arī ļauj pārbaudīt, vai ievades virkne atbilst ievades validācijas noteikumam (skatiet parametrus zemāk).
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 ar komatiem atdalītā sarakstā.
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 kā Ievades tips ir atlasīts 'Nolaižamais saraksts'.
Noklusējuma ievades virkne Ievadiet noklusējuma virkni lietotāja ievadei (vai neatstājiet nevienu).
Šis lauks tiks validēts atbilstoši regulārajai izteiksmei, 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īta '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 kā Ievades tips ir atlasīta 'Virkne'.
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 iespējots ar iepriekš minēto izvēles rūtiņu (piemēram, Attālinātā sistēma tiks pārstartēta. Vai tiešām turpināt?). Lai redzētu, kā teksts izskatīsies, noklikšķiniet uz Pārbaudīt apstiprinājumu blakus laukam.
Makro un pielāgotie lietotāja makro tiek atbalstīti.
Piezīme: pārbaudot apstiprinājuma ziņojumu, makro netiks izvērsti.

Ja ir konfigurēta gan manuālā 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 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).