200 likes | 281 Views
Börcsök József borcsokj@sch.bme.hu. Alkalmazások monitorozása webes környezetben. Áttekintés. Alkalmazásonként milyen adatok gyűjtsünk? Milyen eszközökkel tudjuk ezeket kiolvasni? Milyen következtetéseket lehet levonni a begyűjtött adatokból?
E N D
Börcsök József borcsokj@sch.bme.hu Alkalmazások monitorozásawebes környezetben
Áttekintés • Alkalmazásonként milyen adatok gyűjtsünk? • Milyen eszközökkel tudjuk ezeket kiolvasni? • Milyen következtetéseket lehet levonni a begyűjtött adatokból? • Példa egy rendszert monitorozó és egy web log analizáló alkalmazásra • További következtetések levonásához miket lehet még figyelembe venni?
Miket figyeljünk, mennyit logoljunk • Minden alkalmazás esetén a hibák logolása (ERROR) • Információs (INFO) szinten csak azok, amiket később felhasználunk (nagyra nőhetnek egyébként) • Néha hasznos lehet az eredeti formátum helyett valami más (szabványosabb használata) • Központi logolás is kialakítható, (syslog-ng)
Példa: a munin segédeszköz • Segédeszköz a rendszer változóinak figyelésére és grafikus megjelenítésére • napi, heti, havi és éves grafikonok • Honlap: http://www.linpro.no/projects/munin/
Példagrafikonok (load és memória) • 5 perces átlagos load: a futásra kész sorban lévő folyamatok átlagos száma az utolsó 5 percben, a blokkolt folyamatokat nem számolva.
Munin: alkalmazásszintű grafikonok • Apache: szálak, kérések, adatmennyiség • Filerendszer kihasználtság • IO műveletek: blokkírás, -olvasás • Levelezés: sorok hossza, elküldött levelek • Tűzfal: hálózati kapcsolatok típus és állapot szerint • Adatbázisok statisztikák: olvasott/írt blokkok, commit/rollback száma, indexelt és index nélküli keresések, insert, update, delete
Munin: rendszerszintű grafikonok • Folyamatok száma (összes; running/sleeping) • HW: hőmérséklet, feszültségek, ventillátorok fordulatszáma • CPU kihasználtság • Megszakításokés kontextus váltások • Load • Memória használat • Swap műveletek • Hálózati forgalom, kapcsolatok szolgáltatások szerint • saját statisztikák
Munin adatforrások • Több forrás: • log • /proc filerendszer • Állapotlekérdező parancs uptime, free, df, mysqladmin • Adatbázis • Gyűjtés: időzített scriptek (pluginok) • Tárolás: RRD formátumban • Megjelenítés:grafikon • Scriptek nyelve: shell, perl vagy python
Példa a scriptekre (részletek): CPU kihasználtságának állapota (shell script) if [ ! -z "$extinfo" ] then awk '/^cpu / { print "user.value " $2 "\nnice.value " $3 "\nsystem.value " $4 "\nidle.value " $5 "\niowait.value " $6 "\nirq.value " $7 "\nsoftirq.value " $8 }' < /proc/stat else awk '/^cpu / { print "user.value " $2 "\nnice.value " $3 "\nsystem.value " $4 "\nidle.value " $5 }' < /proc/stat fi Memória használatának jellemzői (Perl script) open (IN, "/proc/meminfo") || die "Could not open /proc/meminfo for reading: $!"; while (<IN>) { if (/^(\w+):\s*(\d+)\s+kb/i) { $mems{"$1"} = $2 * 1024; } }
Munin: következtetés • Periodicitás • Napi- és heti • Trend (pl. éves)
Munin: korrelációanalízis Apache szálak MySQL lekérdezések CPU
További monitorozási eszközök • Solaris 10 – DTrace: dinamikus nyomkövető keretrendszerhttp://www.opensolaris.org/os/community/dtrace/ • Pillanatnyi kép: hagyományos UNIX parancsok, pl. top, ps -auxs, df, free, vmstat • Óránkénti, napi összefoglalók: logcheck • Komolyabb felügyeleti rendszerek: Tivoli, Unicenter
A web szerver logjai • Alapértelmezés:minden letöltést logol (access.log):%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot • Hibák: külön file-ba (error.log) • Több domain kiszolgálása ->több file(Apache esetén ez korlátos), vagy egy a domain megjelölésével • érdemes időnként (naponta – hetente) új file-t nyitni (logrotate)
Web log analízis • a két leggyakrabban használt program: webalizer és AWstats • Miket láthatunk: • látogatók; találatok; oldalak; letöltött adatmennyiség; országok, böngészők, op.rendszerek eloszlása, keresőkifejezések • gyűjtés saját formában
AWstats lehetőségei • azonnali (CGI) megjelenítés vagy statikus oldalak generálása • napi, havi és évi összesítések • weben kívül FTP és levelező szerverek analizálásához is használható
AWstats: további következtetések • kiugró értékek (pl. InfoSite költözés, Index link) • belépési oldalak • milyen keresőkifejezések alapján találják meg az oldalt – jó kiindulás az optimalizáláshoz • leggyakoribb letöltések (Zipf) • ami ilyen egyszerűen nem állapítható meg: tipikus viselkedési szokások
Példa: Hírek a VIRen 80-20 szabály és Zipf-törvény • Összes oldal: 583 • Összes letöltés: 31388; 80%-a: 25110 • Legolvasottabb letöltés: kb. 1000 • Felső 20% aljának letöltési száma: 67 • Felső 20% összes letöltése: 27410
Mivel egészíthetjük ki a webes alkalmazásokat? • Oldalak közötti navigáció mentén logolás (milyen esemény [kattintás] hatására milyen oldalra ment tovább a felhasználó) • Java ServerFaces esetén action metódusban logolás • Letöltések (oldalak és médiaanyagok) számlálása – így egyszerűbben kinyerhetők • Számadatok munin segítségével grafikonon ábrázolhatók (automatikus) • A szoros kapcsolatba tartozó elemek egy oldalra csoportosítása (pl. portálon egy tab)
Hasznos linkek • http://www.linpro.no/projects/munin/ • http://www.awstats.org/ • http://www.mrunix.net/webalizer/ • http://logging.apache.org/log4j/docs/ Köszönöm a figyelmet!