Rsyslog non funziona correttamente, non registra nulla

Sto eseguendo un server Debian e un paio di giorni fa il mio rsyslog ha cominciato a comportrsi molto strano, il demone è in esecuzione, ma non sembra fare nulla. Molte persone utilizzano il sistema, ma sono l'unico con accesso legale (legale).

Sto utilizzando la configuration predefinita di rsyslogd (se pensi che sia appropriato, lo allegro, ma è quello che viene fornito con il pacchetto).

  • Come mantenere l'host sorgente di log utilizzando logstash
  • php-fpm: Mantieni il formato di logging di php_mod
  • Rsyslogd non ascolta la port
  • Come posso configurare rsyslog per affrontare i messaggi multilinea di MySQL Slow Query Log?
  • Rsyslog.conf disabilita mail.info e / o disabilita la segnalazione postfix
  • Errori che utilizzano la nuova syntax del template rsyslog su RHEL6
  • Dopo aver ruotato tutti i file di registro, sono rimasti vuoti:

    # ls -l /var/log/*.log -rw-r--r-- 1 root root 0 Jun 27 00:25 /var/log/alternatives.log -rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/auth.log -rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/daemon.log -rw-r--r-- 1 root root 0 Jun 27 00:25 /var/log/dpkg.log -rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/kern.log -rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/lpr.log -rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/mail.log -rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/user.log 

    Qualsiasi tentativo di forzare una scrittura di registro non ha alcun effetto:

     # logger hey # ls -l /var/log/messages -rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/messages 

    Lsof mostra che rsyslogd non dispone di file di registro aperti:

     # lsof -p 1855 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 1855 root cwd DIR 202,0 4096 2 / rsyslogd 1855 root rtd DIR 202,0 4096 2 / rsyslogd 1855 root txt REG 202,0 342076 21649 /usr/sbin/rsyslogd rsyslogd 1855 root mem REG 202,0 38556 32153 /lib/i386-linux-gnu/i686/cmov/libnss_nis-2.13.so rsyslogd 1855 root mem REG 202,0 79728 32165 /lib/i386-linux-gnu/i686/cmov/libnsl-2.13.so rsyslogd 1855 root mem REG 202,0 26456 32163 /lib/i386-linux-gnu/i686/cmov/libnss_compat-2.13.so rsyslogd 1855 root mem REG 202,0 297500 1061058 /usr/lib/rsyslog/imuxsock.so rsyslogd 1855 root mem REG 202,0 42628 32170 /lib/i386-linux-gnu/i686/cmov/libnss_files-2.13.so rsyslogd 1855 root mem REG 202,0 22784 1061106 /usr/lib/rsyslog/imklog.so rsyslogd 1855 root mem REG 202,0 1401000 32169 /lib/i386-linux-gnu/i686/cmov/libc-2.13.so rsyslogd 1855 root mem REG 202,0 30684 32175 /lib/i386-linux-gnu/i686/cmov/librt-2.13.so rsyslogd 1855 root mem REG 202,0 9844 32157 /lib/i386-linux-gnu/i686/cmov/libdl-2.13.so rsyslogd 1855 root mem REG 202,0 117009 32154 /lib/i386-linux-gnu/i686/cmov/libpthread-2.13.so rsyslogd 1855 root mem REG 202,0 79980 17746 /usr/lib/libz.so.1.2.3.4 rsyslogd 1855 root mem REG 202,0 18836 1061094 /usr/lib/rsyslog/lmnet.so rsyslogd 1855 root mem REG 202,0 117960 31845 /lib/i386-linux-gnu/ld-2.13.so rsyslogd 1855 root 0u unix 0xebe8e800 0t0 640 /dev/log rsyslogd 1855 root 3u FIFO 0,5 0t0 2474 /dev/xconsole rsyslogd 1855 root 4u unix 0xebe8e400 0t0 645 /var/spool/postfix/dev/log rsyslogd 1855 root 5r REG 0,3 0 4026532176 /proc/kmsg 

    Sono stato così frustrato che anche reinstallare il pacchetto rsyslog, ma si rifiuta ancora di registrare qualsiasi cosa:

     # apt-get remove --purge rsyslog # apt-get install rsyslog 

    Ho pensato che qualcuno avesse sbattuto il sistema, quindi eseguire rkhunter, chkrootkit, hide nel tentativo di trovare hide processi / porte e nmap in un host remoto per confrontarsi con le porte mostrate da netstat. E so che questo non significa niente, ma tutto sembra ok. Il sistema dispone inoltre di un firewall iptables che è molto restrittivo con le connessioni in entrata / in output.

    Questo mi sta facendo pazzo, c'è idea che cosa succede qui?

    [EDIT – spazio sul disco space]

     # df -h Filesystem Size Used Avail Use% Mounted on rootfs 24G 22G 629M 98% / /dev/root 24G 22G 629M 98% / devtmpfs 10M 112K 9.9M 2% /dev tmpfs 76M 48K 76M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 151M 40K 151M 1% /tmp tmpfs 151M 0 151M 0% /run/shm 

    [EDIT – strace info]

    Strace mi sembra ok

     [pid 28824] access("/var/log/auth.log", F_OK) = 0 [pid 28824] access("/var/log/syslog", F_OK) = 0 [pid 28824] access("/var/log/daemon.log", F_OK) = 0 [pid 28824] access("/var/log/kern.log", F_OK) = 0 [pid 28824] access("/var/log/lpr.log", F_OK) = 0 [pid 28824] access("/var/log/mail.log", F_OK) = 0 [pid 28824] access("/var/log/user.log", F_OK) = 0 [pid 28824] access("/var/log/mail.info", F_OK) = 0 [pid 28824] access("/var/log/mail.warn", F_OK) = 0 [pid 28824] access("/var/log/mail.err", F_OK) = 0 [pid 28824] access("/var/log/news/news.crit", F_OK) = 0 [pid 28824] access("/var/log/news/news.err", F_OK) = 0 [pid 28824] access("/var/log/news/news.notice", F_OK) = 0 [pid 28824] access("/var/log/debug", F_OK) = 0 [pid 28824] access("/var/log/messages", F_OK) = 0 

    Il log completo di strace può essere scaricato da qui

    2 Solutions collect form web for “Rsyslog non funziona correttamente, non registra nulla”

    Probabilmente è un problema di properties; dei file. rsyslog inizia a eseguire come root, ma scade i privilegi e viene eseguito come syslog dell'utente (direttiva di configuration $ PrivDropToUser ).

    i file syslog (auth.log, daemon.log, ecc.) sono di properties; di syslog: adm ma se si modifica la properties; in root (come sembra dall'elenco dei file) allora non import se hai HUP (ie, ricarica) rsyslog o riavviarlo, che sarà negato di aprire tali file a causa della mancanza di privilegi.

    Se la modifica della properties; è avvenuta dopo la rotazione del registro, controllare l'opzione di create della configuration logrotate. O configurarlo come create 0644 syslog adm in /etc/logrotate.d/rsyslog o ancora meglio, definirlo globalmente a /etc/logrotate.conf senza utilizzare la modalità, il proprietario e il gruppo, semplicemente come questa create (che è la configuration predefinita da il modo), nel qual caso verranno utilizzati gli stessi valori del file. Consultare l' man logrotate per i dettagli completi.

    Alcune versioni di rsyslog includono una direttiva $ omfileForceChown come soluzione per la modifica esterna della properties; del file, ma non è consigliata. Il modo consigliato è configurare correttamente la properties; e le autorizzazioni. Ulteriori informazioni su questo problema possono essere trovate dopo questo collegamento.

    Ho avuto questo problema perché il mio / var / log era residente su un ramdisk per ridurre l'usura del mio SSD e volevo spostarlo su un disco rigido, quindi ho avuto più storia che solo l'avvio corrente.

    La cosa divertente era, dato che era un ramdisco, non avevo uno da copiare in modalità singolo utente, quindi non sapevo cosa wherevano essere le autorizzazioni e la properties;! Duh.

    Breve storia, con la tua nuova posizione:

     chmod 770 /var/log chgrp syslog /var/log initctl restart rsyslog 

    Rsyslog ora potrà scrivere a / var / log poiché viene eseguito come utente 'syslog', gruppo 'syslog'.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.