Statistiche con PeerGuardian2

Domenica 28 Settembre 2008 11:06 Eremita Solitario 5499 Visite
Stampa

Se usate PeerGuardian2 vi sarà sicuramente (o quasi) venuta la voglia di fare delle statistiche sugli IP più presenti nel vostro file di LOG. Vediamo dunque come fare per estrarre i dati per poterli poi elaborare secondo i nostri gusti...

Iniziamo con il dire che PeerGuardian2 utilizza come file di LOG un database in formato SQLite, questa informazione dovrebbe darvi gia un'idea di cosa andremo a fare. Vediamo dunque di cosa abbiamo bisogno:

SQLite (http://www.sqlite.org/) Ovviamente scaricheremo la versione più adatta a noi, nel mio caso ho fatto tutto con Windoze dunque ho scaricato la versione da linea di comando per Windoze.

- Una seppur minima conoscenza di SQL, essendo un database se non sappiamo cosa sia una query difficilmente otterremo qualche cosa.

Con queste due premesse soddifatte siamo in grado di iniziare a fare le nostre statistiche. Iniziamo dunque copiando il file sqlite3.exe che abbiamo scaricato nella cartella di Peerguardian (o in una cartella all'interno del path, per esempio Windows nel mio caso).

Il file con i dati raccolti, si trova nella cartella di Peerguardian e si chiama "history.db", questo file in pratica altri non é che un Database (per farla semplice) e per accedervi dobbiamo usare il programma SQLite di cui parlavamo prima.

Vediamo dunque come procedere: apriamo una shell e dopo esserci posizionati all'interno della cartella di Peerguardian eseguiamo il comando "sqlite3 history.db" (vedi immagine qui sotto).

Peerguardian-1

Ci ritroveremo dunque di fronte ad un nuovo prompt: "sqlite>" dove usando comandi SQL potremo estrarre tutte le info che vogliamo.

Per prima cosa però dobbiamo sapere quali tabelle ci sono in questo database... per saperlo usiamo il comando".tables" che ci darà in output la lista delle tabelle presenti nel database, e che nel nostro caso sono:

Ora che sappiamo dove cercare, dobbiamo anche sapere cosa cercare, e per fare questo ci serve sapere la struttura delle tabelle presenti, in modo da poter estrarre le informazioni che ci interessano, per fare questo usiamo il comando ".schema" che ci permette di visualizzare il comando di creazione tabella e di conseguenza la struttura, con tutti i dati delle colonne che la compongono.

Peerguardian-4

A questo punto siamo pronti per estrarre informazioni da questo database, sappiamo infatti che tabelle sono presenti e che colonne ci sono nelle suddette tabelle. Iniziamo dunque con una query semplice semplice: "select * from t_names;" il risultato sarà la lista dei nomi dei network presenti nel database. Se invece facciamo "select * from t_history;" otterremo tutti i dati storici raccolti da Peerguardian.

Ovviamente però a noi i dati interessano in un formato un poco più leggibile, per questo possiamo creare query ad-hoc per ottenere le informazioni in un formato più adatto, vediamo un esempio:

select count(*), t_names.name, protocol
from t_history, t_names
where t_history.nameid=t_names.id
and t_history.action=1
group by name, protocol
order by count(*) desc
;

La query qui sopra per esempio estrae i dati contando le "intrusioni" dei vari network, ordinandoli in ordine decrescente, raggruppandoli per nome e protocollo.

Per fare un'analisi dei dati può essere anche necessario importare i dati in un foglio di calcolo, per esempio OpenOffice.org Calc in modo da poter fare grafici ed analizzare meglio i dati, per fare questo dobbiamo "dire" a sqlite di salvare i dati all'interno di un file, che poi andremo a leggere con il nostro foglio di calcolo preferito. Il comando da usare in questo caso è ".export"che richiede come parametro il nome del file in cui salvare i dati.

Ma vediamo come redirigiere l'output della query precedente in un file di testo:

 Peerguardian-2

  1. usiamo il comando ".output [nomefile]" per dire a SQLite dove salvare i risultati
  2. eseguiamo la query che estrae i dati (non avremo output a monitor)
  3. usiamo il comando ".output stdout" per ripristinare l'output di SQLite a monitor

Il file generato sara simile a quello visibile nell'immagine qui sotto:

Peerguardian-3

Detto questo vi do alcune informazioni che vi serviranno per leggere la tabella t_history:

Direi che con questo vi ho stuzzicato abbastanza, avete visto come estrarre i dati da Peerguardian, ora non dovete fare altro che  sbizzarrirvi nel creare le query per estrarre i dati che vi servono, o che vi incuriosiscono. Magari potreste pure inventarvi un sistema per pubblicare in tempo reale i dati sul vostro sito web, se lo fate ditemelo che di sicuro vi linko come esempio :-)

Per ultimo vi "svelo" alcune cose sull'uso di SQLite che vi saranno utili:

Ed ora saluto tutti e visto il giorno auguro a tutti BUON ANNO, che sia un buon anno per tutti, ma proprio tutti.

Eremita Solitario

 

Tags:
Ultimo aggiornamento Giovedì 01 Gennaio 2009 20:54