Newsgroup: it.comp.os.linux.sys
Titolo: Syslog-ng & logrotate

Salve a tutti, ho un problemino con logrotate e syslog-ng.
Ho una serie di dispositivi che mi sparano dei log e vorrei ruotarli correttamente.
Solo che logrotate non funziona, vi posto un po' di dettagli:
[root@syslog DSLAM]# ls -lah
totale 17M
drwxrwxrwx  2 syslog syslog 4,0K 18 lug 17:32 .
drwxr-xr-x 15 root   root   4,0K 18 lug 04:02 ..
-rw-rw-rw-  1 syslog syslog  14K 18 lug 09:06 10.255.255.14.log
-rw-rw-rw-  1 syslog syslog  44K 18 lug 09:52 10.255.255.18.log
-rw-rw-rw-  1 syslog syslog  16M 18 lug 10:16 10.255.255.22.log
-rw-rw-rw-  1 syslog syslog 3,4K 13 lug 11:11 10.255.255.26.log
-rw-rw-rw-  1 syslog syslog  13K 18 lug 09:53 10.255.255.34.log
-rw-rw-rw-  1 syslog syslog  13K 15 lug 17:05 10.255.255.38.log
-rw-rw-rw-  1 syslog syslog  26K 18 lug 10:15 10.255.255.46.log
-rw-rw-rw-  1 syslog syslog 259K 12 lug 12:29 10.255.255.6.log
-rw-------  1 syslog syslog 1,1K 13 lug 17:44 .bash_history
-rwxrwxrwx  1 syslog syslog 1,1K  6 lug 00:17 .viminfo
[root@syslog DSLAM]# cat /etc/logrotate.d/syslog-ng
/var/log/DSLAM/10.255.255.22.log
{
daily
missingok
rotate 3
compress
postrotate
/etc/init.d/syslog-ng restart >/dev/null
endscript
}
Se lancio logrotate da riga di comando ottengo:
[root@syslog DSLAM]# logrotate -fd -v /etc/logrotate.d/syslog-ng
reading config file /etc/logrotate.d/syslog-ng
reading config info for /var/log/DSLAM/10.255.255.22.log
Handling 1 logs
rotating pattern: /var/log/DSLAM/10.255.255.22.log
 forced from command line (3 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/DSLAM/10.255.255.22.log
  log needs rotating
rotating log /var/log/DSLAM/10.255.255.22.log, log->rotateCount is 3
renaming /var/log/DSLAM/10.255.255.22.log.3.gz to /var/log/DSLAM/10.255.255.22.log.4.gz (rotatecount 3, logstart 1, i 3),
renaming /var/log/DSLAM/10.255.255.22.log.2.gz to /var/log/DSLAM/10.255.255.22.log.3.gz (rotatecount 3, logstart 1, i 2),
renaming /var/log/DSLAM/10.255.255.22.log.1.gz to /var/log/DSLAM/10.255.255.22.log.2.gz (rotatecount 3, logstart 1, i 1),
renaming /var/log/DSLAM/10.255.255.22.log.0.gz to /var/log/DSLAM/10.255.255.22.log.1.gz (rotatecount 3, logstart 1, i 0),
renaming /var/log/DSLAM/10.255.255.22.log to /var/log/DSLAM/10.255.255.22.log.1
running postrotate script
running script with arg /var/log/DSLAM/10.255.255.22.log
: "
/etc/init.d/syslog-ng restart >/dev/null
"
compressing log with: /bin/gzip
removing old log /var/log/DSLAM/10.255.255.22.log.4.gz
Sembra quindi che tutto sia ok, ma non ruota i log :-(
Dove sto sbagliando?

 Sembra quindi che tutto sia ok, ma non ruota i log :-(
Se usi Syslog-NG puoi far ruotare direttamente i log a lui e, se non 
sbaglio, era anche possibile comprimerli (ma su questo non ci giurerei)
Enrico

 sbaglio, era anche possibile comprimerli (ma su questo non ci giurerei)
Come si fa?Non sono riuscito a capirlo...
-- 
"Never underestimate the bandwidth of a station wagon full of tapes
hurtling down the highway" - Andrew S. Tanenbaum
http://blog.mainardi.me
python -c "print 'bG9ybWF5bmFAZ21haWwuY29t'.decode('base64')"

 Come si fa?Non sono riuscito a capirlo...
Imposti una destination tipo questa (presa dal primo risultato riportato da google):
destination logip {
    file("/archive/logs/HOSTS/$HOST_FROM/$FACILITY/$YEAR$MONTH/$FACILITY$YEAR$MONTH$DAY"
         owner(syslog-ng)
         group(syslog-ng)
         perm(0600)
         dir_perm(0700)
         create_dirs(yes)
         template("$DATE $FULLHOST $PROGRAM $TAG [$FACILITY.$LEVEL] $MESSAGE\n") );
};
Del template non dovrebbe fregartene nulla, personalmente l'ho lasciato
soltanto per completezza dell'esempio. Per quanto riguarda la compressione
dei log, sempre dall'esempio che ho trovato su google, viene consigliato
un cronjob piuttosto che farlo direttamente da Syslog-NG
Enrico
P.S. personalmente uso una destination simile, e funziona da dio :)
P.P.S. per completezza, anche rsyslog permette una rotazione dei log

 };
Perfetto, funziona alla grande.
Certo che syslog-ng è veramente mitico


 Certo che syslog-ng è veramente mitico
<OT>
carino quello slogan rubato ai kiss:
"I WAS MADE FOR LOGGIN' YOU BABY"
Nicola.
-- 
chi va pian va san e va lontan

 Certo che syslog-ng è veramente mitico
Carino... Diciamo che fa decentemente bene il suo lavoro[1] :)
Enrico
[1] Personalmente trovo Syslog-NG carente sulla gestione dei bug (qualche 
tempo fa' ce n'era uno bruttino) e sulla gestione delle funzionalita` (la 
scrittura dei log su database e` possibile solo sulla versione a pagamento). 
Di certo ha una sintassi di configurazione migliore di rsyslog

 scrittura dei log su database e` possibile solo sulla versione a pagamento).
Naaa!! Non sò a che versione di syslog-ng ti riferisci ed eventualmente se hanno 
implementato una funzione specifica ma io la scrittura dei log in un db la 
faccio da anni con mysql in pipe con syslog-ng.
Rizio
--- Posted via news://
freenews.netfront.net/
 - Complaints to 
ne...@netfront.net
 ---

 db la faccio da anni con mysql in pipe con syslog-ng.
Appunto, in pipe. La versione commerciale prevede la scrittura diretta su 
database (PostgreSQL e MySQL) direttamente via driver apposito, cosi` come 
la prevede rsyslog
Enrico

 la prevede rsyslog
Non lo sapevo, grazie.
