HTTPirLOG v0.6b =============== COS'E'? ------- Questa e' una nuova Beta Version del programma che analizza i logfile dei servers HTTP elaborando le statistiche degli accessi, scritto da PirlAGA. Il programma permette di processare il logfile dei Daemon HTTP (httpd, appunto), ossia di quei programmi su cui si basa il World Wide Web, che permettono lo scambio dei documenti. PERCHE'? -------- Il motivo che mi ha spinto alla stesura di tale programma e' stato soprattutto la curiosita' di conoscere le statistiche degli accessi al mio sito Web, e dal momento che per Amiga non ci sono programmi adatti allo scopo, me lo sono scritto da solo. Ho deciso di rilasciare questa Beta Version in modo che gli utenti lo testino, mi aiutino a trovare gli errori (se ci sono :) e mi suggeriscano modifiche, miglioramenti ed aggiunte. E' in cantiere anche un porting su piattaforme MS-DOS (lo so che sono un cesso e che l'Amiga e' il miglior sistema esistente, ma purtoppo sono i PC che si sono diffusi), in modo da ampliare il parco utenti, con benefici per tutti. QUALI DATI PROCESSARE? ---------------------- Ho scritto il programma riferendomi al logfile del CERN HTTPD, e tutto funziona (o almeno pare) alla perfezione. Ho implementato anche il logfile di AServe/AWS, forse il miglior server per Amiga, e tutto e' OK. Purtroppo non ho a disposizione altri tipi di logfile, cosi' non posso implementarli. Se voi ne aveste, tipo quello dell'NCSA HTTPD, contattatemi al piu' presto, in modo da individuarne la tipologia ed insegnare al programma a riconoscerli. FUNZIONI -------- Nello stato attuale, il programma permette di conoscere: - Il numero di richieste per ciascuna pagina, - Il numero di connessioni da ciascun dominio, - Il numero di connessioni nelle diverse bande orarie, - Il numero di connessioni al giorno, mese o anno. Il programma visualizza il risultato dell'elaborazione sia su schermo che su un file di output (in formato ASCII, ANSI o HTML), in modo da poter conservare le statistiche. Il programma mostra il totale delle pagine documentate nel logfile, e su quante di queste sono basate le statistiche, secondo i requisiti indicati dall'utente. Il programma permette, inoltre, il calcolo delle percentuali, e del tempo trascorso per compiere tutte le operazioni. Adesso e' possibile SALVARE la configurazione corrente, in modo da poter riseguire il file con gli stessi settaggi, utilizzando pero' un solo parametro (che fa' caricare la configurazione). Si puo' immettere il nome della pagina da considerare, o della directory, anche tramite wildcard. Vengono prodotti tabulati in ASCII, e puo' essere indicato il numero minimo di connessioni perche' una voce sia mostrata nelle statistiche. E' possibile, poi, ordinare l'output alfabeticamente o per numero di occorrenze. Comunque sia, il programma e' totalmente configurabile tramite parametri, e permette di abilitare e disabilitare a piacimento ciascuna funzione. DA FARE ------- - Appena provvederete ad inviarne una copia, potro' testare le routines per manipolare anche i logfiles dell'NCSA HTTPD. - Una interfaccia (possibilmente grafica) un po' piu' comoda. - Statistiche per Settimana. - Supporto dei Catalogs. - Supporto del CGI-BIN - Tutte le funzioni che mi suggerirete. L'ARCHIVIO ---------- HTTPirLOG v0.6b e' distribuito in un archivio LHA contenente: HTTPirLOGv06 ---> L' eseguibile Principale HTTPirLOGwb ---> Una semplice interfaccia in AmigaDOS HTTPirLOGv06b.config ---> Il file di configurazione HTTPirLOG.doc ---> Documentazione ASCII in Inglese HTTPirLOG.guide ---> Documentazione AmigaGuide in Inglese HTTPirLOG_ITA.doc ---> Documentazione ASCII in Italiano HTTPirLOG_ITA.guid e ---> Documentazione AmigaGuide in Italiano e molte icone nello stile MagicWB. Il programma e' stato testato su A1200 ed A3000 standard ed ha funzionato correttamente con logfiles del Cern-HTTPD di 2, 3 e 4 Mb. Sul 1200 ci sono stati dei problemi di memoria con tutte le funzioni abilitate, oppure con logfiles troppo estesi. UTILIZZO -------- Il programma deve essere eseguito da CLI; se non e' seguito da nessun parametro, ne mostra la lista dettagliata. Se il primo parametro e' "-h" o "-H", si ottiene l'help in linea, che facilita passo per passo l'immissione dei parametri; se invece esso e' "-l" o "-L", il programma carichera' la configurazione corrente. Altrimenti, il primo parametro deve essere il nome del logfile da processare, gli altri parametri possono anche avere un ordine casuale. Tranne che per il campo di Pagebase, tutti i parametri non sono case sensitive. Si puo' usare anche lo script HTTPirLOGwb compreso nel pacchetto, che tramite semplici istruzioni AmigaDOS (3.x) provvede ad aprire tutti i requesters necessari, tranne quello per la PageBase. Uso: HTTPirLOG FILENAME/A File da Processare NOELAPSED/S Non calcola il tempo trascorso PROGRESS/S Mostra il progredire delle operazioni JUSTHTML/S Considera solo le pagine .HTML PERCENT/S Calcola le rispettive percentuali NOSEE/S Non mostra a schermo l'output NUMTOO/S Statistiche anche per i Domini Numerici GRAPH/S Crea i Grafici SORT/S Ordina per numero di connessioni MIN=N/S Numero minimo di connessioni OUT=N/S Tipo di File di Ouput CLASS=N/S Livello del Dominio DATE=N/S Tipo di Data BAND=NN/S Dimensioni delle bande orarie PAGE=XXX/S Nome della Pagina o Directory da considerare SAVE/S Salva la Configurazione HTTPirLOG -H Per l'Help In Linea HTTPirLOG -L Carica ed utilizza la configurazione salvata FILENAME L'unico parametro necessario, ossia il nome del file da processare, che deve essere sempre il primo. Se Non sono specificati altri parametri si utilizzera' il settaggio di default. NOELAPSED Disabilita il calcolo del tempo trascorso dall'inizio alla fine delle operazioni. PROGRESS Abilita il contatore in tempo reale delle pagine processate. JUSTHTML Ordina al programma di inserire nelle statistiche solamente i files con estensione .html o .HTML PERCENT Abilita il conteggio delle percentuali. NOSEE Disabilita l'output su video. Se e' inserito insieme a nolog, il programma non parte in quanto non ci sarebbe output del programma. NUMTOO Normalmente, i domini numerici sono accumunati sotto un'unica voce, NUMERICAL. Per vedere le statistiche di ciascun dominio, abilitare questo flag. OUT=N Specifica il tipo di file di output col rapporto delle operazioni. 0= Disabilitato, 1= ASCII (di default), 2= ANSI, 3= HTML !! GRAPH Crea i Tabulati ASCII. SORT Ordina l'output per numero di occorrenze. MIN=N Indica il numero minimo di connessioni affiche' una voce venga mostrata. Quando e' abilitato, attiva automaticamente anche il SORT. * QUESTA OPZIONE NON E' STATA ANCORA TESTATA DEL TUTTO * CLASS=N Questo parametro abbisogna di un numero dopo il carattere = . Rappresenta la classe del dominio da processare (della macchina da cui e' stata richiesta una pagina), e deve essere un numero da 1 a 9. Con class=0 si disabilita tale funzione. Il valore di default e' 1. Es.: class=1 considera il dominio .it class=2 considera il dominio .cmns.it class=2 considera il dominio .mnegri.cmns.it DATE=N Il valore numerico indica il tipo di Data da considerare. 0 disabilita la funzione, di default c'e' 1, il massimo e' 3. Es.: date=1 per Giorno/Mese/Anno date=2 per Mese/Anno date=3 per Anno solamente BAND=NN Questo flag indica l'ampiezza delle fasce orarie in minuti. Puo' valere 0, 15, 30 o 60. Con 0 si disabilita la funzione, il default e' 60. Es.: band=60 per bande da 1 ora band=30 per bande di mezz'ora band=15 per bande di 15 minuti PAGE=XXX questo e' il parametro della funzione piu' importante, quella che stabilisce le pagine su cui basare le statistiche. Con 0 si disabilitano le statistiche legate al nome della pagina, non le altre. Se invece dello 0 si introduce una stringa, essa verra' considerata come il nome dei files da considerare, o il nome della directory all'interno della quale si trovano le pagine da considerare. (insomma, verranno considerati i nomi delle pagine a partire da quella stringa) In questo caso, le altre funzioni baseranno il loro operato su queste pagine. Di default verranno processate tutte le pagine. Per le directory-utente, si possono usare indifferentemente i simboli ~ oppure %7E . Il Nome puo' anche essere inserito tramite wildcard * . Es.: page=/~tekne/welcome.html - la statistica riguardera' solamente questa pagina. page=/ridere/ \__ il programma considerera' solamente le page=ridere / pagine nella directory "ridere". page=bubba - considera tutte le pagine il cui nome contenga "bubba". page=tekne*.gif - considera tutte le pagine del tipo "teknexxxx.gif". SAVE Aggiungendo questo flag, si ordina di salvare la configurazione corrente dei parametri su un file. Tale file e' di facile editing, in modo da permettere una configurazione piu' agevole del programma. -L Carica la configurazione salvata. ESEMPI ------ HTTPirLOG httpd.log save Output file (httpd.log.PIR) in ASCII, Conteggio tempo trascorso attivo, bande orarie di 1 ora, dare del tipo Giorno/Mese/Anno, domini del tipo .it , non mostra il progredire, considero tutte le pagine, mostro anche a video, non calcolo i valori percentuali, tutti i domini numerici in NUMERICAL. Non produce il Grafico, ordina alfabeticamente, mostra tutte le voci indipendentemente dal numero di connessioni. Salva la configurazione di DEFAULT. HTTPirLOG -l Come sopra. HTTPirLOG httpd2.log class=2 band=15 noelapsed justhtml progress page=/ridere/ nosee percent out=3 min=100 graph Output file (httpd2.log.html) in HTML, domini del tipo cmns.it bande orarie di 15 minuti, non calcola il tempo passato, data del tipo Giorno/Mese/Anno. Visualizza i progressi, considera solo le pagine .html dentro la directory /ridere/, non mostrare a video l'output, calcola le percentuali, statistiche singole per i domini numerici. Produce i grafici, ordina per occorrenze, mostra solo le voci con piu' di 100 connessioni. Non salva la config. IL FILE DI CONFIGURAZIONE ------------------------- Il file di configurazione e' molto semplice da modificare: basta editare i valori. Il file e' strutturato su linee: ci sono delle linee di commento che cominciano per "#", ed altre con i valori. Le linee importanti sono queste ultime, e sono quelle PARI. Nelle dispari ci sono i commenti o altre cose non determinanti. Per questo NON DOVETE ASSOLUTAMENTE cancellare le linee coi commenti, ne' modificre l'ordine dei campi valore, perche' il programma legge solamente le linee pari del file, quelle dispari sono li' per agevolare l'editing. Non devono essere altresi' cancellate le prime 6 linee di commento. Ecco un esempio (i commenti sono tra gli asterschi * ): ################################################################### ## HTTPirLOG v06b Config File -- (c)1996 PirlAGA ## ## Dont Change Lines Starting with "#" - Dont modify Lines Order ## ## For Value Parameters, next line contains the VALUE ## ## For Flags, next line contains Y or N ## ################################################################### # Next---> FILENAME * le linee come quest non devono essere rimosse * httpd.log * qui puo' essere modificato il nomefile* # Next---> CALCULATE ELAPSED ? N * qui si possono cambiare i N con Y * # Next---> SHOW PROGRESS ? Y # Next---> JUST HTML ? Y # Next---> CALCULATE PERCENTAGES ? n # Next---> SHOW ON SCREEN ? y # Next---> PROCESS NUMERICAL DOMAINS ? n # Next---> OUTPUT TYPE 2 * qui si possono cambiare i valori * # Next---> DOMAINS CLASS DEPTH 1 * sempre secondo le specifiche del programma * # Next---> DATE DEPH 2 * IMPORTANTE: tutti valori devono cominciare * # Next---> TIME BANDS DEPTH * all' INIZIO della linea !* 30 # Next---> PAGE BASE /ridere/ # Next---> MINIMUM CONNECTIONS 0 # Next---> SORT BY CONNECTIONS n # Next---> GRAPH CREATION n BUGS ---- - Non e' molto bello, in caso di domini numerici, non sapere cosa siano, ma cio' dipende dal logfile. In futuro, forse, implementero' routines che attraverso AmiTCP vadano a chiedere ad un nameserver a cosa corrispondano quei valori numerici. - Utilizzando MIN, talvolta c'e' qualcosa che non quadra. - Il mio pessimo inglese. - In particolari casi di memoria scarsa e sporca, puo' succedere che qualcosa non funzioni. REFERENCE --------- Questi i formati dei tre logfiles (quasi tutti) implementati: CERN ------------------------- Tipo: Site - - [Day/Month/Year:Hours(24):Min:Sec +GMT_Hours] "Method URL Protocol" #1 #2 Es.: a1200.tekne.it - - [28/Sep/1995:13:15:35 +0000] "GET /~tekne/ridere/home.html HTTP/1.0" 304 0 NCSA ? ------------------------- Tipo: Site [Weekday Month Day Hours(24):Min:Sec Year] Method URL Protocol Es.: a1200.tekne.it [Sat Sep 28 13:15:35 1995] GET /~tekne/ridere/home.html HTTP/1.0 AServe ------------------------- Tipo: [Weekday, Day Month Year Hours(24):Min:Sec GMT] Site - - "Method URL Protocol" #1 #2 <- Browser> Es.: [Sat, 28 Sep 1995 13:15:35 GMT] a1200.tekne.it - - "GET / HTTP/1.0" 301 398 <- Voyager/AmigaOS/0.29> Il logfile di AServe contiene molte informazioni in piu' rispetto agli altri, ma non sono di facile decodifica per l'estrema variabilita' della loro tipologia. LEGAL & AUTHOR -------------- Questo programma e' "cosi' com'e'", il suo utilizzo e' a vostro rischio. Il programma e' EveryThingYouWant-Ware, cioe' non voglio soldi perche' tu lo usi, mi basta un qualsiasi segno della tua esistenza :) Per segnalare bugs o suggerimenti, contattami tramite: e.Mail: tekne@cmns.mnegri.it pirlaga@az.flashnet.it appena possibile ! Se vuoi, puoi dare un'occhiatina al mio Web su http://www.cmns.mnegri.it/~tekne/ See ya, aMiGa RulEz! .oO PirlAGA Oo.