Configurazione di syslog-ng per fare logging da macchine remote
Questa e` una configurazione assolutamente minimale di syslog-ng per mettere in piedi rapidamente un log server centralizzato che raccolga i log di macchine remote dividendoli per macchina. I log vengono scritti in /var/log/remote e hanno come nome l'indirizzp IP della macchina remote. Questa configurazione si basa su UDP e quindi non garantisce il delivery dei log dalle macchine remote al server centrale ne` garantisce la sicurezza o la segretezza dei messaggi in transito. Va bene in rete locale, va bene come hack rapido se serve qualcosa che funzioni immediatamente, ed e` compatibile con qualsiasi sorgente di log che usi il protocollo standard sulla porte 514 udp.
- Installare syslog-ng al posto dello standard sysklogd (e` necessario solo sul log server)
- modificare la configurazione di syslog-ng inserendo le seguenti configurazioni:
# sorgente per i log remoti (i log remoti entrano con la source che ha questo nome) source s_remote { udp (); }; # desitnazione per le macchine remote, un file per host. # i log delle macchine remote finiscono qui destination df_remote { file("/var/log/remote/$HOST"); }; # La sorgente e la destinazione sopra definite vengono "connesse" assieme # da questa configurazione. "flags(final)" significa "non proseguire oltre ad analizzare altre regole" # i log delle macchine remote vanno in /var/log/remote/$HOST.log log { source(s_remote); destination(df_remote); flags(final); };
- Creare la directory /var/log/remote
Eventualmente modificare la configurazione in logrotate in modo da ciclare come meglio si vuole i log delle macchine remote in /var/log/remote. Editare il file /etc/logrotate.d/syslog-ng ed aggiungere PRIMA DELL'ULTIMA VOCE (perche` l'ultima voce fa riavviare syslog-ng, e il riavvio deve avvenire come ultimo passaggio) una configurazione tipo questa:
/var/log/remote/*.log { rotate 30 daily compress missingok notifempty }