A netDiag szolgáltatás hardveres háttere

A monitorozást jelenleg három dedikált szerver végzi párhuzamosan.

A szerverek BIX-hez közeli termekben vannak elhelyezve (T-Online Adatpark, Dataland, Invitel), de a későbbiekben tervezzük, hogy a BIX-től fizikailag és adatkapcsolatilag távolabbi helyekre is telepítsünk gépeket. A szerverek természetesen megbízható szünetmentes tápellátással és stabil 100 Mbps-os hálózati kapcsolattal rendelkeznek.
Az SMS-küldést saját GSM-modemekkel oldjuk meg (ami gyorsabb és üzembiztosabb megoldás, mint a webfelületről SMS-szolgáltatón keresztül kiküldött szöveges üzenet), a szervereink esetleges üzemkiesésének jelzése szintén ezeken keresztül történik.

 

 

 

 

A netDiag szolgáltatás szoftveres háttere

A különféle típusú adatgyűjtések, a risztás és a web-oldalak generálása multitaskos és multithreades programmodulokkal történik, a modulok futását egy független felügye- leti modul ellenőrzi. A szerverek szigorú időszinkronban dolgoznak (naponta történő újraszinkronozással), így a monitorlogok szükség esetén egyszerűen összefésülhetők.

A szervereken egyforma szoftverkörnyezet fut, a monitorozás normál esetben párhuzamosan két helyről történik, az elsődleges szerver kiesésekor a másodlagos tovább gyűjti az adatokat ill. kiküldi a riasztásokat is, tehát a web-felület kivételével a többi funkció tovább él. A hatékonyság növelése érdekében majdnem minden megjelenítendő adatot előre legenerálunk, így az időigényes (sql-lekérdezésekkel tűzdelt) szerver oldali scriptek száma minimálisra csökkenthető, gyakorlatilag a user interfacere korlátozódik. A web-lekérdezésekhez a Microsoft által az IE6-hoz kifejlesztett WinHTTP 5.1 API-t használjuk.

 

 

 

Hogyan történik a monitorozás?

Jelenleg az ICMP echo request (Ping) és a HTTP(s) protokoll GET és a HEAD metódusait használjuk, de teszteljük a HTTP(s) POST-ot és a Telnetet is, ez utóbbi pl. SMTP szerverek ellenőrzésekor hasznos.

 

A HTTP lekérések/válaszok az időtengelyen első közelítésben három jól elkülöníthető szakaszra bonthatóak: az első szakasz a kapcsolat felépítése (connect), a második a szerver felkészülése a válaszadásra (a dinamikusan generált html oldalak összeállítása a legtöbb esetben bufferelt, ezért ez a szakasz szerveroldali scriptek futtatása esetén (főként akkor, ha adatbázis-lekérdezések is történnek)  elég hosszú (3-5 másodperces) is lehet), végezetül a harmadik szakasz, a válasz letöltésének az ideje az elsőtől az utolsó bájtig (ez nagyban függ a letöltendő tartalom hosszától és a hálózat sebességétől). Mi a fentiek közül -- néhány kényszerű, vagy megrendelői igény szerinti kivételtől eltekintve -- csak az első kettőt vizsgáljuk (a hálózat és a szerver "egészségi állapotára" ezekből elég jól következtethetünk), így ahol lehet, a HEAD metódust használjuk (ez végrehajtásában lényegében megegyezik a GET-tel, viszont az üzenettestet nem adja vissza, ezáltal nem generálunk felesleges adatforgalmat, és a harmadik szakasz idejét is jelentősen lecsökkenthetjük). 

 

 

 

A fenti három szakasz természetesen csak egyetlen letöltött adattartalmat reprezentál (a mi esetünkben ez általában a vizsgálandó webmappa index.htm-e (vagy valamilyen dinamikusan generált php, asp oldala), valójában a komplett html-oldalakhoz számos egyéb  objektum is tartozik (képek, css stíluslapok, scritpfájlok, flash-animációk stb.). Mivel célul a szerverek működésvizsgálatát és nem a "felhasználói élmény" mérését tűztük ki, ezen tartalmakkal nem foglalkozunk. Annál is inkább, mert egyrészt az URL-lel hivatkozott html fájl betöltése után a böngészők több (az IE6 default pl. 10) szálon kezdik el letölteni a kapcsolódó objektumokat, másrészt elképzelhető, hogy ezen objektumokból néhány egy másik szerveren van (pl. független web-audit céljából).

 

A monitorozás beállítástól függően 1-2-3-5 percenként történhet (minden egyes URL-re külön-külön beállítható), a monitorozott adatok (mint a monitorozás típusa, id-je, válaszideje és esetlegesen hibakódja) bekerülnek egy adatbázisba. A mért adatok közvetlenül is megtekinthetőek a napi elérhetőségi statisztikák oldalán, az óra értékekre kattintva. A könnyebb vizuális kiértékelhetőség érdekében idődiagramok (=plotok) is készülnek, ezeken egy speciális csúszó átlagolás simítja ki a kisebb ugrásokat, így jobban láthatóak a tendenciák. Az ötperces maximumértékeket és az egyszeri valamint ismétlődő hibákat szintén feltünteti a plot (lásd részletesebben a  súgóban).

 

 

A riasztás funkció

 

A netDiag rendszer alapvetően három esetet különböztet meg monitorozáskor:

  • Normál válasz érkezik timeout időn belül
  • Nem érkezik válasz (timeout error)
  • Hibakód keletkezik

Ez utóbbi két esetet megkülönböztetjük egymástól, de egyformán hibának tekintjük. (Megjegyzés: hamarosan a normál válasz kiegészíthető még egy string-ellenőrzéssel is, ez akkor hasznos, ha a szerver látszólag válaszol, a válasz viszont hibás (pl. PHP, ASP vagy SQL hiba miatt). )

 

 

 

A timeout időket önkényesen határoztuk meg, figyelembe véve a böngészés ergonómiájával foglalkozó tanulmányok megállapításait is:

  • A kapcsolat létrehozásánál a timeout idő 2 sec, normál esetben ennek általában csak a töredéke (az általunk vizsgált hazai szervereknél általában néhány msec)
  • A szerver maximális válaszideje 10 sec (lásd pl. a fentebb hivatkozott oldalakat, de az egyéni tapasztalatok is ezt támasztják alá)
  • Az adatletöltés maximális ideje szintén 10 sec (a 10/100-as hálózatból adódóan ez több mint elegendő)

Ha a fenti három timeout idő bármelyikét elérjük monitorozáskor, akkor az adott lekérdezést hibásnak tekintjük. Előfordulhat tehát, hogy a vizsgált szerver 11 másodperc után válaszolna, de ezt (hangsúlyozzuk ismét: érthető és ésszerű okokból, de teljesen önkényes módon) elfogadhatatlanul hosszú időnek tartjuk.

 

A hibák előfordulása lehet egyszeri (ide soroljuk az egymás után legfeljebb 3-4 alkalommal ismétlődő hibákat is) ill. folyamatos. Egyszeri hiba szinte bármilyen jólműködő rendszernél előfordulhat, nemcsak szolgáltatói oldalon, de az adatkapcsolati lánc bármely pontján, tehát ez a fajta hiba a monitorozás szempontjából szinte lényegtelen. Más a helyzet az ismétlődő, folyamatos hibákkal: ezek általában súlyosabb (időnként fatális) problémák következményei (hardveres meghibásodás, hosszú áramszünet, súlyos szoftverhiba, jelentős hálózati kimaradás, hackertámadás stb.)   Az is előfordulhat, hogy a válaszidők megnőnek és gyakorivá válnak a timeoutok: ez arra figyelmeztet, hogy a monitorozott szerver (pontosabban rendszer, mert nem feltétlenül egy szerver) teljesítőképessége határán van. Ilyenkor nem kell azonnal új vasért rohanni, hiszen időnként a meglévő szoftver optimalizálása, az adatbázis-lekérdezések újragondolása is csodákat tehet.

 

 

 

 

A folyamatosan, perceken keresztül fennálló, automatikusan nem javuló hibák általában humán beavatkozást igényelnek: az esetek egy részében elegendő a távoli belépés, de néha elkerülhetetlen az operátori beavatkozás vagy a helyszíni javítás. A legtöbb webes alkalmazásnál igény van a hiba mielőbbi felfedezésére és elhárítására, hiszen a "döglött" weboldal amellett, hogy nem termel hasznot, meglehetősen imázsromboló is tud lenni. Erre szolgál a netDiag riasztás funkciója, amely konkrétan e-mail vagy SMS küldés lehet, egyszerre akár több címre ill. telefonszámra is. Mind az e-mailben, mind az SMS-ben feltüntetjük a riasztás időpontját (Figyelem! Mivel  a riasztás feltétele a folyamatosan (a felhasználó által beállítható 5-10-15 percen keresztül) monitorozott hiba, így a riasztás időpontja nem esik egybe a szerver leállásának időpontjával.), a szerver URL-jét és a hiba rövid leírását. A riasztás kiküldése után (szintén a felhasználó által meghatározható ideig, praktikusan általában 1-2 óráig) nem küldünk ki újabbat, hiszen annak nem sok értelme lenne. Ha a hiba nem hárul el, a várakozási idő lejárta után SEM küldünk ki újabb riasztást, csak akkor, ha a szerver ismét dolgozni kezd, majd ismét legalább 5-10-15 percre leáll. Az SMS-nél emellett beállítható "silent alert" időszak is, ilyenkor SMS nem kerül kiküldésre (ez pl. olyankor hasznos, amikor a cégvezető napközben értesülni szeretne a leállásokról, éjszaka viszont inkább aludna...).

 

A netDiag rendszer az összes riasztást naplózza, így a megfelelő működés bármikor visszamenőlegesen is ellenőrizhető. Az SMS-ek kiküldését szükség esetén a mobilszolgáltatótól kapott havi részletes listákkal is tudjuk igazolni.

 

 

 

 
   

 

    

   
 

A netDiag szolgáltatás tulajdonosa és üzemeltetője a Medián WebDiag Kft., a szoftvert az Andocsek Kft. fejlesztette.

Az oldalainkon található statisztikák, diagramok, adatok csak előzetes hozzájárulásunk után publikálhatók.

Copyright (c) 2008 Medián WebDiag Kft.     Minden jog fenntartva!