6 999
contributi
Nessun oggetto della modifica |
S3v (discussione | contributi) Nessun oggetto della modifica |
||
Riga 14: | Riga 14: | ||
# apt-get install syslog-ng | # apt-get install syslog-ng | ||
</pre> | </pre> | ||
L'installazione rimuoverà automaticamente il demone < | L'installazione rimuoverà automaticamente il demone <code>syslog</code> installato di default. | ||
=Configurazione del server Syslog= | =Configurazione del server Syslog= | ||
Riga 39: | Riga 39: | ||
</pre> | </pre> | ||
in modo da abilitare il demone a ricevere log da client remoti.<br/> | in modo da abilitare il demone a ricevere log da client remoti.<br/> | ||
In questa configurazione è stata presa in considerazione una semplice gestione dei log (di default salvati in < | In questa configurazione è stata presa in considerazione una semplice gestione dei log (di default salvati in <code>/var/log</code>), senza l'implementazione di un database di archiviazione. Si tenga comunque presente che le possibilità di gestione dei log sono molto più avanzate di quelle mostrate in questa guida. | ||
=Installazione di phpLogCon= | =Installazione di phpLogCon= | ||
Riga 45: | Riga 45: | ||
Prima di installare phpLogCon è necessario installare e configurare un ambiente LAMP, seguendo ad esempio le indicazioni riportare in questa guida: [[LAMP: Linux, Apache, MySQL e PHP]].<br/> | Prima di installare phpLogCon è necessario installare e configurare un ambiente LAMP, seguendo ad esempio le indicazioni riportare in questa guida: [[LAMP: Linux, Apache, MySQL e PHP]].<br/> | ||
Una volta terminata la configurazione dell'ambiente LAMP si può procedere all'installazione di phpLogCon. Si scarichi innanzitutto la versione più aggiornata dal sito ufficiale: http://www.phplogcon.org/downloads.<br/> | Una volta terminata la configurazione dell'ambiente LAMP si può procedere all'installazione di phpLogCon. Si scarichi innanzitutto la versione più aggiornata dal sito ufficiale: http://www.phplogcon.org/downloads.<br/> | ||
Quindi si scompatti l'archivio appena scaricato e si copi la directory < | Quindi si scompatti l'archivio appena scaricato e si copi la directory <code>src</code> all'interno del nostro server Apache: | ||
<pre> | <pre> | ||
# tar -xzvf phplogcon-2.3.11.tar.gz | # tar -xzvf phplogcon-2.3.11.tar.gz | ||
Riga 62: | Riga 62: | ||
groups www-data | groups www-data | ||
</pre> | </pre> | ||
Ora copiamo i due file < | Ora copiamo i due file <code>configure.sh</code> e <code>secure.sh</code> dalla directory <code>contrib</code> all'interno del nostro server Apache, rendiamoli eseguibili e lanciamo gli script: | ||
<pre> | <pre> | ||
# cd | # cd | ||
Riga 71: | Riga 71: | ||
# ./configure.sh | # ./configure.sh | ||
</pre> | </pre> | ||
Infine colleghiamoci alla pagina < | Infine colleghiamoci alla pagina <code>http://127.0.0.1/phplogcon</code> e completiamo il processo di installazione e configurazione di phplogcon.<br/> | ||
Ora apriamo con un editor il file <code>'''/etc/logrotate.conf'''</code> e cerchiamo la voce < | Ora apriamo con un editor il file <code>'''/etc/logrotate.conf'''</code> e cerchiamo la voce <code>create</code>, modificandola in: | ||
<pre> | <pre> | ||
create 640 root logadmin | create 640 root logadmin | ||
Riga 88: | Riga 88: | ||
} | } | ||
</pre> | </pre> | ||
In questo modo la prossima volta che logrotate verrà eseguito i log diventeranno leggibili di default anche per il nostro webserver. Per visualizzarli basterà collegarsi alla pagina < | In questo modo la prossima volta che logrotate verrà eseguito i log diventeranno leggibili di default anche per il nostro webserver. Per visualizzarli basterà collegarsi alla pagina <code>http://127.0.0.1/phplogcon</code>. | ||
=Installazione di Splunk= | =Installazione di Splunk= | ||
Un'interfaccia alternativa molto potente è Splunk (http://www.splunk.com/).<br> | Un'interfaccia alternativa molto potente è Splunk (http://www.splunk.com/).<br> | ||
Riga 98: | Riga 98: | ||
dpkg -i splunk_package_name.deb | dpkg -i splunk_package_name.deb | ||
</pre> | </pre> | ||
dove < | dove <code>package_name</code> corrisponde al numero di versione del pacchetto scaricato.<br> | ||
Per avviare Splunk per la prima volta diamo il comando: | Per avviare Splunk per la prima volta diamo il comando: | ||
<pre> | <pre> | ||
/opt/splunk/bin/splunk start --accept-license | /opt/splunk/bin/splunk start --accept-license | ||
</pre> | </pre> | ||
(potete trovare il testo della licenza qui: < | (potete trovare il testo della licenza qui: <code>/opt/splunk/license-eula.txt</code>).<br> | ||
Una volta terminata l'installazione dirigiamoci all'interfaccia web di Splunk: | Una volta terminata l'installazione dirigiamoci all'interfaccia web di Splunk: | ||
<pre> | <pre> | ||
Riga 124: | Riga 124: | ||
Tra le direttive più utili: | Tra le direttive più utili: | ||
* '''Criteri di rotazione''' | * '''Criteri di rotazione''' | ||
** < | ** <code>daily</code>: rotazione su base giornaliera; | ||
** < | ** <code>weekly</code>: rotazione su base settimanale; | ||
** < | ** <code>monthly</code>: rotazione su base mensile; | ||
** < | ** <code>size <dimensione></code>: rotazione in base alla dimensione; | ||
** < | ** <code>notifempty</code>: non esegue la rotazione se il file è vuoto; | ||
** < | ** <code>rotate nn</code>: conserva i file di log per <code>nn</code> rotazioni; | ||
* '''Compressione''' | * '''Compressione''' | ||
** < | ** <code>compress</code>: una volta archiviato il file di log, viene compresso tramite gzip; | ||
** < | ** <code>compresscmd</code>: indica il programma da utilizzare al posto di gzip; | ||
* '''Gestione File''' | * '''Gestione File''' | ||
** < | ** <code>create <mode> <owner> <group></code>: immediatamente dopo la rotazione viene creato un nuovo file con il nome identico al precedente. È possibile specificare, modalità di accesso, proprietario e gruppo; | ||
** < | ** <code>copy</code>: crea una copia del file di log e non modifica l'originale che non viene mai rimosso; | ||
** < | ** <code>copytruncate</code>: utilizzata nel caso in cui non sia possibile chiudere il file di log. Viene archiviata parte del file di log mentre ne viene eseguita una copia; | ||
** < | ** <code>olddir <directory></code>: i file di log vengono spostati nella directory indicata prima di eseguire la rotazione; | ||
* '''Configurazione''' | * '''Configurazione''' | ||
** < | ** <code>include <file o directory></code>: legge il file oppure tutti i file della directory indicata ed applica le direttive incontrate all'interno di essi. È possibile trovare include <code>/etc/logrotate.d</code> in quanto alcuni pacchetti installano le proprie istruzioni in questa directory; | ||
* '''Operazioni Pre-log e Post-log''' | * '''Operazioni Pre-log e Post-log''' | ||
** < | ** <code>postrotate endscript</code>: tramite questo blocco di direttive è possibile eseguire delle operazioni in seguito alla rotazione; | ||
** < | ** <code>prerotate endscript</code>: tramite questo blocco di direttive è possibile eseguire delle operazioni prima che avvenga la rotazione e solo se questa avrà luogo. | ||
A titolo di esempio possiamo osservare la directory del web server Apache2 su un sistema in cui logrotate è in funzione, < | A titolo di esempio possiamo osservare la directory del web server Apache2 su un sistema in cui logrotate è in funzione, <code>/var/log/apache2</code> | ||
<pre> | <pre> | ||
root@test:~# ls -1 /var/log/apache2/ | root@test:~# ls -1 /var/log/apache2/ | ||
Riga 161: | Riga 161: | ||
Si possono notare i file di log attualmente in uso (<code>'''access.log'''</code> e <code>'''error.log'''</code>), i file di log del giorno precedente (<code>'''access.log.1'''</code> e <code>'''error.log.1'''</code>) e i file dei giorni ancora precedenti, che di default vengono compressi e conservati per cinque settimane. | Si possono notare i file di log attualmente in uso (<code>'''access.log'''</code> e <code>'''error.log'''</code>), i file di log del giorno precedente (<code>'''access.log.1'''</code> e <code>'''error.log.1'''</code>) e i file dei giorni ancora precedenti, che di default vengono compressi e conservati per cinque settimane. | ||
Logrotate può essere schedulato utilizzando <code><cron></code>. La directory <code>'''/etc/cron.daily'''</code> contiene infatti gli script che vengono eseguiti automaticamente ogni giorno dal sistema. Qui si può trovare lo script di logrotate. Ogni giorno questo script, al momento dell'esecuzione, esamina due cose: | Logrotate può essere schedulato utilizzando <code><cron></code>. La directory <code>'''/etc/cron.daily'''</code> contiene infatti gli script che vengono eseguiti automaticamente ogni giorno dal sistema. Qui si può trovare lo script di logrotate. Ogni giorno questo script, al momento dell'esecuzione, esamina due cose: | ||
# il file di configurazione < | # il file di configurazione <code>/etc/logrotate.conf</code> | ||
# la directory di configurazione < | # la directory di configurazione <code>/etc/logrotate.d</code> | ||
Questa directory contiene i file di | Questa directory contiene i file di configurazione per i servizi installati sul server. Per esempio sul server esaminato in precedenza troveremo il file <code>/etc/logrotate.d/apache2</code>.<br/> | ||
Un tipico file di configurazione di logrotate è simile a questo: | Un tipico file di configurazione di logrotate è simile a questo: | ||
<pre> | <pre> | ||
Riga 183: | Riga 183: | ||
</pre> | </pre> | ||
Analizziamolo nel dettaglio: | Analizziamolo nel dettaglio: | ||
# < | # <code>/var/log/apache2/*.log</code>: indica i file che vengono interessati dal processo; | ||
# < | # <code>weekly</code>: i file sono rotati ogni settimana. Alternativa: <code>daily</code>; | ||
# < | # <code>rotate nn</code>: saranno conservati non più di <code>nn</code> file; | ||
# < | # <code>compress</code>: i file saranno compressi con gzip. Alternativa: <code>nocompress</code>; | ||
# < | # <code>delaycompress</code>: non comprime i log del giorno prima; | ||
# < | # <code>notifempty</code>: non esegue la rotazione se il file è vuoto. Alternativa: <code>ifempty</code>; | ||
# < | # <code>create xx user group</code>: imposta proprietario, gruppo e permessi per i nuovi filescreati; | ||
# < | # <code>sharedscripts</code>: esegue ogni script di prerotate o postrotate su ogni file. Alternativa: <code>nosharedscripts</code>; | ||
# < | # <code>postrotate + endscript</code>: ogni cosa tra queste due voci viene eseguita dopo il processo di rotazione. Alternativa: <code>prerotate</code>. | ||
Se avete necessità di conservare per più tempo i log ruotati potete aumentare il valore dell'opzione < | Se avete necessità di conservare per più tempo i log ruotati potete aumentare il valore dell'opzione <code>rotate</code>, oppure crearvi uno script che vi faccia il backup dei vecchi log in un'altra directory (in questo modo non rischiate che la directory <code>/var/log/</code> cresca troppo in dimensione). | ||
=Programmi utili= | =Programmi utili= | ||
Per gli amanti delle e-mail si segnala l'esistenza del pacchetto '''logwatch''', uno script in perl che ogni giorno raccoglie gli eventi dei log e li invia all'utente root del sistema (o all'utente specificato in < | Per gli amanti delle e-mail si segnala l'esistenza del pacchetto '''logwatch''', uno script in perl che ogni giorno raccoglie gli eventi dei log e li invia all'utente root del sistema (o all'utente specificato in <code>/etc/aliases</code>). | ||
<pre> | <pre> | ||
# apt-get install logwatch | # apt-get install logwatch | ||
</pre> | </pre> | ||
Se desiderate ricevere le email di logwatch anche su un indirizzo di posta elettronico esterno al sistema da monitorare, modificate il file < | Se desiderate ricevere le email di logwatch anche su un indirizzo di posta elettronico esterno al sistema da monitorare, modificate il file <code>/etc/aliases</code> come segue: | ||
<pre> | <pre> | ||
vostro_utente: vostro_utente indirizzo_esterno@pippo.com | vostro_utente: vostro_utente indirizzo_esterno@pippo.com | ||
Riga 218: | Riga 218: | ||
=Configurazione dei client della rete= | =Configurazione dei client della rete= | ||
==Client Linux== | ==Client Linux== | ||
Per forwardare i log di una macchina | Per forwardare i log di una macchina Linux verso un server Syslog possono essere usati sia syslog sia syslog-ng. | ||
===1 - Syslog=== | ===1 - Syslog=== | ||
Si apra il file <code>'''/etc/syslogd.conf'''</code>. La sintassi utilizzata in questo file è molto semplice: | Si apra il file <code>'''/etc/syslogd.conf'''</code>. La sintassi utilizzata in questo file è molto semplice: | ||
Riga 229: | Riga 229: | ||
kern.alert @10.2.5.8 # Gli alert del kernel sono forwardati a 10.2.5.8 | kern.alert @10.2.5.8 # Gli alert del kernel sono forwardati a 10.2.5.8 | ||
</pre> | </pre> | ||
Ricordarsi di riavviare il demone | Ricordarsi di riavviare il demone affinché prenda in considerazione le modifiche: | ||
<pre> | <pre> | ||
# etc/init.d/sysklogd restart | # etc/init.d/sysklogd restart | ||
Riga 276: | Riga 276: | ||
}; | }; | ||
filter filter1 { level(notice, alert, | filter filter1 { level(notice, alert, error) and facility(kern); }; | ||
destination d1 { tcp("10.15.61.1" port (54321)); }; | destination d1 { tcp("10.15.61.1" port (54321)); }; | ||
Riga 287: | Riga 287: | ||
}; | }; | ||
</pre> | </pre> | ||
Affinché tutto funzioni non dobbiamo dimenticarci di istruire il server syslog affinché si ponga in ascolto anche sulla porta TCP specificata. Modifichiamo perciò il file di configurazione del server, <code>'''/etc/syslog-ng/syslog-ng.conf'''</code>: | |||
<pre> | <pre> | ||
source s_all { | source s_all { |
contributi