7 Tīmekļa uzraudzība

Pārskats

Ar Zabbix jūs varat pārbaudīt vairākus tīmekļa vietņu pieejamības aspektus.\

Lai veiktu tīmekļa uzraudzību, Zabbix serverim sākotnēji jābūt configured ar cURL (libcurl) atbalstu.

Lai aktivizētu tīmekļa uzraudzību, jums jādefinē tīmekļa scenāriji. Tīmekļa scenārijs sastāv no viena vai vairākiem HTTP pieprasījumiem jeb "soļiem". Soļi tiek periodiski izpildīti Zabbix serverī iepriekš noteiktā secībā. Ja hosts tiek uzraudzīts ar starpniekserveri, soļus izpilda starpniekserveris.

Tīmekļa scenāriji tiek piesaistīti hostiem/veidnēm tāpat kā vienumi, trigeri utt. Tas nozīmē, ka tīmekļa scenārijus var izveidot arī veidnes līmenī un pēc tam vienā darbībā piemērot vairākiem hostiem.

Jebkurā tīmekļa scenārijā tiek apkopota šāda informācija:

  • vidējais lejupielādes ātrums sekundē visiem visa scenārija soļiem
  • neizdevušās darbības soļa numurs
  • pēdējais kļūdas ziņojums

Jebkurā tīmekļa scenārija solī tiek apkopota šāda informācija:

  • lejupielādes ātrums sekundē
  • atbildes laiks
  • atbildes kods

Plašāku informāciju skatiet sadaļā tīmekļa uzraudzības vienumi.

Dati, kas iegūti, izpildot tīmekļa scenārijus, tiek glabāti datubāzē. Šie dati tiek automātiski izmantoti grafikiem, trigeriem un paziņojumiem.

Zabbix var arī pārbaudīt, vai saņemtā HTML lapa satur iepriekš definētu virkni. Tas var izpildīt simulētu pieteikšanos un sekot simulētu peles klikšķu ceļam lapā.

Zabbix tīmekļa uzraudzība atbalsta gan HTTP, gan HTTPS. Izpildot tīmekļa scenāriju, Zabbix pēc izvēles sekos pāradresācijām (skatiet opciju Sekot pāradresācijām zemāk). Maksimālais pāradresāciju skaits ir stingri noteikts uz 10 (izmantojot cURL opciju CURLOPT_MAXREDIRS). Visas sīkdatnes tiek saglabātas viena scenārija izpildes laikā.

Tīmekļa scenārija konfigurēšana

Lai konfigurētu tīmekļa scenāriju:

  • Dodieties uz: Datu ievākšana → Hosti (vai Veidnes)
  • Noklikšķiniet uz Tīmeklis attiecīgā hosta/veidnes rindā
  • Noklikšķiniet uz Izveidot tīmekļa scenāriju labajā pusē (vai uz scenārija nosaukuma, lai rediģētu esošu scenāriju)
  • Ievadiet scenārija parametrus formā

Cilne Scenārijs ļauj konfigurēt tīmekļa scenārija vispārīgos parametrus.

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

Scenārija parametri:

Parametrs Apraksts
Nosaukums Unikāls scenārija nosaukums.
Tiek atbalstīti lietotāja makrosi. Ņemiet vērā, ka, ja tiek izmantoti lietotāja makrosi, šie makrosi tīmekļa uzraudzības vienumu nosaukumos paliks neatrisināti.
Atjaunināšanas intervāls Cik bieži scenārijs tiks izpildīts.
Tiek atbalstīti laika sufiksi, piemēram, 30s, 1m, 2h, 1d.
Tiek atbalstīti lietotāja makrosi. Ņemiet vērā, ka, ja tiek izmantots lietotāja makross un tā vērtība tiek mainīta (piemēram, 5m → 30s), nākamā pārbaude tiks izpildīta saskaņā ar iepriekšējo vērtību (piemērā norādīto vērtību gadījumā — vēlāk nākotnē).
Jauni tīmekļa scenāriji tiks pārbaudīti 60 sekunžu laikā pēc to izveides.
Mēģinājumi Mēģinājumu skaits tīmekļa scenārija soļu izpildei. Tīkla problēmu gadījumā (taimauts, nav savienojamības u.c.) Zabbix var atkārtot soļa izpildi vairākas reizes. Iestatītais skaits vienādi ietekmēs katru scenārija soli. Var norādīt līdz 10 mēģinājumiem, noklusējuma vērtība ir 1.
Piezīme: Zabbix neatkārtos soli nepareiza atbildes koda vai prasītās virknes neatbilstības dēļ.
Aģents Atlasiet klienta aģentu.
Zabbix uzdosies par atlasīto pārlūku. Tas ir noderīgi, ja vietne dažādiem pārlūkiem atgriež atšķirīgu saturu.
Šajā laukā var izmantot lietotāja makrosus.
HTTP starpniekserveris Varat norādīt izmantojamo HTTP starpniekserveri, izmantojot formātu [protocol://][username[:password]@]proxy.example.com[:port].
Tas iestata cURL opciju CURLOPT_PROXY.
Neobligāto prefiksu protocol:// var izmantot, lai norādītu alternatīvus starpniekservera protokolus (protokola prefiksa atbalsts tika pievienots cURL 7.21.7). Ja protokols nav norādīts, starpniekserveris tiks uzskatīts par HTTP starpniekserveri.
Pēc noklusējuma tiks izmantots 1080. ports.
Ja norādīts, starpniekserveris pārrakstīs ar starpniekserveri saistītos vides mainīgos, piemēram, http_proxy, HTTPS_PROXY. Ja nav norādīts, starpniekserveris nepārrakstīs ar starpniekserveri saistītos vides mainīgos. Ievadītā vērtība tiek nodota "kā ir", bez jebkādas korektuma pārbaudes.
Varat ievadīt arī SOCKS starpniekservera adresi. Ja norādīsiet nepareizu protokolu, savienojums neizdosies un vienums kļūs neatbalstīts.
Ņemiet vērā, ka ar HTTP starpniekserveri tiek atbalstīta tikai vienkāršā autentifikācija.
Šajā laukā var izmantot lietotāja makrosus.
Mainīgie Mainīgie, kurus var izmantot scenārija soļos (URL, post mainīgie).
Tiem ir šāds formāts:
{macro1}=value1
{macro2}=value2
{macro3}=regex:<regular expression>
{macro4}=jsonpath:<jsonpath>
{macro5}=xmlxpath:<xmlxpath>
{macro6}={{macro}.function()} (skatiet makrosu funkcijas)
Piemēram:
{username}=Alexei
{password}=kj3h5kJ34bd
{hostid}=regex:hostid is ([0-9]+)
{url}=jsonpath:$.host_url
{status}=xmlxpath://host/response/status
{newvar}={{myvar}.btoa()}
Pēc tam uz makrosiem soļos var atsaukties kā uz {username}, {password}, {hostid} utt. Zabbix automātiski aizstās tos ar faktiskajām vērtībām. Ņemiet vērā, ka mainīgajiem ar regex: ir nepieciešams viens solis, lai iegūtu regulārās izteiksmes vērtību, tāpēc iegūto vērtību var piemērot tikai nākamajam solim.
Ja vērtības daļa sākas ar regex:, tad daļa pēc tās tiek uzskatīta par regulāro izteiksmi, kas meklē tīmekļa lapā un, ja tiek atrasta, saglabā atbilstību mainīgajā. Jābūt vismaz vienai apakšgrupai, lai varētu iegūt atbilstošo vērtību.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Mainīgie tiek automātiski URL kodēti, ja tos izmanto vaicājuma laukos vai formas datos post mainīgajiem, taču tie ir manuāli URL jākodē, ja tos izmanto neapstrādātā post saturā vai tieši URL.
Galvenes Veicot pieprasījumu, tiek izmantotas HTTP galvenes. Var izmantot noklusējuma un pielāgotās galvenes.
Galvenes tiks piešķirtas, izmantojot noklusējuma iestatījumus atkarībā no aģenta tipa, kas atlasīts scenārija līmenī nolaižamajā sarakstā, un tās tiks piemērotas visiem soļiem, ja vien tās nav pielāgoti definētas soļa līmenī.
Jāņem vērā, ka galvenes definēšana soļa līmenī automātiski atmet visas iepriekš definētās galvenes, izņemot noklusējuma galveni, kas tiek piešķirta, scenārija līmenī nolaižamajā sarakstā atlasot 'User-Agent'.
Tomēr pat noklusējuma galveni 'User-Agent' var pārrakstīt, to norādot soļa līmenī.
Lai noņemtu galveni scenārija līmenī, galvene soļa līmenī ir jānorāda ar nosaukumu, bet bez vērtības.
Galvenes jāuzskaita, izmantojot to pašu sintaksi, kādā tās parādītos HTTP protokolā, pēc izvēles izmantojot dažas papildu iespējas, ko atbalsta cURL opcija CURLOPT_HTTPHEADER.
Piemēram:
Accept-Charset=utf-8
Accept-Language=en-US
Content-Type=application/xml; charset=utf-8
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Iespējots Scenārijs ir aktīvs, ja šī izvēles rūtiņa ir atzīmēta, pretējā gadījumā — atspējots.

Ņemiet vērā, ka, rediģējot esošu scenāriju, formā ir pieejamas divas papildu pogas:

Izveidot citu scenāriju, pamatojoties uz esošā scenārija īpašībām.
Dzēst scenārija vēstures un tendenču datus. Tas liks serveris izpildīt scenāriju uzreiz pēc datu dzēšanas.

Ja lauks HTTP starpniekserveris ir atstāts tukšs, vēl viens veids, kā izmantot HTTP starpniekserveri, ir iestatīt ar starpniekserveri saistītos vides mainīgos.

HTTP pārbaudēm — iestatiet vides mainīgo http_proxy Zabbix servera lietotājam. Piemēram, http_proxy=http://proxy_ip:proxy_port.

HTTPS pārbaudēm — iestatiet vides mainīgo HTTPS_PROXY. Piemēram, HTTPS_PROXY=http://proxy_ip:proxy_port. Papildu informācija ir pieejama, izpildot čaulas komandu: # man curl.

Cilne Soļi ļauj konfigurēt tīmekļa scenārija soļus. Lai pievienotu tīmekļa scenārija soli, noklikšķiniet uz Pievienot blokā Soļi.

Slepenos lietotāja makrosus nedrīkst izmantot URL, jo tie tiks atrisināti kā "******".

Soļu konfigurēšana

Soļa parametri:

Parametrs Apraksts
Nosaukums Unikāls soļa nosaukums.
Tiek atbalstīti lietotāja makrosi. Ņemiet vērā, ka, ja tiek izmantoti lietotāja makrosi, šie makrosi tīmekļa uzraudzības vienuma nosaukumos paliks neatrisināti.
URL URL, ar kuru izveidot savienojumu un no kura iegūt datus. Piemēram:
https://www.example.com
http://www.example.com/download
Domēna nosaukumus var norādīt Unicode rakstzīmēs. Izpildot tīmekļa scenārija soli, tie automātiski tiek pārveidoti no punycode uz ASCII.
Pogu Parse var izmantot, lai no URL atdalītu neobligātos vaicājuma laukus (piemēram, ?name=Admin&password=mypassword), pārvietojot atribūtus un vērtības uz Query fields automātiskai URL kodēšanai.
URL var izmantot mainīgos, izmantojot sintaksi {macro}. Mainīgos var manuāli URL kodēt, izmantojot sintaksi {{macro}.urlencode()}.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Ierobežots līdz 2048 rakstzīmēm.
Query fields URL HTTP GET mainīgie.
Norādīti kā atribūtu un vērtību pāri.
Vērtības tiek automātiski URL kodētas. Vērtības no scenārija mainīgajiem, lietotāja makrosiem vai {HOST.*} makrosiem tiek atrisinātas un pēc tam automātiski URL kodētas. Izmantojot sintaksi {{macro}.urlencode()}, tās tiks URL kodētas divreiz.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Post HTTP POST mainīgie.
Režīmā Form data tie tiek norādīti kā atribūtu un vērtību pāri.
Vērtības tiek automātiski URL kodētas. Vērtības no scenārija mainīgajiem, lietotāja makrosiem vai {HOST.*} makrosiem tiek atrisinātas un pēc tam automātiski URL kodētas.
Režīmā Raw data atribūti/vērtības tiek parādīti vienā rindā un savienoti ar simbolu &.
Neapstrādātas vērtības var manuāli URL kodēt/dekodēt, izmantojot sintaksi {{macro}.urlencode()} vai {{macro}.urldecode()}.
Piemēram: id=2345&userid={user}
Ja {user} ir definēts kā tīmekļa scenārija mainīgais, izpildot soli tas tiks aizstāts ar savu vērtību. Ja vēlaties mainīgo URL kodēt, aizstājiet {user} ar {{user}.urlencode()}.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Variables Soļa līmeņa mainīgie, kurus var izmantot GET un POST funkcijām.
Norādīti kā atribūtu un vērtību pāri.
Soļa līmeņa mainīgie pārraksta scenārija līmeņa mainīgos vai iepriekšējā soļa mainīgos. Tomēr soļa līmeņa mainīgā vērtība ietekmē tikai nākamo soli (nevis pašreizējo soli).
Tiem ir šāds formāts:
{macro}=value
{macro}=regex:<regular expression>
Papildinformāciju skatiet mainīgo aprakstā scenārija līmenī.
Mainīgie tiek automātiski URL kodēti, ja tos izmanto vaicājuma laukos vai formas datos POST mainīgajiem, bet tie ir manuāli URL jākodē, ja tos izmanto neapstrādātā POST vai tieši URL.
Headers Pielāgotas HTTP galvenes, kas tiks nosūtītas, izpildot pieprasījumu.
Norādītas kā atribūtu un vērtību pāri.
Soļa līmenī definēta galvene tiks izmantota tikai attiecīgajam solim.
Jāņem vērā, ka galvenes definēšana soļa līmenī automātiski atmet visas iepriekš definētās galvenes, izņemot noklusējuma galveni, kas tiek piešķirta, scenārija līmenī nolaižamajā sarakstā izvēloties 'User-Agent'.
Tomēr pat 'User-Agent' noklusējuma galveni var pārrakstīt, norādot to soļa līmenī.
Piemēram, piešķirot galvenei nosaukumu, bet nenorādot vērtību, scenārija līmeņa noklusējuma galvene tiks noņemta.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Tas iestata cURL opciju CURLOPT_HTTPHEADER.
Follow redirects Atzīmējiet izvēles rūtiņu, lai sekotu HTTP pāradresācijām.
Tas iestata cURL opciju CURLOPT_FOLLOWLOCATION.
Retrieve mode Atlasiet iegūšanas režīmu:
Body - iegūt tikai HTTP atbildes pamattekstu
Headers - iegūt tikai HTTP atbildes galvenes
Body and headers - iegūt HTTP atbildes pamattekstu un galvenes
Timeout Zabbix URL apstrādei netērēs vairāk par iestatīto laiku (no vienas sekundes līdz maksimāli 1 stundai). Faktiski šis parametrs nosaka maksimālo laiku savienojuma izveidei ar URL un maksimālo laiku HTTP pieprasījuma izpildei. Tādēļ Zabbix šim solim netērēs vairāk par 2 x Timeout sekundēm.
Tiek atbalstīti laika sufiksi, piemēram, 30s, 1m, 1h. Tiek atbalstīti lietotāja makrosi.
Required string Obligāts regulārās izteiksmes raksts.
Ja vien iegūtais saturs (HTML) neatbilst obligātajam rakstam, solis neizdosies. Ja lauks ir tukšs, obligātās virknes pārbaude netiek veikta.
Piemēram:
Homepage of Zabbix
Welcome.*admin
Piezīme: Šajā laukā netiek atbalstīta atsauce uz regulārajām izteiksmēm, kas izveidotas Zabbix lietotāja saskarnē.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Required status codes Sagaidāmo HTTP statusa kodu saraksts. Ja Zabbix saņem kodu, kas nav sarakstā, solis neizdosies.
Ja lauks ir tukšs, statusa kodu pārbaude netiek veikta.
Piemēram: 200,201,210-299
Tiek atbalstīti lietotāja makrosi.

Jebkādas izmaiņas tīmekļa scenārija soļos tiks saglabātas tikai tad, kad tiks saglabāts viss scenārijs.

Skatiet arī reālas dzīves piemēru, kā var konfigurēt tīmekļa uzraudzības soļus.

Birku konfigurēšana

Cilne Tags ļauj definēt scenārija līmeņa birkas.

Birku izmantošana ļauj filtrēt tīmekļa scenārijus un tīmekļa uzraudzības vienumus.

Autentifikācijas konfigurēšana

Cilne Authentication ļauj konfigurēt scenārija autentifikācijas opcijas. Zaļš punkts blakus cilnes nosaukumam norāda, ka ir iespējots kāds HTTP autentifikācijas veids.

Autentifikācijas parametri:

Parametrs Apraksts
HTTP authentication Izvēlieties autentifikācijas opciju:
None - autentifikācija netiek izmantota;
Basic - tiek izmantota pamata autentifikācija;
NTLM - tiek izmantota NTLM (Windows NT LAN Manager) autentifikācija;
Kerberos - tiek izmantota Kerberos autentifikācija (skatiet arī: Configuring Kerberos with Zabbix);
Digest - tiek izmantota Digest autentifikācija.
User Ievadiet lietotājvārdu (līdz 255 rakstzīmēm).
Šis lauks ir pieejams, ja HTTP authentication ir iestatīts uz Basic, NTLM, Kerberos vai Digest. Tiek atbalstīti lietotāja makrosi.
Password Ievadiet lietotāja paroli (līdz 255 rakstzīmēm).
Šis lauks ir pieejams, ja HTTP authentication ir iestatīts uz Basic, NTLM, Kerberos vai Digest. Tiek atbalstīti lietotāja makrosi.
SSL verify peer Atzīmējiet izvēles rūtiņu, lai pārbaudītu tīmekļa servera SSL sertifikātu.
Servera sertifikāts tiks automātiski ņemts no sistēmas sertifikātu iestādes (CA) atrašanās vietas. CA failu atrašanās vietu varat pārrakstīt, izmantojot Zabbix serveris vai starpniekserveris konfigurācijas parametru SSLCALocation.
Tas iestata CURLOPT_SSL_VERIFYPEER cURL opciju.
SSL verify host Atzīmējiet izvēles rūtiņu, lai pārbaudītu, vai tīmekļa servera sertifikāta lauks Common Name vai lauks Subject Alternate Name atbilst.
Tas iestata CURLOPT_SSL_VERIFYHOST cURL opciju.
SSL certificate file SSL sertifikāta faila nosaukums, kas tiek izmantots klienta autentifikācijai. Sertifikāta failam jābūt PEM1 formātā. Ja sertifikāta fails satur arī privāto atslēgu, atstājiet lauku SSL key file tukšu. Ja atslēga ir šifrēta, norādiet paroli laukā SSL key password. Direktoriju, kurā atrodas šis fails, nosaka Zabbix serveris vai starpniekserveris konfigurācijas parametrs SSLCertLocation.
Šajā laukā var izmantot HOST.* makrosus un lietotāja makrosus.
Tas iestata CURLOPT_SSLCERT cURL opciju.
SSL key file SSL privātās atslēgas faila nosaukums, kas tiek izmantots klienta autentifikācijai. Privātās atslēgas failam jābūt PEM1 formātā. Direktoriju, kurā atrodas šis fails, nosaka Zabbix serveris vai starpniekserveris konfigurācijas parametrs SSLKeyLocation.
Šajā laukā var izmantot HOST.* makrosus un lietotāja makrosus.
Tas iestata CURLOPT_SSLKEY cURL opciju.
SSL key password SSL privātās atslēgas faila parole.
Šajā laukā var izmantot lietotāja makrosus.
Tas iestata CURLOPT_KEYPASSWD cURL opciju.

[1] Zabbix atbalsta tikai sertifikātu un privātās atslēgas failus PEM formātā. Ja jūsu sertifikāta un privātās atslēgas dati ir PKCS #12 formāta failā (parasti ar paplašinājumu *.p12 vai *.pfx), no tā varat ģenerēt PEM failu, izmantojot šādas komandas:

openssl pkcs12 -in ssl-cert.p12 -clcerts -nokeys -out ssl-cert.pem
openssl pkcs12 -in ssl-cert.p12 -nocerts -nodes  -out ssl-cert.key

Zabbix serveris uztver izmaiņas sertifikātos bez restartēšanas.

Ja klienta sertifikāts un privātā atslēga ir vienā failā, vienkārši norādiet to laukā "SSL certificate file" un atstājiet lauku "SSL key file" tukšu. Sertifikātam un atslēgai joprojām jābūt PEM formātā. Sertifikāta un atslēgas apvienošana ir vienkārša:

cat client.crt client.key > client.pem

Attēlošana

Lai skatītu hostam konfigurētos tīmekļa scenārijus, dodieties uz Uzraudzība → Hosti, atrodiet hostu sarakstā un pēdējā kolonnā noklikšķiniet uz Web hipersaites. Noklikšķiniet uz scenārija nosaukuma, lai iegūtu detalizētu informāciju.

Tīmekļa scenāriju pārskatu var attēlot arī sadaļā Paneļi ar tīmekļa uzraudzības logrīku.

Jaunākie tīmekļa scenārija izpildes rezultāti ir pieejami sadaļā Uzraudzība → Jaunākie dati.

Paplašinātā uzraudzība

Dažreiz ir nepieciešams reģistrēt saņemtās HTML lapas saturu. Tas ir īpaši noderīgi, ja kāds tīmekļa scenārija solis neizdodas. Šim nolūkam kalpo 5. atkļūdošanas līmenis (izsekošana). Šo līmeni var iestatīt serveris un starpniekserveris konfigurācijas failos vai izmantojot izpildlaika vadības opciju (-R log_level_increase="http poller,N", kur N ir procesa numurs). Tālāk sniegtie piemēri parāda, kā var palaist paplašināto uzraudzību, ja 4. atkļūdošanas līmenis jau ir iestatīts:

# Palielināt žurnāla līmeni visiem http poller procesiem:
zabbix_server -R log_level_increase="http poller"

# Palielināt žurnāla līmeni otrajam http poller procesam:
zabbix_server -R log_level_increase="http poller,2"

Ja paplašinātā tīmekļa uzraudzība nav nepieciešama, to var apturēt, izmantojot opciju -R log_level_decrease.