Service Monitor 0.6.0
 
Spis treści
Start
Spis treści
1. Konwencje typograficzne
2. Informacje ogólne o systemie David
3. Terminologia
4. Instalacja
5. Wymagania dla Service Monitor-a
6. Instalacja
7. Informacje ogólne
8. Monitor Serwisów Sieciowych (dnsmd)
9. Przyciski najczęściej występujące w aplikacjach WWW
10. Konfigurator Monitora Serwisów Sieciowych (Network Service Monitor Configurator)
11. Przeglądarka Serwisów Sieciowych (Network Service Browser)
 
 

8.4. Opis działania

Po uruchomieniu program wczytuje swoją konfigurację w bazy danych. Zawiera ona listę hostów, a każdy host zawiera listę portów TCP, które powinny być monitorowane. Konfigurator Monitora Serwisów Sieciowych jest aplikacją webową pozwalającą przygotować taką konfigurację dla Monitora Serwisów Sieciowych. Zmiana konfiguracji nie wymaga restartu Monitora Serwisów Sieciowych, gdyż sprawdza on na bieżąco, czy jego konfiguracja nie została zmieniona i wczytuje ją ponownie jeśli jest to konieczne.

Po załadowaniu konfiguracji program okresowo nawiązuje połączenia z portami TCP wyspecyfikowanych hostów. Procedura obsługi nawiązanego połączenia zależy od konfiguracji danego portu. Informacje o każdym połączeniu są zapisywane w bazie danych i są źródłem raportów jakie przygotowuje Przeglądarka Serwisów Sieciowych. Jeśli połączenie nie może być nawiązane, to zachowywana jest informacja o błędzie jaki wystąpił. Informacje, jakie są zapisywane na temat każdego połączenia, prezentuje poniższa tabela:

Tabela 8.2. Informacje zachowywane o każdym wykonanym połączeniu przez program dnsmd

Pole Znaczenie
Czas rozpoczęcia Czas rozpoczęcia procedury łączenia ze zdalnym serwisem (portem TCP na zdalnym komputerze).
Czas połączenia Czas jaki upłynał od rozpoczęcia procedury łączenia do zakończenia funkcji systemowej connect().
Czas całości Czas jaki upłynął od rozpoczęcia procedury łączenia do zamknięcia połączenia.
Kod operacji Kod zakończenia operacji: OK jeśli połączenie przebiegło bez problemów lub kod błędu jaki wystąpił podczas nawiązywania połączenia.
Kod skryptu akcji Kod jaki zwrócił skrypt jeśli dla tego połączenia został uruchomiony.

8.4.1. Obsługiwane typy protokołów TCP, których obsługa jest wbudowana w program

Program dnsmd posiada wbudowaną obsługę kilku najbardziej znanych protokołów warstwy aplikacyjnej. Są to:

  • SMTP
  • HTTP
  • FTP
  • HTTP i FTP Proxy

Każdy z protokołów jest obsługiwany w specyficzny dla niego sposób scharakteryzowany krótko w dalszej części dokumentu.

8.4.1.1. Obsługa protokołu SMTP

Obsługa protokołu SMTP polega na wysłaniu serii komend i odbioru wyniku ich działania. Poniżej jest przedstawiona lista czynności jakie są podejmowane podczas obsługi serwisu SMTP:

  1. Odbiór i weryfikacja kodu powitania.
  2. Wysłanie: HELO david.
  3. Odbiór i weryfikacja kodu odpowiedzi.
  4. Wysłanie: QUIT.
  5. Odbiór i weryfikacja kodu odpowiedzi.
  6. Oczekiwanie na zamknięcie połączenia przez zdalny komputer.

8.4.1.2. Obsługa protokołu HTTP

Obsługa protokołu HTTP polega na wysłaniu serii komend i otrzymaniu końcowego wyniku ich działania.

  1. Wysłanie GET http://hostname/url HTTP/1.0.
  2. Wysłanie Host: hostname
  3. Opcjonalne wysłanie Authorization: Basic zakodowany_użytkownik_i_hasło (algorytm base64 jest używany do kodowania użytkownika i hasła).
  4. Oczekiwanie na dowolne dane.
  5. Oczekiwanie na zamknięcie połączenia przez zdalny komputer.

Ostatnia komenda występuje tylko wtedy, gdy użytkownik i hasło zostały podane w konfiguracji tego portu. Słowo hostname jest zastępowane rzeczywistą nazwą zdalnego komputera, zaś url ścieżką jeśli została podana w konfiguracji portu.

Wynik działania tych komend nie jest w żaden sposób weryfikowany. Program dnsmd oczekuje dowolnych danych i zamknięcia połączenia przez zdalny komputer.

8.4.1.3. Obsługa protokołu FTP

Obsługa protokołu FTP polega na wysłaniu serii komend i odbioru wyniku ich działania. Poniżej jest przedstawiona lista czynności jakie są podejmowane podczas obsługi serwisu FTP:

  1. Odbiór i weryfikacja kodu powitania.
  2. Wysłanie: QUIT.
  3. Odbiór i weryfikacja kodu odpowiedzi.
  4. Oczekiwanie na zamknięcie połączenia przez zdalny komputer.

8.4.1.4. Obsługa protokołu proxy dla HTTP i FTP

Obsługa protokołu proxy dla HTTP i FTP jest bardzo podobna do obsługi protokołu HTTP i polega na wysłaniu serii komend i otrzymaniu końcowego wyniku ich działania.

  1. Wysłanie GET url HTTP/1.0.
  2. Opcjonalne wysłanie Authorization: Basic zakodowany_użytkownik_i_hasło (algorytm base64 jest używany do kodowania użytkownika i hasła).
  3. Oczekiwanie na dowolne dane.
  4. Oczekiwanie na zamknięcie połączenia przez zdalny komputer.

Ostatnia komenda występuje tylko wtedy, gdy użytkownik i hasło zostały podane w konfiguracji tego portu. Słowo url jest zastępowane rzeczywistą lokalizacją zbioru jeśli została podana w konfiguracji portu. Jeśli url nie został podana w konfiguracji to domyślnym zasobem jest adres http://www.w3.org/.

Wynik działania tych komend nie jest w żaden sposób weryfikowany. Program dnsmd oczekuje dowolnych danych i zamknięcia połączenia przez zdalny komputer.

8.4.2. Przekazanie zewnętrznemu skryptowi obsługi połączenia

Istnieje możliwość obsługi nawiązanego połączenia przez zewnętrzny skrypt wyspecyfikowany w konfiguracji danego portu. Wówczas, po nawiązaniu przez program dnsmd połączenia TCP ze zdalnym komputerem, sterowanie jest przekazywane całkowicie do zewnętrznego programu. Jego standardowe wejście i wyście zostaja przekierowane na nawiązane połączenie. W ten sposób może on dowolnie sterować wymianą danych. Kod zakończenia pracy zwrócony przez skrypt jest zapisywany w wyniku danego połączenia.

Skrypt jako swoje parametry wywołania otrzymuje parametry połączenia:

  • Nazwa zdalnego komputera.
  • IP zdalnego komputera.
  • Numer portu TCP na jakie zostało wykonane połączenie.
  • URL jaki został skonfigurowany dla tego portu.
  • Użytkownik jaki został skonfigurowany dla tego portu.
  • Hasło jakie zostało skonfigurowane dla tego portu.

Należy pamiętać, że jeśli praca skryptu trwa dłużej niż parametr timeout dla portu, to praca skryptu zostanie przerwana po tym czasie.

8.4.3. Błędy podczas nawiązywania połączenia

Nastepujące błędy mogą wystąpić podczas nawiązywania połączenia:

Tabela 8.3. Błędy nawiązywania połączenia przez program dnsmd

Błąd Znaczenie
EADDRESS Wystąpił błąd podczas translacji nazwy DNS zdalnego komputera na jego adres IP.
ECONNECT Nie powiodła się funkcja connect().
ENETDOWN Nie działa sieć w której pracuje zdalny host.
ENETUNREACH Nie jest osiągalna sieć w której pracuje zdalny host.
ECONNREFUSED Nastąpiła odmowa połączenia przez zdalny komputer.
EHOSTDOWN Zdalny host nie pracuje.
EHOSTUNREACH Zdalny host nie jest osiągalny.
ETIMEOUT Czas operacji został przekroczony.
ESCRIPTFAILED Nie udało się uruchomić wyspecyfikowanego skryptu.
EOTHER Wystapił inny (nieznany) błąd.