sarg
Un prodotto di log analisis consigliato è sarg.
Per usarlo al meglio le varie guide dicevano di installarlo come modulo di webmin. Sulla centos si devono compiere 4 passi
- Installare RPMforge repository into Yum in questo modo posso installare sarg
- installare sarg
- installare webmin
- configurare sarg attraverso webmin
Installare RPMforge
Guida di riferimento
Andare su questo link prendere il package rpm relativo alla propria distribuzione.
Installarlo con
rmp -i nomepackege.rpm
#oppure
yum install nomepackege.rpm
Dopo di che installare il package per le priorità di installazione in yum
yum install yum-priorities
aggiungere al file /etc/yum.repos.d/rpmforge.repo
priority=10
Provare se con il comando
yum check-update
Si ottiene un qualche messaggio sulle priorità
installare sarg
yum install sarg
installare webmin
Scaricate il pacchetto rpm dal sito di webmin
yum install webmin-versione.rpm
mi dava un codice di errore per la chiave pubblica quindi l'ho installato con
rpm -i webmin-versione.rpm
Configurare sarg attraverso webmin
andare nella sezione dei moduli non usati un-used modules
Settare il file di configurazione di sarg e poi tutto il resto è abbastanza intuitivo
Dopo che è stato configurato non si trova più in un-used modules
yaala
Come strumento per l'analisi dei log ho provato yaala. Questo non è che un semplice script perl che legge il file access.log e scrive i risultati in formato html. Dato che la macchina dove risiede il proxy è un server il file html è stato messo con un link simbolico dentro la directory di apache in modo da poter essere letto da remoto.
Per installare yaala basta scompattare l'archivio in una qualsiasi locazione e poi verificare nella prima riga del file yaala se il percorso del perl è corretto.
Ecco i comandi che ho eseguito
#creazione nel server web apache della directory dove stanno i risultati dell'analisi
mkdir /var/www/rep-web
# creazione del link simbolico reports-web che punti alla directory del web server,
# il contrario non funzionava penso per impostazioni di sicurezza della centos
ln -s /var/www/rep-web /usr/local/yaala/reports-web
Dopo modificare il file config dentro la dir di yaala per dargli le opzioni con cui deve leggere i log
directory: 'reports-web';
report: 'Classic';
logtype: 'Squid';
select: "requests BY client, date, httpstatus, method, mime";
Per fare in modo che venga effettuata l'operazione di aggiornamento del log bisogna lanciare
squid - k rotate
/usr/local/yaala-0.7.3/yaala /var/log/squid/access.log
Il campo select
Questo è il campo chiave da settare per avere le statistiche a cui si è interessati.
I dettagli per il settaggio di questo campo sono nel file README.selections dentro la directory del programma. Ci sono due tipi di dati i campi normali e i campi di tipo aggregazione. Questi ultimi sono i tipi di dati che possono essere sommati tra loro, per esempio la banda o il numero di richieste.
Ecco un esempio di sintassi
select: "aggregation BY field";
select: "aggregation BY field0, field1, field2";
Si può fare anche su più campi
Questo tipo di aggregazione non l'ho capita veramente
If you are interested in more than one aggregation for the same
(combination of) fields, you can select more than one aggregation, too.
However, this tends to look confusing in the generated output.
select: "aggregation0, aggregation1 BY field0, field1";
si può essere interessati a quante volte google è stato visitato
select: "requests BY file WHERE host =~ google";
o se si vuole avere una sintassi più generale
select: "aggregation BY field[, field ..] WHERE field <CMP> value";
'<CMP>' is the rule how to match the values. Methods implemented are:
'==' equal
'!=' not equal
'=~' regular expression (non-numeric only)
'!~' negated regular expression (non-numeric only)
'<', '>' lesser/greater than
'<=', '>=' lesser/greater or equal
I campi dipendono ovviamente da che tipo di log si sta analizzando a noi interessano quelli di squid che sono questi
Fields provided by the 'Squid' parser:
Aggregations:
- bytes
- elapsed
- requests
Keyfields:
- client
- date
- hierarchycode
- hour
- httpstatus
- method
- mime
- peer
- protocol
- resultcode
- server