wwwstat er oppdatert til versjon 2.0.
Denne versjonen inneholder flere muligheter for mer nyansert statistikk enn 1.0 versjonen. I tillegg til statistikken som ble ført, er det liste over hvilket land requestene kommer fra ( i synkende rekkefølge på requests), og hvilke kataloger på almashriq som er blitt aksessert av brukerne av webserveren. Vi valgte å ikke inkludere mer statistikk pga vi fant det mindre nyttig og det blir bare for mye statistikk som opptar plass, og vil ta lenger tid å beregne.
På "katalog-strukturen" er det gjort en begrensning til kun å vise katalogen, og ikke filene, som aksesseres, og også at en kun viser 2 trinn ned i hiarkiet i filstrukturen (dvs. maksimum 2 underkataloger). Disse dataene er sortert på requests i synkende rekkefølge. I tillegg er det her fjernet unødvendige "kataloger" fra statistikken som aksessering av sys-katalogen og feil som "could not find file", "not allowed to access file" osv. På månedsstatistikken er det begrenset til 10 eller mer requests. Dette for at ikke fila skal bli altfor stor. Denne verdien kan lett forandres, ved å forandre en variabel i scriptet format_monthly.
Denne statistikken beregnes på ukesbasis, og på månedsbasis.
Det var før inndelt på uker eller måneder. Nå er det også inndelt per år. Hovedsiden for statistikken viser statistikk for inneværende år. Her kan en velge å se måneder (som har vært), eller de siste ukene (maks 12 siste uker). En kan her også velge et annet år, og da få opp en side med linker til (kun) gjeldende års månedsstatistikk.
Gamle statistiske data (på månedsbasis) fra access_log fila blir nå automatisk hentet ut, og pakket ned med programmet gzip. Det vil bli en gzip-fil med statistikk-data for hver måned som har gått. Dermed vil ikke access_log bli større enn en måneds aksessering av web-serveren. Det vil nødvendigvis kunne gå bort et par-tre aksesseringer på denne måten (maks), men dette vil være ubetydelig i sammenheng med de statistiske beregningene.
Disse operasjonene blir gjennomført i filen wwwstat.monthly.cron. Apache-serveren (web-serveren) logger alle henvendelser til Al Mashriq til filen access_log under Al Mashriq (/var/lib/httpd/logs/almashriq/access_log). Problemet med Apache er at referansen til denne log-filen er ikke stien og navnet på fila, men adressen til hvor fila ligger på disken. Hvis en da f.eks. bytter om access_log til et annet navn, vil Apache fortsette å logge til denne fila, selv om den ikke lenger heter access_log og ligger der den skal. Access_logen blir fjernet på almashriq hver måned, og byttet ut med en ny tom access_log-fil. For å løse dette problemet, må httpd-serveren restartes når dette skjer ("cat /var/lib/httpd.pid | kill -HUP"). Å drepe httpd-prosessen, samt å starte denne opp igjen, kan (og skal) bare utføres av root. Derfor må perl-scriptet som gjør dette, wwwstat.monthly.cron, kjøres, og eies, av root. For å slippe å la dette scriptet bli kalt opp i root sin crontab, påførte vi filen et sticky-bit. De som da har lov til å kjøre filen, vil nå kjøre filen som root. Det ble gjort følgende (som root):
chown root wwwstat.monthly.cron
chgrp almash wwwstat.monthly.cron
chmod 750 wwwstat.monthly.cron
chmod +s wwwstat.monthly.cron
Merk: Hvis forandringer blir gjort til filen (ch??? xx wwwstat.monthly.cron), eller hvis filen blir kopiert til et annet sted, vil sticky-bit`ten forsvinne. Denne må da settes på nytt.
Senere fant vi ut at alt dette som er beskrevet ovenfor ikke er nødvendig i det hele tatt. Det eneste en behøver å gjøre er å skrive en fil over log-filen en skal forandre på. F.eks. skal en "nulle ut" access_log, skrives følgende:
cat /dev/null > /var/lib/httpd/logs/almashriq/access_log
Skal access_log erstattes med en annen fil, bytter en ut /dev/null med den andre fila.
De gamle log-filene ligger under katalogen /var/lib/httpd/logs/almashriq/old_logs/. Disse vil oppta litt plass, men kan bare slettes dersom en ønsker det. Hvis en senere finner ut at det ikke er ønskelig å ta vare på de gamle log-filene, kan en editere fila wwwstat.monthly.cron på følgende måte:
- Kommenter ut de fem (5) første linjene under avsnittet "Oppdaterer access-loggen".
- Legg istedet til: system("rm $statistikksystempath$month_log");
Det ble også oppdaget et annet problem når vi håpet dette delprosjektet endelig var ferdig. Strukturen på hvor alle dataene ligger er oppdelt etter Dewey Decimal Classification System. Ved hver hoved-katalog (under landene, og videre et hakk opp) har katalogene fått navn etter nummeret i Dewey-systemet. Dvs. f.eks. 700 som vil inneholde kunst. I tillegg har en på Al Mashriq lagt til symbolske linker på alle disse katalogene som også inneholder selve navnet, f.eks. til eksemplet ovenfor følger det med en symbolsk link til denne katalogen, kalt 700.arts . Etter en undersøkelse av access_log viser det seg at det blir av og til logget den ekte katalogen, mens andre ganger den symbolske linken. Statistikken ble derfor feil, for at en ikke vil kunne se den totale aksessen av en bestemt katalog på serveren. Det var ingen mulighet til å kunne velge bort dette i statistikk-programmet (wwwstat-2.0) så det ble lagd et script som henter ut denne delen av statistikken, sorterer og legger sammen alle kombinasjonene av samme katalog (opptil 4), og limer det inn igjen i den genererte statistikk-fila. For å få statistikken til å bli pent plassert på linje under hverandre i utskriften, benyttet vi tabeller i html. Vi prøvde først å få denne delen så lik resten av statistikken som mulig, men det ville ikke kunne matche ved forskjellige størrelser på den fonten som ble brukt i browseren. Derfor ble det laget enda et script som konverterer resten av statistikk-utskriften til html-kode med tabeller. Fra før hadde dette bare vært preformatert tekst.
Dette ble det brukt lang tid på for å finne en best mulig løsning på og å implementere denne. Syntaksen i koden kan virke litt grisete, men dette var nødvendig for å få det til.
Alle tidligere statistikk-beregninger er foretatt på nytt med de nye forbedringene, og også der det manglet statistikk fra før, så sant dette har vært mulig. Så all statistikk som fins på serveren idag er blitt oppdatert.
Statistikken fra1996 til februar 1997 er ikke blitt forandret, fordi de opprinnelige statistikkdataene ikke lenger eksisterer.
Samtlige gamle scripts har blitt forandret på. Det har vært mange småting i scriptene, som meget godt kunne føre til feil og unøyaktigheter, og dette skjedde også. Dette har blitt rettet på, så nå skal det fungere helt uten nød vendige manuelle inngrep.
Formatet på filen /base/statistics/index.html og dens prototype, proto, må ikke forandres på/ editeres, såsant ikke en er sikker på at scriptene fortsatt vil fungere. Det er viktig at utgangspunktet, proto, har de ulike "notatene" og taggene i koden på nøyaktig riktig sted. Scriptene kan slutte å fungere ved f.eks. bare å legge til et linjeshift i denne filen.
Statistikken er nå implementert for å klare overgangen til år 2000.
En ting som ble tatt opp på slutten av prosjektet var at vi som administratorer er veldig mye innpå web-serveren, men denne aktiviteten er ikke ønskelig å ta med i de statistiske beregningene. Det ble derfor utviklet et script som først fjerner unødvendige logginger fra access_log, før resten av statistikken kjøres. Øyeblikkskartet fører med seg mange logginger som fjernes, et vaktbikkje-script som regelmessig laster ned index.html blir slettet fra access_log, og alle aksesseringer til /temp/ og /admin/ blir fjernet. I tillegg er det opprettet en tekstfil kalt stat-ip-nummer som inneholder navn på maskiner som skal slettes fra log-fila. Når administratorer på Al Mashriq benytter nye maskiner, bør disse legges inn i denne lista.