9 Tīmekļa uzraudzība

Pārskats

Ar Zabbix 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 konfigurētam 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ļus periodiski izpilda Zabbix serveris 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ā reizē 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
  • neveiksmīgā 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ļā web monitoring items.

No tīmekļa scenāriju izpildes savāktie dati tiek glabāti datubāzē. Šie dati tiek automātiski izmantoti diagrammām, trigeriem un paziņojumiem.

Zabbix var arī pārbaudīt, vai iegūtā HTML lapa satur iepriekš noteiktu 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. Palaižot tīmekļa scenāriju, Zabbix pēc izvēles sekos pāradresācijām (skatiet tālāk opciju Sekot pāradresācijām). Maksimālais pāradresāciju skaits ir fiksēts 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 apkopošana > Hosts (vai Veidnes)
  • Hosts/veidnes rindā noklikšķiniet uz Tīmeklis
  • Labajā pusē noklikšķiniet uz Izveidot tīmekļa scenāriju (vai noklikšķiniet uz scenārija nosaukuma, lai rediģētu esošu scenāriju)
  • Formā ievadiet scenārija parametrus

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 makro. Ņemiet vērā, ka, izmantojot lietotāja makro, šie makro tīmekļa uzraudzības vienumu nosaukumos paliks neatrisināti.
Atjaunināšanas intervāls Cik bieži tiks izpildīts scenārijs.
Tiek atbalstīti laika sufiksi, piemēram, 30s, 1m, 2h, 1d.
Tiek atbalstīti lietotāja makro. Ņemiet vērā, ka, ja tiek izmantots lietotāja makro un tā vērtība tiek mainīta (piemēram, 5m → 30s), nākamā pārbaude tiks veikta atbilstoši iepriekšējai vērtībai (piemērā norādīto vērtību gadījumā — vēlāk).
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ā (noildze, savienojuma trūkums u. c.) Zabbix var atkārtot soļa izpildi vairākas reizes. Norādī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 nepieciešamās virknes neatbilstības dēļ.
Aģents Atlasiet klienta aģentu.
Zabbix izliksies par atlasīto pārlūkprogrammu. Tas ir noderīgi, ja tīmekļa vietne dažādām pārlūkprogrammām atgriež atšķirīgu saturu.
Šajā laukā var izmantot lietotāja makro.
HTTP starpniekserveris Varat norādīt izmantojamo HTTP starpniekserveri, izmantojot formātu [protocol://][username[:password]@]proxy.example.com[:port].
Tādējādi tiek iestatīta CURLOPT_PROXY cURL opcija.
Neobligāto prefiksu protocol:// var izmantot, lai norādītu alternatīvus starpniekservera protokolus (protokola prefiksa atbalsts tika pievienots cURL 7.21.7 versijā). Ja protokols nav norādīts, starpniekserveris tiks uzskatīts par HTTP starpniekserveri.
Pēc noklusējuma tiks izmantots 1080. ports.
Ja starpniekserveris ir norādīts, tas aizstās ar starpniekserveri saistītos vides mainīgos, piemēram, http_proxy, HTTPS_PROXY. Ja starpniekserveris nav norādīts, tas nepārrakstīs ar starpniekserveri saistītos vides mainīgos. Ievadītā vērtība tiek nodota “tāda, kāda tā ir”; tās pareizība netiek pārbaudīta.
Varat ievadīt arī SOCKS starpniekservera adresi. Ja norādīsiet nepareizu protokolu, savienojums neizdosies un vienums kļūs neatbalstīts.
Piezīme: HTTP starpniekserverim tiek atbalstīta tikai vienkāršā autentifikācija.
Šajā laukā var izmantot lietotāja makro.
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 makro 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 makro soļos var atsaukties kā uz {username}, {password}, {hostid} u. c. Zabbix tos automātiski aizstās 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 izmantot tikai nākamajā solī.
Ja vērtības daļa sākas ar regex:, daļa pēc tā tiek uzskatīta par regulāro izteiksmi, kas meklē tīmekļa lapā un, ja atrod, saglabā atbilstību mainīgajā. Lai varētu iegūt atbilstošo vērtību, jābūt vismaz vienai apakšgrupai.
Tiek atbalstīti lietotāja makro un {HOST.*} makro.
Izmantojot mainīgos vaicājuma laukos vai veidlapas datos POST mainīgajiem, tiem automātiski tiek veikta URL kodēšana, taču, izmantojot tos neapstrādātā POST pieprasījumā vai tieši URL, URL kodēšana jāveic manuāli.
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 scenārija līmenī nolaižamajā sarakstā atlasītā aģenta tipa, un tās tiks lietotas visiem soļiem, ja vien tās nav pielāgotas soļa līmenī.
Ņemiet 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 piešķirta, scenārija līmenī nolaižamajā sarakstā atlasot “User-Agent”.
Tomēr arī šo noklusējuma galveni “User-Agent” var aizstāt, norādot to soļa līmenī.
Lai atceltu galveni scenārija līmenī, soļa līmenī galvene jānosauc un tai jāpiešķir tukša vērtība.
Galvenes jānorāda, izmantojot tādu pašu sintaksi, kāda tiek izmantota HTTP protokolā, pēc izvēles izmantojot dažas papildu funkcijas, ko atbalsta CURLOPT_HTTPHEADER cURL opcija.
Piemēram:
Accept-Charset=utf-8
Accept-Language=en-US
Content-Type=application/xml; charset=utf-8
Tiek atbalstīti lietotāja makro un {HOST.*} makro.
Iespējots Ja šī izvēles rūtiņa ir atzīmēta, scenārijs ir aktīvs; pretējā gadījumā tas ir atspējots.

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

Izveidot citu scenāriju, pamatojoties uz esošā scenārija rekvizītiem.
Dzēst scenārija vēstures un tendenču datus. Tādējādi serveris izpildīs scenāriju uzreiz pēc datu dzēšanas.

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

HTTP pārbaužu gadījumā iestatiet http_proxy vides mainīgo Zabbix servera lietotājam. Piemēram, http_proxy=http://proxy_ip:proxy_port.

HTTPS pārbaužu gadījumā iestatiet HTTPS_PROXY vides mainīgo. Piemēram, HTTPS_PROXY=http://proxy_ip:proxy_port. Plašāka 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, blokā Soļi noklikšķiniet uz Pievienot.

Slepenos lietotāja makro nedrīkst izmantot URL, jo tie tiks aizstāti ar "******".

Darbību konfigurēšana

Darbības parametri:

Parametrs Apraksts
Nosaukums Unikāls darbības nosaukums.<brTiek 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.
URL URL, ar kuru izveidot savienojumu un no kura izgū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 darbību, tie tiek automātiski pārveidoti ASCII formātā, izmantojot punycode.
Pogu Parsēt var izmantot, lai no URL atdalītu neobligātos vaicājuma laukus (piemēram, ?key=value&limit=10), pārvietojot atribūtus un vērtības uz Vaicājuma laukiem, lai tos automātiski kodētu URL formātā.
URL var izmantot mainīgos, izmantojot sintaksi {macro}. Mainīgos var manuāli kodēt URL formātā, izmantojot sintaksi {{macro}.urlencode()}.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Drošības apsvērumu dēļ URL neiekļaujiet faktiskos lietotājvārdus vai paroles. Tā vietā izmantojiet lietotāja makrosus, lai nepieļautu akreditācijas datu atklāšanu.
Ierobežots līdz 2048 rakstzīmēm.
Vaicājuma lauki HTTP GET mainīgie URL adresēm.
Norādīti kā atribūtu un vērtību pāri.
Vērtības tiek automātiski kodētas URL formātā. Tīmekļa scenārija mainīgo, lietotāja makrosu vai {HOST.*} makrosu vērtības tiek atrisinātas un pēc tam automātiski kodētas URL formātā. Izmantojot sintaksi {{macro}.urlencode()}, tās tiks kodētas URL formātā divreiz.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
POST HTTP POST mainīgie.
Režīmā Veidlapas dati tie tiek norādīti kā atribūtu un vērtību pāri.
Vērtības tiek automātiski kodētas URL formātā. Tīmekļa scenārija mainīgo, lietotāja makrosu vai {HOST.*} makrosu vērtības tiek atrisinātas un pēc tam automātiski kodētas URL formātā.
Režīmā Neapstrādāti dati atribūti un vērtības tiek parādīti vienā rindā un savienoti ar simbolu &.
Neapstrādātas vērtības var manuāli kodēt vai dekodēt URL formā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 darbību, tas tiks aizstāts ar savu vērtību. Ja vēlaties mainīgo kodēt URL formātā, aizstājiet {user} ar {{user}.urlencode()}.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Mainīgie Darbības līmeņa mainīgie, kurus var izmantot GET un POST funkcijās.
Norādīti kā atribūtu un vērtību pāri.
Darbības līmeņa mainīgie aizstāj scenārija līmeņa mainīgos vai iepriekšējās darbības mainīgos. Tomēr darbības līmeņa mainīgā vērtība ietekmē tikai nākamo darbību, nevis pašreizējo darbību.
Tiem ir šāds formāts:
{macro}=value
{macro}=regex:<regular expression>
Papildinformāciju skatiet mainīgo aprakstā scenārija līmenī.
Izmantojot mainīgos vaicājuma laukos vai veidlapas datos POST mainīgajiem, tie tiek automātiski kodēti URL formātā, bet, izmantojot tos neapstrādātā POST pieprasījumā vai tieši URL, tie ir manuāli jākodē URL formātā.
Galvenes Pielāgotas HTTP galvenes, kas tiks nosūtītas, izpildot pieprasījumu.
Norādītas kā atribūtu un vērtību pāri.
Darbības līmenī definēta galvene tiks izmantota konkrētajai darbībai.
Ņemiet vērā, ka, definējot galveni darbības līmenī, automātiski tiek atmestas visas iepriekš definētās galvenes, izņemot noklusējuma galveni, kas piešķirta, scenārija līmenī nolaižamajā sarakstā atlasot “User-Agent”.
Tomēr arī noklusējuma galveni “User-Agent” var aizstāt, norādot to darbības līmenī.
Piemēram, piešķirot galvenei nosaukumu, bet nenorādot vērtību, tiks atcelta noklusējuma galvene scenārija līmenī.
Tiek atbalstīti lietotāja makrosi un {HOST.*} makrosi.
Tādējādi tiek iestatīta cURL opcija CURLOPT_HTTPHEADER.
Sekot novirzēm Atzīmējiet izvēles rūtiņu, lai sekotu HTTP novirzēm.
Tādējādi tiek iestatīta cURL opcija CURLOPT_FOLLOWLOCATION.
Izgūšanas režīms Atlasiet izgūšanas režīmu:
Pamatteksts - no HTTP atbildes izgūt tikai pamattekstu
Galvenes - no HTTP atbildes izgūt tikai galvenes
Pamatteksts un galvenes - no HTTP atbildes izgūt pamattekstu un galvenes
Noildze Zabbix URL apstrādei nepatē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āpēc Zabbix darbībai nepatē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.
Nepieciešamā virkne Nepieciešamais regulārās izteiksmes paraugs.
Ja izgūtais saturs (HTML) neatbilst nepieciešamajam paraugam, darbība neizdosies. Ja lauks ir tukšs, nepieciešamā 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.
Nepieciešamie statusa kodi Sagaidāmo HTTP statusa kodu saraksts. Ja Zabbix saņem kodu, kas nav iekļauts sarakstā, darbība neizdosies.
Ja lauks ir tukšs, statusa kodu pārbaude netiek veikta.
Piemēram: 200,201,210-299
Tiek atbalstīti lietotāja makrosi.

Jebkuras izmaiņas tīmekļa scenārija darbībās tiks saglabātas tikai tad, kad tiks saglabāts viss scenārijs.

Skatiet arī praktisku piemēru, kurā aprakstīts, kā konfigurēt tīmekļa uzraudzības darbības.

Tagu konfigurēšana

Cilne Tagi ļauj definēt scenārija līmeņa tagus.

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

Autentifikācijas konfigurēšana

Cilne Autentifikācija ļ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 autentifikācija Atlasiet 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ī: Kerberos konfigurēšana ar Zabbix);
Digest - tiek izmantota Digest autentifikācija.
Lietotājs Ievadiet lietotājvārdu (līdz 255 rakstzīmēm).
Šis lauks ir pieejams, ja HTTP autentifikācija ir iestatīta uz Basic, NTLM, Kerberos vai Digest. Tiek atbalstīti lietotāja makro.
Parole Ievadiet lietotāja paroli (līdz 255 rakstzīmēm).
Šis lauks ir pieejams, ja HTTP autentifikācija ir iestatīta uz Basic, NTLM, Kerberos vai Digest. Tiek atbalstīti lietotāja makro.
SSL pārbaudīt partneri Atzīmējiet izvēles rūtiņu, lai pārbaudītu tīmekļa servera SSL sertifikātu.
Servera sertifikāts tiek pārbaudīts, izmantojot uzticamas sertificēšanas iestādes (CA) sertifikātus no visas sistēmas CA atrašanās vietas. CA failu atrašanās vietu varat mainīt, izmantojot Zabbix servera vai starpniekservera konfigurācijas parametru SSLCALocation.
Tādējādi tiek iestatīta cURL opcija CURLOPT_SSL_VERIFYPEER.
SSL pārbaudīt hostu Atzīmējiet izvēles rūtiņu, lai pārbaudītu, vai tīmekļa servera sertifikāta lauks Common Name vai Subject Alternate Name atbilst.
Tādējādi tiek iestatīta cURL opcija CURLOPT_SSL_VERIFYHOST.
SSL sertifikāta fails 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 atslēgas fails tukšu. Ja atslēga ir šifrēta, laukā SSL atslēgas parole norādiet paroli. Direktoriju, kurā atrodas šis fails, nosaka Zabbix servera vai starpniekservera konfigurācijas parametrs SSLCertLocation.
Šajā laukā var izmantot HOST.* makro un lietotāja makro.
Tādējādi tiek iestatīta cURL opcija CURLOPT_SSLCERT.
SSL atslēgas fails 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 servera vai starpniekservera konfigurācijas parametrs SSLKeyLocation.
Šajā laukā var izmantot HOST.* makro un lietotāja makro.
Tādējādi tiek iestatīta cURL opcija CURLOPT_SSLKEY.
SSL atslēgas parole SSL privātās atslēgas faila parole.
Šajā laukā var izmantot lietotāja makro.
Tādējādi tiek iestatīta cURL opcija CURLOPT_KEYPASSWD.

[1] Zabbix atbalsta tikai sertifikātu un privāto atslēgu failus PEM formātā. Ja sertifikāta un privātās atslēgas dati ir PKCS #12 formāta failā (parasti ar paplašinājumu *.p12 vai *.pfx), PEM failu no tā varat ģenerēt, 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 sertifikātu izmaiņas bez restartēšanas.

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

cat client.crt client.key > client.pem

Attēlošana

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

Tīmekļa scenāriju pārskatu var arī attēlot Dashboards sadaļā, izmantojot tīmekļa monitoringa logrīku.

Tīmekļa scenārija izpildes jaunākie rezultāti ir pieejami sadaļā Monitoring > Latest data.

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.