ďťż
 
 
   Sprawdzanie dostępności serwerów
 
 

Tematy

 
    
 

 

 

 

Sprawdzanie dostępności serwerów





scytale - 08-05-2008 11:53
Nie wiem, czy to dobry dział na ten temat, jeśli nie to przepraszam i proszę o przesunięcie do odpowiedniego.

Mam kilka serwerów (wszystkie na wirtualnych maszynach). Jeden serwer główny, reszta to tzw. real serwery (sa podpięte do serwera glownego, sa za NATem).
Na real serwerach mam uruchomione rozne uslugi, np. na serwerze 1 http i ftp, na 2 http, na 3 ftp i ssh.
Laczac sie podaje tylko ip serwera glownego, on za pomoca LVS decyduje do ktorego z real serwerow mnie skierować. W powyzszym przypadku jesli bede chcial objrzec strone www to serwer glowny za pomoca dowolnego algorytmu przekieruje moje polaczenie do real serwera 1 lub 2.
Do tego momentu wsystko jest OK.
1) Ale jesli np wysiadzie mi real serwer 1 to serwer glowny nadal bedzie ruch kierowac do real serwera 1.
2) Gdy real serwer 1 bedzie dzialal, ale padnie sam demon http to tez serwer glowny bedzie mogl kierowac do niego ruch (bo sam nie wie nic o tym ze nie dziala)
W takich przypadkach przy jednym polaczeniu dostane strone, bo akurat mam szczescie i skierowalo mnie do real serwera 2, a raz przegladarka wyswietli blad, bo akurat przekieruje mnie do serwera 1.

I dopiero tutaj zaczyna sie moj problem. Jak sprawdzic dostepnosc serwerow.

Moge odpalac na serwerze glownym skrypt, ktory co np 1 minute bedzie pingowal real serwery, jesli ktorys nie odpowiada to go wywalam z tabeli LVSa (dodatkowo powiadamiam siebie na maila lub sms)
Ten sposob ma ta wade ze sprawdzam tylko czy maszyna dziala czy nie.

Drugi sposob, ktory sobie wymyslilem.
Na real serwerach odpalam skrypt, ktory sporzadza plik z raportem. Raport by zawieral nazwe(nr, czy jakis inny indetyfikator uslugi) oraz dostepnosc okreslonych uslug (dziala czy nie). Dodatkowo do raportu dodawalbym informacje o obciazeniu serwera (load serwera czy cos w podobie). Taki raport pcham przez TFTP do serwera glownego.
Na serwerze glownym odpalam skrypt, ktory co jakis czas analizuje te raporty i zmienia tabele LVSa, dodatkowo dzieki informacja o obciazeniu serwerow, moge na serwerze glownym zmieniac wagi poszczegolnych maszyn ( dzieki temu do mocno obciazonej maszyny kieruje mniejszy ruch, do luzniejszej maszyny kieruje ruch wiekszy). Gdy np po 3 kolejnych sprawdzeniach raportow, nie ma raportu od 1 maszyny to uznaje ze ta maszyna padla calkowicie i cala wywalam z tabeli LVS.
Ten sposob sprawdza nie tylko stan maszyny ale i poszczegolnych uslug. Jego wada jest wieksze skomplikowanie.

No wiec tak. Troche sie rozpisalem, pokazalem moje 2 pomysly :). Moze ktos ma doswiadczenie z czyms podobnym i zna inne, lepsze i prostsze rozwiazanie od mojego.
Za uwagi i pomysly z gory dzieki.



lessmian2 - 09-05-2008 10:28
Może lekka modyfikacja Twojego pierwszego pomysłu. Sprawdzasz dostępność usług na serwerach połączeniem telnetowym na określony port ( http - 80 itp ). Jeśli się połączy to ok, jeśli nie to znaczy że usługa padła.



lukii - 13-05-2008 11:29
Witam
Możesz do tego celu wykorzystać Nagiosa poza HTTP sprawdza także inne usługi oraz load.
Przy wykryciu problemu może wykonać dowolny skrypt, u Ciebie odpowiednią operację na tabeli LVSa. Jeśli chodzi o sam load to nie jestem pewien czy można ustawić mu jakieś progi "reagowania".
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis