alkalmazások monitorozása webes környezetben
Post on 12-Jan-2016
20 Views
Preview:
DESCRIPTION
TRANSCRIPT
Alkalmazások monitorozásawebes környezetben
Börcsök Józsefborcsokj@sch.bme.hu
Á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):
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/statelse awk '/^cpu / { print "user.value " $2 "\nnice.value " $3 "\nsystem.value " $4 "\nidle.value " $5 }' < /proc/statfi
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; }}
CPU kihasználtságának állapota (shell script)
Memória használatának jellemzői (Perl script)
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ő keretrendszer
http://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: periódikusság
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!
top related