Objavljeno: 8.12.2005 23:30 | Avtor: Matjaž Klančar | Monitor November 2005

Spletni strežnik doma (2)

V prejšnji številki smo se prebili do delujočega strežnika Apache, ki gostuje kar v našem okenskem osebnem računalniku, v svet pa je povezan po stalni kabelski ali ADSL povezavi. Vse lepo in prav, vendar nas bo sčasoma gotovo začelo zanimati, kdo in predvsem koliko neznancev (ali pač znancev, če smo splet zaklenili za zaprt krog prijateljev) se sprehaja po njem. Nič lažjega, boste rekli, saj prav vsak spletni strežnik zapisuje dostope v katero izmed datotek .LOG in seveda tudi Apache ni izjema. Težava je v tem, da so te datoteke prirejene strojnim bralnikom in razlagalnikom prebranega in nikakor ne povprečnim smrtnikom, to pa pomeni, da se bo treba spet pomuditi pri nameščanju in nastavljanju nekaj programov.

Za začetek bo smiselno apaču dopovedati, naj v datoteko LOG zapiše čim več oz. kar vse, kar se da zapisati (poleg podatkov o obiskovalcu še različico njegovega brskalnika, od kod je prišel na našo stran itd.). Preveč informacij nikoli ne škodi, saj nikoli ne vemo, kdaj jih bomo potrebovali. To naredimo s tako vrstico, ki jo zapišemo v datoteko httpd.conf:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

Nato mu samo še povemo, v katero datoteko naj podatke dejansko zapisuje. Npr. tako:

CustomLog logs\klancar\access.log combined

Ločimo po dnevih

Zapisovanje torej že imamo tako, kot si ga želimo, zdaj bo treba apača le nekako prepričati, naj vsega vendarle ne zapisuje v eno samo, vedno večjo, počasi lahko tudi gigantsko datoteko access.log. Najbolj smiselno bi bilo, če bi imeli za vsak dan posebno datoteko LOG.

Pomislili bi, da je to mogoče postoriti z enim od ukazov v nastavitveni datoteki httpd.conf, vendar ne. Omislimo si lahko katerega izmed namenskih zastonjskih programov ali pa si napišemo majhno skripto, ki bo postorila vse potrebno. Pri slednji gre za zelo preprosto zvijačo - ustavimo Apache (sicer je datoteka zaklenjena in je ne moremo spreminjati), datoteko preimenujemo v nekaj takega kot access_dan_mesec_leto.log in Apache znova poženemo. Ker je klasični Microsoftov ukazni jezik nekoliko prereven z datumskimi ukazi, bo treba poseči po čem močnejšem; nekateri "starejši občani" še vedno uporabljamo 4NT (www.jpsoft.com). V njem bi se prave tri vrstice glasile tako:

"c:\Program Files\Apache Group\Apache2\bin\apache" -k stop

ren klancar\access.log klancar\access_%@day[%_DATE]_%@month[%_DATE]_200%@year[%_DATE].log

"c:\Program Files\Apache Group\Apache2\bin\apache" -k start

Lepo jih pospravimo v datoteko BAT (npr. naredi_dan.bat) in jo v Okenski scheduler (Control panel/Scheduled Tasks) vpišemo tako, da se poganja vsak dan minuto po polnoči. Tako bomo imeli za vsak dan svojo datoteko LOG, ki bo znosno velika. Seveda bo moral računalnik delati 24 ur na dan, a to od spletnega strežnika tako ali tako že privzeto pričakujemo.

Analog

Analog je najbolj priljubljen analizator spletnega prometa. Z nekoliko špartanskim izhodnim videzom, a zelo učinkovit.

Kot rečeno, bomo za branje in analizo zapisanih dostopov potrebovali katerega iz množice, tudi zastonjskih, analizatorjev. Najbolj priljubljen je vsekakor Analog (www.analog.cx), čeprav so njegovi izpisi nekoliko špartanski. Tako kot apača tudi Analog krmilimo prek množice ukazov v nastavitveni datoteki - analog.cfg. V njej lahko nastavljamo, katera poročila hočemo imeti (po mesecih, po tednih, po dnevih, po urah, po tipih brskalnikov, po domenah, po...); skratka, izberemo lahko vse, kar nam srce poželi, če se le dovolj poglobimo v obsežna navodila. K sreči je že v začetku nastavljeno že skoraj vse, kar potrebujemo za začetno analizo - Analogu moramo povedati le še to, kje so naše datoteke LOG, v kakšnem formatu so in kam naj zapiše končno analizo, najbolje v formatu HTML. To najelegantneje naredimo z ločeno datoteko CFG, v katero zapišemo le ukaze in nastavitve, ki se od prvotne datoteke razlikujejo (Analog bo prebral obe). Npr. datoteko klancar.cfg, ki se glasi takole:

OUTPUT XHTML

APACHELOGFORMAT (%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\")

LOGFILE "c:\program files\apache group\apache2\logs\klancar\access*.log"

OUTFILE .\reporti\klancar.html

V skupni datoteki analog.cfg še zapišemo, katerih dostopov ne želimo zapisati, npr. takole:

HOSTEXCLUDE 192.168.*.*

HOSTEXCLUDE 10.*.*.*

In na koncu analizo sprožimo z ukazom:

analog +gklancar.cfg

Nujna pohitritev

QDNS je eden izmed programov, s katerim lahko drastično pohitrimo analiziranje prometa spletnega strežnika.

Za začetek to popolnoma zadostuje, še posebej, če tako analiziranje zapišemo v scheduler (glej zgoraj) in zahtevamo, naj se izvaja vsak dan. Ko bo zapisanega prometa veliko, pa se bomo počasi zavedeli in ugotovili, da je taka analiza lahko silno, skorajda noro počasna! Razlog je v konverziji številčnih naslovov IP v domenska imena oz. t. i. "DNS resoluciji", kot se ji reče v žargonu. Apač namreč v datoteke LOG zapisuje le obiskovalčeve številke IP (to je mogoče spremeniti, a tega apačevi razvijalci ne priporočajo), v končni analizi pa bi vsekakor raje imeli podatke, ki so zapisani z domenskimi imeni. Če imamo datoteke LOG, ki imajo (deset-, sto-) tisoče obiskovalcev, bo analiza zahtevala tudi toliko tisoč dostopov do strežnika DNS, to pa je lahko (celo če imamo tak strežnik nameščen nekje lokalno) zelo dolgotrajen proces.

Rešitev je v programu, ki uporablja lokalno predpomnenje že razrešenih številk IP. Seveda moramo takemu programu prilagoditi tudi Analog; konkretno, naročiti mu moramo, naj po imenih DNS ne sprašuje strežnika DNS, temveč naj si jih prebere v datoteki, ki jo bo polnil ta program. Če je ta datoteka dnscache, to naredimo z dodatno vrstico v klancar.cfg:

DNSFILE dnscache

Takih "pohitritvenih" programov (neodvisnih razvijalcev) je zelo veliko, najlaže pa jih dobimo kar z Analogove spletne strani. Če uporabimo Quick DNS 2.0., bo skripta, ki požene analiziranje datotek LOG, videti takole (če privzamemo, da je naš strežnik DNS na naslovu 10.0.1.8:

qdns /L "c:\program files\apache group\apache2\logs\anja.klancar\access*.log" /D dnscache /Y 10.0.1.8

analog +gklancar.cfg

Tako analiziranje je bistveno hitrejše od privzetega in uporabno tudi, ko naš spletni strežnik uporablja množica uporabnikov.

V prihodnji številki: Domači spletni foto album

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

Najbolj brano

  • Redka zmaga malega rudarja kriptovalut

    V času, ko rudarjenje bitcoina obvladujejo velika podjetja s specializirano opremo in ogromnimi viri, je neodvisnemu solo rudarju uspel izjemen podvig. 

    Objavljeno: 27.7.2025 13:00
  • Šibko geslo in hekerski vdor pogubila 158 let staro podjetje

    Britansko podjetje KNP iz Northamptonshira, ki se je ukvarjalo s prevozi, je po 158 letih obratovanja zaprlo vrata, zaradi česar je brez dela ostalo 700 ljudi. Razlog ni slabo poslovanje, težke tržne razmere, izgube ali celo poneverbe, temveč precej bolj banalen. Podjetje je opustošil hekerski napad, v katerem so napadalci odnesli podatke o vseh strankah.

    Objavljeno: 23.7.2025 05:00
  • ChatGPT je bogatejši za pravega raziskovalnega agenta

    ChatGPT agent je nova generacija digitalnega pomočnika, ki združuje sposobnosti vizualnega in tekstovnega brskanja ter neposredne interakcije z zunanjimi platformami, kot so Google Drive, GitHub in SharePoint.

    Objavljeno: 18.7.2025 08:00
  • Tehnologija je orodje za množično nadzorovanje

    Ko je minuli teden kamera na koncertu skupine Coldplay v Bostonu prikazala par, ki objet posluša Chrisa Martina, bi bil lahko to le še eden izmed množice povsem običajnih in dolgočasni prizor. A ker se je ženska na posnetku obrnila proč in obraz zakopal v roke, moški pa se je sklonil pod kader, je posnetek vzbudil veliko pozornosti. Pevec Chris Martin ga je na odru komentiral z besedami, da sta bodisi zelo sramežljiva bodisi razmerje skrivata – in ostalo je bilo zgodovina.

    Objavljeno: 21.7.2025 05:00
  • ChatGPT je slab v šahu

    Najboljši šahist sveta Magnus Carlsen je v spletnem dvoboju premagal umetno inteligenco ChatGPT v vsega 53-ih potezah, pri čemer sam ni izgubil niti ene same figure. 

    Objavljeno: 21.7.2025 09:00
  • ChatGPT-5 bo na voljo avgusta

    Sam Altman, izvršni direktor OpenAI, je potrdil, da bo model GPT-5 izšel že v začetku avgusta. 

    Objavljeno: 25.7.2025 09:00
 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji