Monitor HTTP

Monitor HTTP sprawdza dostępność i czas odpowiedzi serwerów WWW.

Może monitorować pojedyncze strony WWW, w tym te, które korzystają z mechanizmu CGI, co zwykle wymaga, aby użytkownik wprowadził dane w polach. Może także monitorować czas pobierania elementów strony, takich jak obrazy na stronie WWW.

Tabela 1. Podsumowanie plików monitora HTTP
Pliki monitora Nazwa lub położenie
Plik wykonywalny monitora nco_m_http
Plik właściwości $ISHOME/etc/props/http.props
Plik reguł $ISHOME/etc/rules/http.rules
Plik dziennika $ISHOME/log/http.log
Wytyczne dotyczące konfigurowania monitora HTTP
Monitory HTTP i HTTPS sprawdzają dostępność oraz czasy odpowiedzi serwerów WWW. Monitora HTTP należy używać w następujących sytuacjach:
  • Docelowy serwis WWW jest statyczny.

    W przypadku dynamicznych serwisów WWW należy użyć monitora TRANSX.

  • Docelowy serwis WWW jest udostępniany za pomocą protokołu HTTP.

    W przypadku serwisów WWW udostępniających treść za pomocą protokołu HTTPS należy użyć monitora HTTPS.

  • Przy wykonywaniu monitorowania na wielu platformach.
  • W sytuacji, w której ważnym czynnikiem jest szybkość (monitor HTTP zapewnia wysoką wydajność).
Typy żądań HTTP

Monitor HTTP emuluje przeglądarkę WWW obsługującą protokół HTTP/1.0. Aby przetestować serwer WWW, monitor wysyła do niego żądanie udostępnienia strony WWW za pomocą dowolnego spośród następujących typów żądań HTTP:

  • HEAD

    Komenda HEAD próbuje uzyskać dostęp do strony WWW i zwrócić nagłówek HTTP. Użycie komendy HEAD jest szybkim sposobem sprawdzenia, czy dana strona WWW jest dostępna.

  • GET

    Komenda GET próbuje uzyskać dostęp do strony WWW i zwrócić całą stronę, w tym nagłówek HTTP. Nie próbuje ona zwrócić innych plików powiązanych z tą stroną, takich jak obrazki.

  • GETALL

    Komenda GETALL próbuje uzyskać dostęp do strony WWW i zwrócić całą stronę, w tym nagłówek HTTP, tło, obrazki, aplety, ramki pliki CSS oraz skrypty. Podobnie jak komendy HEAD i GET, ta komenda także sprawdza, czy strona WWW jest dostępna, ale ponieważ komenda GETALL zwraca całą stronę i wszystkie powiązane z nią pliki, może ona dać bardziej realistyczny obraz czasu wymaganego do uzyskania dostępu do strony. Monitor wykorzystuje wiele wątków podczas używania komendy GETALL, aby dokładniej odzwierciedlić działanie przeglądarek WWW.

  • POST

    Komenda POST próbuje uzyskać dostęp do strony WWW zawierającej formularz HTTP i wypełnić pola tego formularza. Dodaj tekst treści dla żądania POST do karty Treść w konfiguracji Internet Service Monitoring albo użyj obiektu @Body w konfiguracji programu Internet Service Monitoring lub ismbatch. Alternatywnie można użyć parametrów FORM. W żądaniu POST nie można używać zarówno parametru Body, jak i FORM.

Używanie serwera proxy

Użytkownik może sprawdzić dostępność stron WWW przez serwer proxy. Po skonfigurowaniu monitora do korzystania z serwera proxy wysyła on żądania HTTP poprzez serwer proxy. Jeśli jest to wymagane, można obejść pamięć podręczną serwera proxy. Parametry serwera proxy można skonfigurować na karcie Szczegóły proxy. Monitor HTTP obsługuje uwierzytelnianie dostępu do serwerów proxy. To uwierzytelnienie jest niezależne od uwierzytelnienia wymaganego przez docelową stronę WWW.

Elementy serwera proxy

We wcześniejszych wersjach podczas konfigurowania elementu profilu do korzystania z serwera proxy, domyślnie monitor HTTP wstawiał nazwę serwera proxy i port do elementów $server i $port zamiast nazwy i portu serwera docelowego. Aby zachować żądaną nazwę serwera i port docelowy z poprzedniej wersji, należy ustawić właściwość generateProxyTokens na wartość 1 lub uruchomić monitor, podając parametr wiersza komend -generateproxytokens.

Oprócz zachowania wartości elementów $server i $port w przypadku ustawienia tej właściwości lub podania parametru wiersza komend monitor generuje następujące elementy: $proxyServer, $proxyPort, $proxyAuthType, $proxyUsername i $proxyCache.

Uwierzytelnianie

Jeśli strona WWW, która ma być monitorowana, lub serwer proxy, który ma być testowany, wymagają uwierzytelnienia, należy podać informacje autoryzacyjne umożliwiające dostęp do strony w polach Typ uwierzytelniania, Nazwa użytkownika i Hasło na karcie Zaawansowane lub Szczegóły proxy.

Aby wyłączyć uwierzytelnianie, dla parametru typ uwierzytelniania podaj wartość BRAK.

Aby wybrać uwierzytelnianie podstawowe:

  1. Dla parametru typ uwierzytelniania ustaw wartość PODSTAWOWE.
  2. Dla pól nazwa użytkownika i hasło ustaw wartości wymagane przez stronę WWW lub serwer proxy.

Aby wybrać NTLM:

  1. Dla parametru typ uwierzytelniania ustaw wartość NTLMv1 lub NTLMv2.
  2. Dla pól nazwa użytkownika i hasło ustaw wartości wymagane przez stronę WWW lub serwer proxy.
Uwaga:

Monitor ogranicza długość żądań HTTP do 4096 znaków. Jeśli długość dodatkowych danych formularza spowoduje przekroczenie tego limitu długości przez żądanie, monitor nie umieści ich w żądaniu.

Konfigurowanie testu usługi monitora HTTP

Do zdefiniowania testów usługi HTTP użyj parametrów konfiguracyjnych monitora HTTP.

Tabela 2. Konfiguracja monitora HTTP
Pole Opis
Serwer Nazwa hosta monitorowanego serwera. Przykład: mail.mojafirma.pl
Strona Adres URL strony, która ma być monitorowana. Przykład: index.html
Opis Pole tekstowe do umieszczenia informacji opisowych dotyczących elementu. Przykład: Monitorowanie za pośrednictwem serwera proxy
Port

Port na serwerze HTTP, który ma być używany.

Wartość domyślna: 80

Lokalny IP Określa adres IP interfejsu sieciowego używanego przez monitor do testu. Jeśli pole to jest puste, monitor użyje interfejsu określonego we właściwości Adres IP.
Wersja Wersja protokołu HTTP, która będzie używana:
  • 1.0
  • 1.1

Wartość domyślna: 1.0

Komenda

Typ żądania HTTP:

  • HEAD
  • GET
  • GETALL
  • POST

Wartość domyślna: GET

Nazwa formularza Jeśli monitor HTTP zostanie użyty w transakcji, skanuje określony formularz w poszukiwaniu wartości domyślnych. Wszystkie znalezione wartości są automatycznie wprowadzane do następnego kroku HTTP w transakcji.
Typ uwierzytelniania

Określa mechanizm uwierzytelniania pytanie kontrolne-odpowiedź na potrzeby uwierzytelniania użytkowników sieci:

  • NONE - bez uwierzytelniania.
  • BASIC
  • NTLMv1 - Uwierzytelnianie Windows NTLM w wersji 1 wykorzystujące odpowiedź na pytanie.
  • NTLMv2 - Windows NTLM wersja 2.

Wartość domyślna: NONE

Nazwa użytkownika Nazwa użytkownika (nazwa konta), której monitor będzie używać przy logowaniu do serwera.
Hasło Hasło odpowiadające nazwie użytkownika, której monitor będzie używał przy logowaniu do serwera.
Limit czasu

Czas (w sekundach) oczekiwania na odpowiedź serwera.

Wartość domyślna: 30

Odpytywanie

Czas w sekundach między operacjami odpytywania.

Wartość domyślna: 300

.
Liczba niepowodzeń

Liczba testów przed zgłoszeniem niepowodzenia.

Wartość domyślna: 0

Odstęp czasu ponownego testowania

Czas (w sekundach) oczekiwania między kolejnymi niepowodzeniami testowania.

Wartość domyślna: 10

Weryfikuj certyfikat Domyślnie opcja ta jest wyłączona.
Szczegóły proxy
Serwer Nazwa hosta serwera proxy.
Port

Port na serwerze proxy, który ma być używany.

Wartość domyślna: 8080

Typ uwierzytelniania

Typ uwierzytelniania serwera dla serwera proxy. Więcej informacji na ten temat zawiera wcześniejszy opis authenticationtype.

Wartość domyślna: NONE

Nazwa użytkownika Używana przez monitor razem z hasłem w celu zalogowania do serwera proxy.
Hasło Używane przez monitor razem z nazwą użytkownika do zalogowania się na serwerze proxy.
Użyj proxy Konfiguruje monitor w taki sposób, aby przesyłał żądania, wykorzystując serwer proxy.
  • proxy (użyj true w programie ismbatch)
  • noproxy (użyj false w programie ismbatch)

Wartość domyślna: noproxy

hostnamelookuppreference Określa wersję IP, IPv6 lub IPv4, która ma być stosowana do podanej nazwy hosta. Dostępne opcje:
  • default konfiguruje monitor pod kątem używania ustawień właściwości dla monitora. Jest to opcja domyślna.
  • 4Then6 wybiera protokół IPv4, a następnie IPv6. Używa adresów IPv4, jeśli są dostępne. Jeśli nie zostaną znalezione żadne adresy IPv4, zostaną użyte adresy IPv6.
  • 6Then4 wybiera protokół IPv6, a następnie IPv4. Używa adresów IPv6, jeśli są dostępne. Jeśli nie zostaną znalezione żadne adresy IPv6, zostaną użyte adresy IPv4.
  • 4Only wybiera tylko protokół IPv4. Używane będą tylko adresy IPv4. Jeśli nie ma adresów IPv4, odpytywanie zwraca błąd.
  • 6Only wybiera tylko protokół IPv6. Używane będą tylko adresy IPv6. Jeśli nie ma adresów IPv6, odpytywanie zwraca błąd.
  • 6Or4 wybiera protokół IPv4 lub IPv6. Używa pierwszego adresu zwróconego z nazwy hosta.
nocache Domyślnie opcja ta jest wyłączona.
Wyrażenie regularne

Wyszukiwanie w pobieranych informacjach z użyciem wyrażeń regularnych można przeprowadzać, wprowadzając maksymalnie 50 różnych wyrażeń regularnych. Monitor HTTP próbuje dopasować pobraną treść do każdego z wyrażeń regularnych. Jeśli zostanie znalezione dopasowanie dla określonego wyrażenia regularnego, dopasowane wiersze (lub tyle danych, ile się może zmieścić w wewnętrznym buforze monitora) są zwracane w odpowiednim elemencie $regexpMatchn. Jeśli wyrażenie regularne zostanie dopasowane wiele razy, zwrócona będzie tylko pierwsza zgodna wartość. Status każdego testu wyrażenia regularnego jest wskazywany przez elementy $regexpStatusn. Zgodne wyrażenia regularne i ich informacje o statusie mogą być stosowane jako kryteria klasyfikacji poziomu usług. Więcej informacji na temat składni wyrażeń regularnych zawiera sekcja Tabela 3.

Parametry Head i Form

Monitor HTTP może wysłać dodatkowe dane w polach nagłówka i w treści komunikatu żądań HTTP.

Parametry dla tych dodatkowych danych można skonfigurować na karcie Parametry. Są to parametry Nazwa, Wartość i Typ. Działają one w następujący sposób:

  • Pary nazwa-wartość typu HEAD określają dodatkowe pola nagłówka, takie jak User-Agent i Referer, umieszczone we wszystkich żądaniach HTTP wysyłanych przez monitor. Pola nagłówka można określić dla każdego typu metody HTTP (GET, GETALL, HEAD lub POST).

    Dla produktu ITCAM for Transactions w wersji 7.4.0.1 i nowszych, dla każdego nowego elementu HTTP lub HTTPS do nagłówka jest dodawany domyślny parametr User-Agent Mozilla/5.0 (ISM-MONITOR). Domyślny nagłówek User-Agent jest taki, aby monitory HTTP i HTTPS mogły być używane do monitorowania serwisów, które przełączają rodzaj wyświetlanych treści odpowiednio dla używanej przeglądarki.

  • Pary nazwa-wartość typu FORM określają dodatkowe dane zawarte w treści komunikatu żądania HTTP POST wysyłanego przez monitor. Jeśli strona docelowa zawiera formularz zgodny z nazwą podaną w polu Nazwa formularza, monitor traktuje wszystkie pary nazwa-wartość w tym formularzu tak, jakby były one skonfigurowane w elemencie profilu.
Uwaga:

Monitor ogranicza długość żądań HTTP do 4096 znaków. Jeśli długość dodatkowych danych formularza spowoduje przekroczenie tego limitu długości przez żądanie, monitor nie umieści ich w żądaniu.

Elementy monitora

Oprócz wyników testowych wspólnych dla wszystkich elementów, monitor HTTP generuje zestaw wyników testowych zawierających dane specyficzne dla testów usługi HTTP. Elementy oznaczone gwiazdką (*) są dostępne jako atrybuty. Nazwy atrybutów są przedstawione w nawiasach kwadratowych. Brak gwiazdki oznacza, że nie ma odpowiadającego mu atrybutu. Atrybuty wyświetlane w nawiasach kwadratowych, ale bez elementu wskazują, że są one dostępne tylko jako atrybut, nie istnieje żaden równoważny im element.

Tabela 3. Elementy monitora HTTP
Element Opis
$bytesPerSec*
(BytesPerSec)
Średnia liczba bajtów przesłanych w ciągu każdej sekundy.
$bytesTransfered*
(BytesTransferred)
Liczba bajtów przesłanych lub pobranych.
$checksum Element sumy kontrolnej zwykle nie zawiera sensownych wartości
dla klasyfikacji poziomu usługi, ponieważ suma kontrolna nie jest znana, gdy element profilu jest tworzony
(monitor oblicza sumę kontrolną w momencie trwania testu). Elementy monitora $checksum i $previousChecksum
są przeznaczone do wzbogacania alertów za pomocą pliku reguł monitora.
$command Komenda HTTP wysłana przez monitor. Na przykład: HEAD, GET, GETALL lub POST.
$connectTime*
(ConnectTime)
Określa czas trwania nawiązywania połączenia z serwerem.
$downloadTime*
(DownloadTime)
Określa czas pobierania pliku.
(Elements) Liczba odebranych elementów strony.
$formname Nazwa formularza użytego w działaniu POST.
$lastStatus*(PageStatus) Jeśli element profilu pobiera wiele stron, ten element zawiera łańcuch
wyniku pobrania ostatniej strony. Ta wartość jest taka sama, jak w przypadku produktu $urlResultn
.gdzie n jest równa wartości $pageCount.
$lastModified Wartość pola nagłówka HTTP Last-Modified dla pobranej pierwszej strony.
$page*(Page) Strona, do której uzyskano dostęp na serwerze HTTP.
$pageCount Łączna liczba zasobów pobranych podczas testu GETALL, z wyłączeniem
samej strony testowej. Jeśli testowana strona nie odwołuje się do żadnych innych zasobów, ten
element nie jest generowany.
$port*(Port) Port używany do uzyskania dostępu do serwera HTTP. Jeśli test używany przez serwer proxy, jest to
wartość portu serwera proxy, do którego wysłano
żądanie. Aby zachować port docelowego serwera docelowego, ustaw
właściwość generateProxyTokens ma wartość 1, albo uruchom monitor z
parametrem wiersza komend -generateproxytokens.
$previousChecksum Element poprzedniej sumy kontrolnej zwykle nie zawiera sensownych wartości dla klasyfikacji poziomu usług
, ponieważ suma kontrolna nie jest znana, gdy element profilu jest tworzony
(monitor oblicza wartość sumy kontrolnej w momencie trwania testu).
Elementy monitora $previousChecksum i $checksum są przeznaczone
do wzbogacania alertów za pomocą pliku reguł monitora.
$proxyAuthType Typ uwierzytelniania serwera dla serwera proxy.
$proxyCache Wartość true oznacza, że serwer proxy pobrał stronę WWW z serwera, a nie z własnej pamięci podręcznej.
$proxyPort Numer portu serwera proxy, na który zostało wysłane żądanie.
$proxyServer Nazwa hosta serwera proxy.
$proxyUsername Używana przez monitor razem z hasłem w celu zalogowania do serwera proxy.
$regexpMatchn Treść wiersza zgodnego z wyrażeniem regularnym.
$regexpn Wyrażenie regularne.
$regexpMatchn Treść wiersza zgodnego z wyrażeniem regularnym.
$regexpStatusn Status zgodności wyrażenia regularnego:
NONE - nie skonfigurowano sprawdzania za pomocą wyrażenia regularnego
MATCHED - znaleziono dopasowanie dla wyrażenia regularnego
FAILED - nie znaleziono dopasowania dla wyrażenia regularnego
$responsetime*
(ResponseTime)
Czas, który upłynie od utworzenia połączenia do momentu odebrania pierwszego bajtu strony.
$timeSinceModification Czas, który upłynął od ostatniej modyfikacji strony. Jest to
różnica między czasem testu i wartością Last-Modified
pola nagłówka HTTP z pierwszej pobranej strony.
$urlDownloadTimesn*
(UrlDownloadTime)
Czas pobierania URL dla każdego elementu w żądaniu GETALL. Każdy element jest ponumerowany, zaczynając od 000 ($urlDownloadTime000, $urlDownloadTime001, $urlDownloadTime002 itd.).
$urln*(Url) Adres URL każdej strony w teście GETALL. Każda strona jest ponumerowana, zaczynając od 000 ($url000, $url001, $url002 itd.).
$urlResultn*
(UrlResultString)
Łańcuch wyniku dla każdej strony pobranej w żądaniu GETALL. Każdy wynik jest ponumerowany, począwszy od 000 ($urlResult000, $urlResult001, $urlResult002,
itd.)
$username Nazwa używana w celu uzyskania dostępu do stron, które wymagają, aby użytkownik był uwierzytelniony.
Komunikaty statusu

Monitor HTTP udostępnia komunikaty o statusie w atrybucie ResultMessage podczas korzystania z produktu IBM® Application Performance Management. Komunikaty te wskazują wynik testu.

Tabela 4. Tabela 4. Komunikaty statusu monitora HTTP
Komunikat Opis
OK Żądanie monitora się powiodło.
Nie znaleziono formularza Nie znaleziono żądanej strony.
Zainicjowanie pobierania strony nie powiodło się Brak wystarczającej ilości pamięci, aby przydzielić miejsca dla mechanizmu pobieranie strony HTTP. Poprzedni wiersz komunikatu powinien zawierać dodatkowe informacje.
Połączenie nie powiodło się Nie powiodło się połączenie monitora z przyczyn innych niż wyłączenie odsyłacza, zresetowanie połączenia, nieosiągalność łącza, przekroczenie limitu czasu połączenia, przerwanie połączenie lub host jest wyłączony. Więcej informacji można znaleźć w pliku dziennika monitora HTTP.
Parametry formularza i dopasowywanie wyrażenia regularnego

Monitoruj działanie formularza http://support.mojafirma.pl/cgi-bin/search.cgi, wysyłając żądania HTTP POST z parametrem formularza search=ism i używając wyrażenia regularnego do dopasowania łańcucha Twoje wyszukiwanie powiodły się w odpowiedzi. Jeśli w odpowiedzi zostanie zwrócony ten łańcuch, sklasyfikuj poziom tej usługi jako Dobry, a w przeciwnym razie - jako Niepowodzenie.

Utwórz nowy element profilu HTTP i ustaw pola w sposób przedstawiony w poniższej tabeli.

Tabela 5. Przykład elementu profilu formularza HTTP
Pole konfiguracyjne elementu profilu Wartość
Serwer support.mojafirma.pl
Strona /cgi-bin/search.cgi
Opis Przykład - parametry formularza i wyrażenia regularne
Szczegóły wyrażenia regularnego
Dopasowanie 1 Wyszukiwanie powiodło się
Szczegóły klasyfikacji poziomu usług
Instrukcja Regexp Status 1 = MATCHED then status GOOD
Szczegóły nagłówka i formularza
Nazwa search
Wartość ism
Typ FORM
Właściwości

W zamieszczonej w tej sekcji tabeli opisano właściwości i opcje wiersza komend specyficzne dla monitora HTTP.

Tabela 6. Właściwości monitora HTTP

Nazwa właściwości

Parametr właściwości

Opis

AllowDuplicateDownload 0|1
Wymusza pobranie stron za każdym razem, gdy są znalezione.
  • 0 - wyłączone (pobieranie wykonywane jest tylko raz)
  • 1 - włączone

ForceHTMLParse

0|1
Wymusza, aby strony bez ustawionego typu zawartości text/html były analizowane jak dane HTML.
  • 0 - wyłączone
  • 1 - włączone

GenerateProxyTokens

0|1
Określa, czy monitor generuje dodatkowe elementy zawierające informacje na temat serwera proxy, jeśli podczas testowania używany jest serwer proxy.
  • 0 - wyłączone
  • 1 - włączone (dodatkowe elementy $server i $port zawierają wartości dla serwera proxy)

GETALLThreadNum

1|2|3|4|5

Określa liczbę osobnych wątków używanych w żądaniu GETALL.

GetLinkTags

0|1
Aktywuje pobieranie powiązanych arkuszy stylów w żądaniu GETALL:
  • 0 - wyłączone
  • 1 - włączone (jeśli strona docelowa zawiera znacznik link z wartością atrybutu rel=stylesheet, monitor spróbuje pobrać zasób wskazany w atrybucie href znacznika link).

HostnameLookupPreference

łańcuch

Określa wersję IP, IPv6 lub IPv4, która ma być stosowana do podanej nazwy hosta. Możliwe wartości:
  • 4Then6 wybiera protokół IPv4, a następnie IPv6. Używa adresów IPv4, jeśli są dostępne. Jeśli nie zostaną znalezione żadne adresy IPv4, zostaną użyte adresy IPv6.
  • 6Then4 wybiera protokół IPv6, a następnie IPv4. Używa adresów IPv6, jeśli są dostępne. Jeśli nie zostaną znalezione żadne adresy IPv6, zostaną użyte adresy IPv4.
  • 4Only wybiera tylko protokół IPv4. Używane będą tylko adresy IPv4. Jeśli nie ma adresów IPv4, odpytywanie zwraca błąd.
  • 6Only wybiera tylko protokół IPv6. Używane będą tylko adresy IPv6. Jeśli nie ma adresów IPv6, odpytywanie zwraca błąd.
  • 6Or4 wybiera protokół IPv4 lub IPv6. Używa pierwszego adresu zwróconego z nazwy hosta.

Wartość domyślna: 4Then6

Ipv6Address

liczba całkowita

Adres lokalny używany jako adres źródłowy żądań HTTP, gdy używany jest protokół HTTP IPv6.

Wartość domyślna: brak adresu

NoParseExtensions

łańcuch

Lista rozszerzeń plików oddzielonych przecinkami określająca typy plików, które nie będą analizowane przez monitor, a tylko pobierane.

OutputDirectory

łańcuch

Określa katalog wyjściowy, który będzie używany, jeśli parametr OutputResult zostanie ustawiony (będzie mieć wartość 1).

Wartość domyślna: $ISHOME/var.

OutputResult

0|1
Określa, czy monitor zapisuje dane odebrane od usługi.
  • 0 - wyłączone
  • 1 - włączone

RelativeRedirects

0|1
Pozwala, aby pola Location w kodzie statusu HTTP 301 i HTTP 302 mogły zawierać względne adresy URL, zamiast adresów bezwzględnych.
  • 0 - bezwzględne adresy URL
  • 1 - względne adresy URL

RFCPOST

0|1
Określa, że monitor powinien zachować zgodność z dokumentami RFC1945 oraz RFC2616 i wysyłać drugie żądanie POST po przekierowaniu. Wiele serwerów WWW nie oczekuje żądania POST po przekierowaniu i większość przeglądarek nie zachowuje zgodności z tymi dokumentami RFC.
  • 0 - wyłączone
  • 1 - włączone