Nei server Linux che amministro ho recentemente installato un programma di monitoring dei logs: logwatch.
Una questione importante ma abbastanza noiosa e per cui non si ha mai molto tempo è – appunto – quella dell’analisi dei log, una sorta di “diario” dell’attività svolta dal sistema.
Spesso si ricerca nei logs solo quando insorge un problema: la proattività di logwatch, invece, ci permette di avere una sintesi di ciò che è successo e che merita la nostra attenzione direttamente via email.
Assicuratevi di avere un MTA installato e configurato a dovere [consiglio: postfix o qmail].
Una volta installato, logwatch invia una mail a root@localhost ogni giorno.
Modifichiamo quindi l’indirizzo a cui root farà il forward di tutta la posta:
% cat /etc/aliases
postmaster: root
root: michele@bologna.com
Modifichiamo la schedulazione dell’esecuzione di logwatch da giornaliero a mensile [da cron.daily a cron.weekly]:
mv /etc/cron.daily/*logwatch /etc/cron.weekly
Ed infine specifichiamo a logwatch di analizzare i log relativi agli ultimi 7 giorni e il formato da usare (HTML):
cp /usr/share/logwatch/default.conf /etc/logwatch/conf/logwatch.conf
Nel file di conf cambiate:
Format = html
Range = between -7 days and -1 days
Ecco l’esempio di una mail ricevuta da logwatch:
Come potete vedere ci sono informazioni molto interessanti, come:
* i pacchetti installati/aggiornati tramite dpkg
* gli accessi tramite ssh
* gli utilizzatori di sudo
* lo spazio disco utilizzato
e altre informazioni sicuramente utili sullo stato della macchina in questione.
logwatch è entrato nella dotazione software standard che installo su tutte le macchine Linux che amministro.
La parte sulla configurazione risulta un po scarna, ad esempio, sarebbe interessante sapere come dire a logwatch quali log processare, come filtrare le informazioni ecc.
Per quello che vuoi fare tu hai bisogno di logstash (ed eventualmente elasticsearch & kibana).