rsyslog Erro do módulo de entrada de arquivo de texto

1

Estou usando:

root@u1210: /etc () # lsb_release -d
Description:    Ubuntu 12.10
root@u1210: /etc () # dpkg -l | grep rsyslog
ii  rsyslog                                   5.8.6-1ubuntu9                                    amd64        reliable system and kernel logging daemon

Hoje, tentei ler o log do arquivo de log nginx, mas recebi este erro:

Mar 11 17:34:18 u1210 kernel: imklog 5.8.6, log source = /proc/kmsg started.
Mar 11 17:34:18 u1210 rsyslogd: [origin software="rsyslogd" swVersion="5.8.6" x-pid="9742" x-info="http://www.rsyslog.com"] start
Mar 11 17:34:18 u1210 rsyslogd: rsyslogd's groupid changed to 103
Mar 11 17:34:18 u1210 rsyslogd: rsyslogd's userid changed to 101
Mar 11 17:34:18 u1210 rsyslogd-3003: invalid or yet-unknown config file command - have you forgotten to load a module? [try http://www.rsyslog.com/e/3003 ]
Mar 11 17:34:18 u1210 rsyslogd: the last error occured in /etc/rsyslog.conf, line 68:"$InputFilePollingInterval 10"
Mar 11 17:34:18 u1210 rsyslogd-2124: CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'. [try http://www.rsyslog.com/e/2124 ]

verifique a versão de configuração que o rsyslog usa:

root@u1210: /etc () # ps -ef | grep rsyslog
syslog   18934     1  0 17:42 ?        00:00:00 rsyslogd -c5

Acabei de usar a configuração padrão, além das linhas abaixo:

$ModLoad imfile

$InputFileName /var/log/nginx/access.log
$InputFileTag nginx:
$InputFileStateFile nginxxxx
$InputFileSeverity error
$InputFileFacility local7
$InputRunFileMonitor
$InputFilePollingInterval 10

aqui está o arquivo de configuração: link

O arquivo de log nginx existe:

root@u1210: ~ () # ls -l /var/log/nginx/access.log
-rw-r----- 1 www-data adm 730040 Mar 11 17:49 /var/log/nginx/access.log

Eu vejo que o rsyslog é padrão no ubuntu, debian, fedora e muitas outras distros. Primeiro, eu acho que este 5.8.6 é muito antigo, então ele não fornece função de entrada de arquivo de texto, mas depois do google, a mesma coisa pode ser feita a partir de 3.X.

O que estou fazendo de errado aqui?

pergunta de adição: Eu tentei syslog-ng, o arquivo de configuração é muito bom, funciona bem nesta função. Mas google ao redor, parece não é usado amplamente como rsyslog. Não há boa comparação sobre eles (quase estão fora de moda). Qual você sugere, syslog-ng ou rsyslog? (Eu uso Ubuntu / Debian)

Obrigado!

    
por HVNSweeting 11.03.2013 / 11:56

2 respostas

2

problema resolvido.

É sobre permissão. /etc/rsyslog.conf tem estas linhas:

$PrivDropToUser syslog
$PrivDropToGroup syslog

elimina privilégios ao usuário e ao grupo do syslog após a inicialização.

/var/log/nginx/access.log só pode ser acessado por www-data e usuários em adm group.

Altere $PrivDropToGroup syslog para $PrivDropToGroup adm para que funcione.

obrigado @quanta por apontar o erro na diretiva $InputFilePollInterval .

    
por 12.03.2013 / 08:53
3

rsyslogd-3003: invalid or yet-unknown config file command - have you forgotten to load a module? [try http://www.rsyslog.com/e/3003 ]

rsyslogd: the last error occured in /etc/rsyslog.conf, line 68:"$InputFilePollingInterval 10"

De acordo com este documento, ele deve ser

$InputFilePollInterval 10

em vez de:

$InputFilePollingInterval 10
    
por 12.03.2013 / 06:30