Log Analyzer

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

  1. Installare RPMforge repository into Yum in questo modo posso installare sarg
  2. installare sarg
  3. installare webmin
  4. 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
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License