Newsgroup: it.comp.os.linux.sys
Titolo: logrotate perde colpi

Ciao a tutti,
Nel mio webserver ho un centinaio di siti, tutti gestiti con la seguente
configurazione di logrotate:
/home/sito/logs/access_log /home/sito/logs/error_log {
        rotate 5
        weekly
        compress
        postrotate
        /usr/sbin/apache2ctl graceful
        endscript
}
Il problema è che ho dei buchi e delle sovrapposizioni nei log. Esempio:
-rw-r----- 1 root   adm   112963 2009-03-01 04:17 error_log.5.gz
log da 22/2 h.6:30 a 1/3 h.4:17 <-- OK
-rw-r----- 1 root   adm    62189 2009-03-08 06:00 error_log.4.gz
log da 5/3 h.6:30 a 8/3 h.6:00 <-- BUCO DI 4 GIORNI !!!
-rw-r----- 1 root   adm     4440 2009-03-12 06:09 error_log.3.gz
log da 8/3 h.6:00 a 12/3 h.6:09 <-- OK
-rw-r----- 1 root   adm    64245 2009-03-15 06:00 error_log.2.gz
log da 12/3 h.6:30 a 15/3 h.6:00 <-- OK
-rw-r----- 1 root   adm    96443 2009-03-12 06:00 error_log.1.gz
log da 8/3 h.7:30 a 12/3 h.6:00 <-- SOVRAPPOSIZIONE CON error_log.3.gz 
-rw-r----- 1 root   adm    12187 2009-03-16 11:39 error_log.0
log da 15/3 h.6:30 a 16/3 h.10:52
-rw-r----- 1 root   adm   243739 2009-03-16 11:53 error_log
log da 15/3 h.7:30 a oggi
Domande:
1) Perchè buchi e sovrapposizioni?
2) Perchè solo per questo sito l'utente è root:adm invece che root:root?
3) Perchè per questo sito i permessi sono 0640, mentre per gli altri sono
0640?
La risposta probabilemnte la so: c'è un qualche altro sw che si frappone con
il logrotate, ma non ho idea di quale, e neanche di come stanarlo!! Idee?
-- 
g4b0, linux user n. 369000
http://gabo.homelinux.com

 }
Perche' vi ostinante a usare il logrotate con apache, quando esiste
il rotatelogs che e' fatto appositamente per evitare bruttezze di
questo tipo?

Antani wrote:

Me lo studio subito, però il problema persiste. Sto verificado il mail
server e c'è qualche stranezza pure la.. (sono macchine diverse, entrambe
debian etch).
A meno che non esista un'alternativa a logrotate anche per postfix :)


 A meno che non esista un'alternativa a logrotate anche per postfix :)
Psssttt... non dirlo a nessuno ma e' la Debian.... su una Slack sarebbe 
andato tutto di sicuro !! Parola di Slackwarista "forzatamente" 
convertito :(
Rizio
-- 
Si dice che essere liberi significa non avere nulla da perdere...sembra 
facile a prima vista...ma la verità è che non avere nulla da perdere 
significa essere pronti a rischiare tutto ciò che si possiede.

 convertito :(
No comment a proposito. Sono nella tua identica situazione forzata. Devo
dire che della debian apprezzo molto la semplicità di gestione, ma questi
problemi mi fanno rimpiangere la buona vecchia Slack, dove sei sicuro che
se qualcosa non funziona è _sicuramente_ colpa tua :)
Tornano IT, pensi che sia una cosa risolvibile?


Altro problema, questa volta a proposito del mailserver:
Con il crontab seguente mi faccio spedire un log giornaliero delle mail,
riferito al giorno precedente:
10 0 * * * /bin/gzip -d --stdout /var/log/oldmaillog/mail.log.1.gz |
/usr/local/bin/pflogsumm -d yesterday 2>&1 | /usr/bin/mailx 
-s "`uname -n` daily mail stats" 
us...@email.net
Tutto funziona alla grande, ma le mail spedite alle 00:10 della domenica,
relative quindi all'attività di sabato, sono vuote:
Grand Totals
------------
messages
      0   received
      0   delivered
      0   forwarded
[..snip..]
In effetti, spulciando tra i log, quelli generati di domenica sono vuoti
(come si evince dalla dimensione):
dns1:/var/log/oldmaillog# ls -lth
totale 381M
-rw-r----- 1 root adm  631K 2009-03-16 00:00 mail.log.1.gz
-rw-r----- 1 root adm    20 2009-03-15 00:00 mail.log.2.gz
-rw-r----- 1 root adm  715K 2009-03-15 00:00 mail.log.3.gz
-rw-r----- 1 root adm  1,4M 2009-03-13 23:59 mail.log.4.gz
-rw-r----- 1 root adm  1,3M 2009-03-12 23:59 mail.log.5.gz
-rw-r----- 1 root adm  1,3M 2009-03-12 00:00 mail.log.6.gz
-rw-r----- 1 root adm  1,5M 2009-03-11 00:00 mail.log.7.gz
-rw-r----- 1 root adm  1,3M 2009-03-10 00:00 mail.log.8.gz
-rw-r----- 1 root adm  604K 2009-03-08 23:59 mail.log.9.gz
-rw-r----- 1 root adm    20 2009-03-08 00:00 mail.log.10.gz
-rw-r----- 1 root adm  536K 2009-03-07 23:58 mail.log.11.gz
-rw-r----- 1 root adm  1,2M 2009-03-06 23:59 mail.log.12.gz
-rw-r----- 1 root adm  1,4M 2009-03-05 23:59 mail.log.13.gz
-rw-r----- 1 root adm  1,2M 2009-03-04 23:59 mail.log.14.gz
-rw-r----- 1 root adm  1,3M 2009-03-03 23:59 mail.log.15.gz
-rw-r----- 1 root adm  1,5M 2009-03-02 23:58 mail.log.16.gz
-rw-r----- 1 root adm  559K 2009-03-01 23:59 mail.log.17.gz
-rw-r----- 1 root adm    20 2009-03-01 00:00 mail.log.18.gz
I log vengono generati seguendo questo conf:
/var/log/mail.log {
        daily
        rotate 2000
        compress
        olddir /var/log/oldmaillog
}
Anche qua probabilmente c'è qualcosa che si sovrappone la domenica (o il
sabato), ma non ho idea di dove andarlo a cercare...
Qualcuno ha mai avuto problemi simili?


 Tornano IT, pensi che sia una cosa risolvibile?
Imho il consiglio corretto e' quello di antani, con rotatelog dovresti 
risolvere tutto.
Per il report via mail non so come aiutarti perche' sebbene anch'io usi 
lo stesso sistema lo faccio con 2 comandi separati e ad orari separati 
percio' non ho quel problema. Potresti anche provare a separare le 2 
cose almeno per isolare il problema.
Ciao


 convertito
Di certo quella non è la configurazione di default per debian...
Ciò che ho su tutte le macchine debian con un apache2 sotto 
logrotate.d è differente.

 logrotate.d è differente.
Mantenendomi OT ti posso solo dire che e' uno sforzo notevole (per lo 
meno per me) ragionare nella debian-way se provieni da decine di anni di 
slackware.... il Volkerding-Style ti segue sempre nel suo BSD mode e ti 
viene da trattare la debian come una slack (sbagliando !).
Po fiorse non e' questo il caso perche' magari qui l'op ci ha solo messo 
del suo pero' il mio voleva essere un discorso generale (anzi, uno sfogo 
:) )


 logrotate.d č differente.
Certo. Perň il fatto che non sia una configurazione di default non dovrebbe
inficiare sul corretto funzionamento di un software come logrotate.
Ora ho provato a mettere il logrotate in daily, in modo da avere un'analisi
piů granulare per individuare il possibile errore.


 cose almeno per isolare il problema.
Non credo il problema sia nei 2 comandi insieme, il problema è che il log di
sabato (generato domenica alle 00:10) è vuoto!! Tutti i sabati!
Grazie per l'interessamento


 viene da trattare la debian come una slack (sbagliando !).
Parole sante :) Dove posso trovare qualcosa da leggere in modo da entrare un
po' nella debian-way? 


 tipo?
Io personalmente uso cronolog direttamente dai virtualhost, e divido i log 
di accesso in giornalieri e quelli di errore in mensili. Non serve piu` 
fare il rotate la notte, si arrangia lui a creare un nuovo log all'ora 
giusta.
Bye.

 
perché viene generato un log pieno pochi secondi prima, il sabato verso le 
23.59.
non è che hai script per logrotate sia in /etc/logrotate.d/ che in 
/etc/cron.daily o /etc/cron.weekly riferibili agli stessi log?

 po' nella debian-way? 
La maggiore fonte di informazioni (felicemente tradotte) che ho trovato 
e' questa:
http://guide.debianizzati.org/index.php/Pagina_principale
Poi effettivamente per Debian c'e' di tutto ovunque.


gt wrote:

Mmmmm, ho verificato ed ho trovato questo: 
*************************** WEEKLY ****************************
dns1:/etc/cron.weekly# more sysklogd
#! /bin/sh
[.. snip ..]
set -e
cd /var/log
for LOG in `syslogd-listfiles --weekly -s mail`
do
   if [ -s $LOG ]; then
      savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
   fi
done
/etc/init.d/sysklogd reload-or-restart > /dev/null
**************************** DAILY *****************************
dns1:/etc/cron.daily# more sysklogd
#! /bin/sh
[.. snip ..]
set -e
cd /var/log
for LOG in `syslogd-listfiles -s mail`
do
   if [ -s $LOG ]; then
      savelog -g adm -m 640 -u root -c 7 $LOG >/dev/null
   fi
done
for LOG in `syslogd-listfiles --auth`
do
   if [ -f $LOG ]; then
      chown root:adm $LOG
      chmod o-rwx $LOG
   fi
done
/etc/init.d/sysklogd reload-or-restart > /dev/null
**********************************************************************
La cosa strana è che sia per il daily che per il weekly vengono esclusi i
file di log di postfix con '-s mail', quindi devo dedurre che vengono
rotati in qualche altro modo..
Probabilmente mi sfugge qualcosa, ma non riesco proprio a capire cosa!


 
http://guide.debianizzati.org/index.php/Pagina_principale
Me lo leggo! Anche se speravo in un documento tipo: "pensare come un
debianizzato in 10 semplici passi" :)


g4b0 wrote:

dunque, leggo che l'argomento dello switch -s deve essere un'espressione 
regolare. in questo caso mail non cattura i vari mail.xxx, dovrebbe essere:
for LOG in `syslogd-listfiles -s mail.*`
prova così oppure sposta da /etc/cron.daily e /etc/cron.weekly quello script

 script
Invece li cattura..
dns1:/etc/logrotate.d# syslogd-listfiles -s mail
/var/log/daemon.log
/var/log/syslog
/var/log/auth.log
dns1:/etc/logrotate.d# syslogd-listfiles
/var/log/daemon.log
/var/log/syslog
/var/log/mail.log
/var/log/auth.log
/var/log/
mail.info
dns1:/etc/logrotate.d# syslogd-listfiles -w -s mail
/var/log/uucp.log
/var/log/user.log
/var/log/daemon.log
/var/log/messages
/var/log/debug
/var/log/auth.log
/var/log/kern.log
/var/log/lpr.log
Quindi mail.* non vengono processati da savelog. Ma chi li rota?!?


 Quindi mail.* non vengono processati da savelog. Ma chi li rota?!?
sembrava troppo facile.
prova ad attivare il log di cron in /etc/syslog.conf e vedi se rimane 
traccia di qualcosa.

 convertito :(
<flame>
Con Slackware staresti ancora compilando/cercando la dipendenza del 
pacchetto da installare :P
</flame>
-- 
Vide

 </flame>
A volte ci si mette meno a farlo che a dirlo ;)


 traccia di qualcosa.
L'ho attivato. Stiamo a vedere, anche se mi sa che dovremo aspettare la
settimana prossima per capire cosa succede la domenica notte...


 settimana prossima per capire cosa succede la domenica notte...
Ho scoperto chi rota i log delle mail, è logrotate che viene chiamato
nel
cron.daily con il seguente script:
# more logrotate
#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
Quello che non capisco è perchè i log generati la domenica alle 00:00
siano
sempre vuoti!!!
Ora che guardo meglio, però, ho trovato questa riga con crontab -l:
@daily /usr/sbin/logrotate /etc/logrotate.conf
Secondo voi il logrotate viene chiamato 2 volte ogni giorno? Se si,
allora
perchè solo la domenica incasina tutto? Guardando il log del crontab
sembrerebbe tutto a posto:
# more cron.log.0 | grep logrotate
Mar 18 00:00:01 dns1 /USR/SBIN/CRON[26360]: (root) CMD
(/usr/sbin/logrotate /etc/logrotate.conf)
Mar 19 00:00:02 dns1 /USR/SBIN/CRON[32481]: (root) CMD
(/usr/sbin/logrotate /etc/logrotate.conf)
Mar 20 00:00:01 dns1 /USR/SBIN/CRON[6643]: (root) CMD
(/usr/sbin/logrotate /etc/logrotate.conf)
Mar 21 00:00:01 dns1 /USR/SBIN/CRON[11009]: (root) CMD
(/usr/sbin/logrotate /etc/logrotate.conf)
Mar 22 00:00:01 dns1 /USR/SBIN/CRON[24340]: (root) CMD
(/usr/sbin/logrotate /etc/logrotate.conf)
Sto impazzendo...
