Уз Zabbix можете проверити неколико аспеката доступности веб локација.
За обављање веб надгледања Zabbix сервер мора бити иницијално configured са подршком за cURL (libcurl).
Да бисте активирали надгледање веба, потребно је да дефинишете веб сценарије. Веб сценарио се састоји од једне или више HTTP захтева или "корака". Кораци се периодично извршавају од стране Zabbix сервер по унапред дефинисаном редоследу. Ако домаћина надгледа прокси, кораке извршава прокси.
Веб сценарији су повезани са домаћинима/шаблонима на исти начин као и ставке, окидачи, итд. То значи да се веб сценарији могу креирати и на нивоу шаблона, а затим применити на више домаћина у једном потезу.
Следеће информације се прикупљају у било ком веб сценарију:
Следеће информације се прикупљају у било ком кораку веб сценарија:
За више детаља погледајте web monitoring items.
Подаци прикупљени извршавањем веб сценарија чувају се у бази података. Подаци се аутоматски користе за графиконе, окидаче и обавештења.
Zabbix такође може да провери да ли преузета HTML страница садржи унапред дефинисани стринг. Може да изврши симулирану пријаву и да прати путању симулације кликове мишем на страницу.
Zabbix веб надгледање подржава и HTTP и HTTPS. Када се извршава веб сценарио, Zabbix ће опционо пратити преусмеравања (погледајте опцију Follow redirects испод). Максималан број преусмеравања је фиксно кодиран на 10 (користећи опцију cURL CURLOPT_MAXREDIRS). Сви колачићи се чувају током извршавања једног сценарија.
Да бисте конфигурисали веб сценарио:
Картица Сценарио вам омогућава да конфигуришете опште параметре веб сценарија.
Сва обавезна поља за унос су означена црвеном звездицом.
Параметри сценарија:
Parameter | Description |
---|---|
Name | Јединствени назив сценарија. User macros су подржани. Имајте на уму да ако се користе кориснички макрои, ови макрои ће остати нерешени у именима web monitoring item. |
Update interval | Колико често ће се сценарио извршавати. Time suffixes су подржани, нпр. 30s, 1m, 2h, 1d. User macros су подржани. Имајте на уму да ако се користи кориснички макро и његова вредност се промени (нпр. 5m → 30s), следећа провера ће бити извршена према претходној вредности (даље у будућности са вредностима примера). Нови веб сценарији ће бити проверени у року од 60 секунди од њиховог креирања. |
Attempts | Број покушаја за извршавање корака веб сценарија. У случају проблема са мрежом (временско ограничење, нема везе, итд.) Zabbix може поновити извршавање корака неколико пута. Скуп цифара ће подједнако утицати на сваки корак сценарија. Може се навести до 10 покушаја, подразумевана вредност је 1. Напомена: Zabbix неће поновити корак због погрешног кода одговора или неподударања захтеваног низа. |
Agent | Изаберите агента клијента. Zabbix ће се претварати да је изабрани прегледач. Ово је корисно када веб локација враћа различит садржај за различите претраживаче. Кориснички макрои се могу користити у овом пољу. |
HTTP proxy | Можете да наведете HTTP прокси који ћете користити, користећи формат [protocol://][username[:password]@]proxy.example.com[:port] .Ово поставља CURLOPT_PROXY cURL опција. Опционални префикс protocol:// може се користити за одређивање алтернативних прокси протокола (протокол подршка за префикс је додата у cURL 7.21.7). Ако није наведен протокол, прокси ће се третирати као HTTP прокси.Подразумевано ће се користити 1080 порт. Ако је наведен, прокси ће преписати променљиве окружења које се односе на прокси као што су http_proxy, HTTPS_PROXY. Ако није наведено, прокси неће преписати променљиве окружења које се односе на прокси. Унета вредност се прослеђује "као што јесте", не врши се провера исправности. Можете да унесете и SOCKS прокси адресу. Ако наведете погрешан протокол, веза неће успети и ставка ће постати неподржана. Напомена да је само једноставна аутентификација подржана са HTTP проксијем. Кориснички макрои се могу користити у овом пољу. |
Variables | Променљиве које се могу користити у корацима сценарија (URL, post variables). Имају следећи формат: {macro1}=value1 {macro2}=value2 {macro3}=regex:<regular expression> {macro4}=jsonpath:<jsonpath> {macro5}=xmlxpath:<xmlxpath> {macro6}={{macro}.function()} (погледајте macro functions). Имајте на уму да користите JSONPath, XML XPath, и макро функције у променљивим су подржане од Zabbix-а 7.0.4. На пример: {username}=Alexei {password}=kj3h5kJ34bd {hostid}=regex:hostid is ([0-9]+) {url}=jsonpath:$.host_url {status}=xmlxpath://host/response/status {newvar}={{myvar}.btoa()} Макрои се тада могу референцирати у корацима као {username}, {password}, {hostid}, итд. Zabbix ће их аутоматски заменити стварним вредностима. Имајте на уму да је променљивама са regex: потребан један корак да добију вредност регуларног израза, тако да се екстрахована вредност може применити само на корак после.Ако део вредности почиње са regex: , онда део после њега се третира као регуларни израз који претражује веб страницу и, ако се пронађе, складишти подударање у променљивој. Најмање једна подгрупа мора да буде присутна да би се подударна вредност могла издвојити.Кориснички макрои и {HOST.*} macros су подржани. Променљиве су аутоматски URL енкодиране када се користи у пољима упита или подацима обрасца за променљиве поста, али морају бити ручно енкодиране када се користи у необрађеној објави или директно у URL. |
Headers | HTTP заглавља се користе приликом извршавања захтева. Могу се користити подразумевана и прилагођена заглавља. Заглавља ће бити додељена коришћењем подразумеваних подешавања у зависности од типа агента изабраног са падајуће листе на нивоу сценарија и биће примењена на све кораке, осим ако нису прилагођена дефинисана на ниво корака. Треба имати на уму да дефинисање заглавља на нивоу корака аутоматски одбацује сва претходно дефинисана заглавља, осим подразумеваног заглавља које се додељује избором "User-Agent" из падајућег менија листа на нивоу сценарија. Међутим, чак и подразумевано заглавље 'User-Agent' се може заменити тако што ћете га навести на нивоу корака. Да бисте поништили заглавље на нивоу сценарија, заглавље треба да буде именовано и приписано без вредности на нивоу корака. Заглавља треба да буду наведена користећи исту синтаксу као што би се појавила у HTTP протоколу, опционо користећи неке додатне функције које подржава CURLOPT_HTTPHEADER cURL опција. На пример: Accept-Charset=utf-8 Accept-Language=en-US Content-Type=application/xml; charset=utf-8 Кориснички макрои и {HOST.*} macros је подржан. |
Enabled | Сценарио је активан ако је ово поље означено, у супротном - онемогућено. |
Имајте на уму да су приликом уређивања постојећег сценарија доступна два додатна дугмета у обрасцу:
Креирајте други сценарио на основу својстава постојећег. | |
Избришите историју и податке тренда за сценарио. Ово ће натерати сервер да изврши сценарио одмах након брисања података. |
Ако поље HTTP proxy остане празно, други начин за коришћење HTTP проксија је постављање променљивих окружења које се односе на прокси.
За HTTP провере - подесите http_proxy променљиву окружења за корисника Zabbix сервера. На пример, http_proxy=http://proxy_ip:proxy_port
.
За HTTPS провере - подесите променљиву окружења HTTPS_PROXY. На пример, HTTPS_PROXY=http://proxy_ip:proxy_port
. Више детаља је доступно покретањем shell команде: # man curl.
Картица Кораци вам омогућава да конфигуришете кораке веб сценарија. Да бисте додали корак веб сценарија, кликните на Додај у блоку Кораци.
Тајни usermacros се не смеју користити у URLs јер ће се они разрешити у "******".
Параметри корака:
Parameter | Description |
---|---|
Name | Јединствени назив корака. User macros су подржани. Имајте на уму да ако се користе кориснички макрои, ови макрои ће остати нерешени у именима web monitoring item. |
URL | URL за повезивање и преузимање података. На пример: https://www.example.com http://www.example.com/download Имена домена се могу навести Unicode карактерима. Они се аутоматски конвертују у ASCII приликом извршавања корака веб сценарија. Дугме Parse се може користити за одвајање опционих поља упита (као што је ?name=Admin&password=mypassword) од URL адресе, премештајући атрибуте и вредности у Поља упита за аутоматско URL енкодирање . Променљиве се могу користити у URL, користећи синтаксу {macro}. Променљиве се могу ручно URL енкодирати користећи синтаксу {{macro}.urlencode()}. Подржани су кориснички макрои и {HOST.*} macros.<br >Ограничено на 2048 карактера. |
Query fields | HTTP GET променљиве за URL. Наведене као парови атрибута и вредности. Вредности се аутоматски кодирају у URL. Вредности из променљивих сценарија, корисничких макроа или макроа {HOST.*} се решавају и затим аутоматски кодирају URL. Коришћење синтаксе {{macro}.urlencode()} ће их удвостручити кодирање URL. Подржани су кориснички макрои и {HOST.*} macros. |
Post | HTTP POST променљиве. У режиму Подаци обрасца, наведени као парови атрибута и вредности. Вредности се аутоматски кодирају у URL. Вредности из променљивих сценарија, корисничких макроа или макроа {HOST.*} се решавају и затим аутоматски кодирају URL. У режиму Необрађени подаци, атрибути/вредности се приказују у једном реду и спајају са симболом &. Необрађене вредности могу да се кодирају/декодирају ручно помоћу {{macro}.urlencode()} или {{macro}.urlencode()} синтаксе. На пример: id= 2345&userid={user} Ако је {user} дефинисан као променљива веб сценарија, биће замењен његовом вредношћу када се корак изврши. Ако желите да URL енкодирате променљиву, замените {user} са {{user}.urlencode()}. Макрои корисника и {HOST.*} macros су подржани. |
Variables | Променљиве на нивоу корака које се могу користити за GET и POST функције. Наведене као парови атрибута и вредности. Променљиве на нивоу корака замењују променљиве или променљиве на нивоу сценарија из претходног корака. Међутим, вредност променљиве на нивоу корака утиче само на корак после (а не на тренутни корак). Имају следећи формат: {macro}=value {macro}=regex:<regular expression> За више информација погледајте опис променљиве на нивоу scenario. Променљиве се аутоматски URL енкодирају када се користе у пољима упита или подацима обрасца за пост променљиве, али морају бити ручно кодиране у URL када се користе у сировој објави или директно у URL. |
Headers | Прилагођена HTTP заглавља која ће бити послата приликом извршавања захтева. Наведено као парови атрибута и вредности. Заглавље дефинисано на нивоу корака ће се користити за тај одређени корак. ** Треба напоменути да дефинисање заглавља на нивоу корака аутоматски одбацује сва претходно дефинисана заглавља, осим подразумеваног заглавља које се додељује избором 'User-Agent' са падајуће листе на нивоу сценарија.** Међутим, чак и подразумевано заглавље 'User-Agent' може бити замењено тако што ћете га навести на нивоу корака. На пример, додељивање имена заглављу, али постављање без вредности ће поништити подразумевано заглавље на нивоу сценарија . Кориснички макрои и макрои {HOST.*} су подржани. Ово поставља опцију CURLOPT_HTTPHEADER cURL. |
Follow redirects | Означите поље за потврду да бисте пратили HTTP преусмеравања. Ово поставља опцију cURL |
CURLOPT_FOLLOWLOCATION. | |
Retrieve mode | Изаберите режим преузимања: Тело - преузми само тело из HTTP одговора Заглавља - преузима само заглавља из HTTP одговора Тело и заглавља - преузима тело и заглавља из HTTP одговора |
Timeout | Zabbix неће потрошити више од подешеног времена на обраду URL (од једне секунде до максимално 1 сата). У ствари, овај параметар дефинише максимално време за успостављање везе са URL-ом и максимално време за извођење HTTP захтева. Због тога Zabbix неће потрошити више од 2 x Timeout секунде на кораку. Time suffixes су подржани, нпр. 30s, 1m, 1h. User macros су подржани. |
Required string | Потребан образац регуларног израза. Осим ако се преузети садржај (HTML) не подудара са потребним шаблоном, корак неће успети. Ако је празно, не врши се провера потребног низа. На пример: Почетна страница Zabbix Welcome.*admin Напомена: Референца на regular expressions креирана у Zabbix корисничком интерфејсу није подржана у овом пољу. Кориснички макрои и {HOST.*} macros су подржани. |
Required status codes | Листа очекиваних HTTP статусних кодова. Ако Zabbix добије код који није на листи, корак неће успети. Ако је празан, не врши се провера статусних кодова. На пример: 200,201,210-299 Кориснички макрои су подржани. |
Све промене у корацима веб сценарија биће сачуване само када је цео сценарио сачуван.
Погледајте такође real-life example како могу да се конфигуришу кораци за праћење веба.
Картица Ознаке омогућава дефинисање нивоа сценарија tags.
Означавање омогућава филтрирање веб сценарија и праћење веба items.
Картица Аутентификација вам омогућава да конфигуришете сценарио опције аутентификације. Зелена тачка поред назива картице указује да је нека врста HTTP аутентификације омогућена.
Параметри аутентификације:
Parameter | Description |
---|---|
HTTP authentication | Изаберите опцију аутентификације: None - није коришћена аутентикација; Basic - користи се основна аутентификација; NTLM - NTLM (Windows NT LAN Manager) аутентификација; Kerberos - користи се Kerberos аутентификација (погледајте такође: Configuring Kerberos with Zabbix); Digest - Користи се провера аутентичности сажетка. |
User | Унесите корисничко име (до 255 карактера). Ово поље је доступно ако је HTTP аутентификација постављена на Basic, NTLM, Kerberos или Digest. Кориснички макрои су подржани. |
Password | Унесите корисничку лозинку (до 255 карактера). Ово поље је доступно ако је HTTP аутентификација постављена на Basic, NTLM, Kerberos или Digest. Кориснички макрои су подржани. |
SSL verify peer | Означите поље за потврду да бисте верификовали SSL сертификат веб сервера. Сертификат сервера ће аутоматски бити преузет са локације органа за издавање сертификата (CA) у целом систему. Можете заменити локацију CA датотека користећи Zabbix сервер или прокси конфигурациони параметар SSLCALocation. Ово поставља CURLOPT_SSL_VERIFYPEER cURL опција. |
SSL verify host | Означите поље за потврду да бисте потврдили да се поље Common Name или Subject Alternate Name поклапа са сертификатом веб сервера. Ово поставља CURLOPT_SSL_VERIFYHOST cURL опција. |
SSL certificate file | Назив датотеке SSL сертификата која се користи за аутентификацију клијента. Датотека сертификата мора бити у PEM1 формату. Ако датотека сертификата садржи и приватни кључ, оставите поље SSL кључна датотека празно. Ако је кључ шифрован, наведите лозинку у пољу лозинка за SSL кључ. Директоријум који садржи ову датотеку је одређен конфигурационим параметром Zabbix сервера или проксија SSLCertLocation.HOST.* макрои и кориснички макрои се могу користити у овом пољу.Ово поставља CURLOPT_SSLCERT cURL опцију. |
SSL key file | Назив датотеке SSL приватног кључа која се користи за аутентификацију клијента. Датотека приватног кључа мора бити у PEM1 формату. Директоријум који садржи ову датотеку је одређен конфигурационим параметром Zabbix сервера или проксија SSLKeyLocation. Макрои HOST.* и кориснички макрои се могу користити у овом пољу.Ово поставља CURLOPT_SSLKEY cURL опцију. |
SSL key password | Лозинка датотеке приватног кључа SSL. Кориснички макрои се могу користити у овом пољу. Ово поставља CURLOPT_KEYPASSWD cURL опција. |
[1] Zabbix подржава сертификат и приватни кључ датотеке само у PEM формату. У случају да имате свој сертификат и приватне кључне податке у датотеци формата PKCS #12 (обично са екстензијом *.p12 или *.pfx) можете да генеришете PEM датотеку из ње користећи следеће команде:
Zabbix сервер преузима промене у сертификатима без поновног покретања.
Ако имате клијентски сертификат и приватни кључ у једној датотеци, само је наведите у пољу "SSL сертификациона датотека" и оставите "SSL кључ датотека" поље празно. Сертификат и кључ морају и даље бити у PEM формату. Комбиновање сертификата и кључа је једноставно:
cat client.crt client.key > client.pem
Да видите веб сценарије конфигурисане за домаћина, идите на Надгледање → Хостови, лоцирајте домаћина на листи и кликните на хипервезу Веб у последњој колони. Кликните на назив сценарија да бисте добили детаљне информације.
Преглед веб сценарија се такође може приказати у Контролна табла помоћу виџета за надгледање Веба.
Недавни резултати извршавања веб сценарија доступни су у одељку Праћење → Најновији подаци.
Понекад је потребно евидентирати примљени садржај HTML странице. Ово је посебно корисно ако неки корак веб сценарија не успе. Ниво отклањања грешака 5 (праћење) служи тој сврси. Овај ниво се може подесити server и proxy конфигурационе датотеке или користећи опцију контроле времена извршавања (-R log_level_increase="http poller,N"
, где је N број процеса). Следећи примери показују како се проширено надгледање може покренути под условом да је већ ниво отклањања грешака 4 постављен:
# Повећајте ниво евиденције свих http pollers:
zabbix_server -R log_level_increase="http poller"
# Повећајте ниво евиденције другог http poller:
zabbix_server -R log_level_increase="http poller,2"
Ако проширено праћење веба није потребно, може се зауставити коришћењем опција `-R log_level_decrease``.