Ошибка модуля ввода текстового файла rsyslog

Я использую:

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

Сегодня я попытался прочитать журнал из файла журнала nginx, но получил эту ошибку:

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 ]

проверьте версию конфигурации, которую использует rsyslog:

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

Я только что использовал конфигурацию по умолчанию, добавление ниже строк:

$ModLoad imfile

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

вот файл конфигурации: http://pastebin.com/8RnHXaDd

Файл журнала nginx существует:

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

Я вижу, что rsyslog используется по умолчанию в Ubuntu, Debian, Fedora и многих других дистрибутивах. Во-первых, я думаю, что этот 5.8.6 слишком старый, поэтому он не обеспечивает функцию ввода текстового файла, но после Google, то же самое можно сделать из 3.X.

Что я тут не так делаю?

Дополнительный вопрос: я попробовал syslog-ng, файл конфигурации очень хороший, он хорошо работает с этой функцией. Но Google вокруг, кажется, не используется широко, как rsyslog. Там нет хорошего сравнения о них (почти устарели). Что вы предлагаете, syslog-ng или rsyslog? (Я использую Ubuntu/Debian)

Спасибо!

2 ответа

Решение

Решенная проблема.

Речь идет о разрешении./etc/rsyslog.conf имеет эти строки:

$PrivDropToUser syslog
$PrivDropToGroup syslog

он сбрасывает привилегии для пользователя и группы системного журнала после инициализации.

/var/log/nginx/access.log только могут быть доступны www-data и пользователи в adm группа.

+ Изменить $PrivDropToGroup syslog в $PrivDropToGroup adm сделать это работает.

спасибо @quanta за указание на ошибку в $InputFilePollInterval директивы.

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"

Согласно этому документу, это должно быть

$InputFilePollInterval 10

вместо:

$InputFilePollingInterval 10
Другие вопросы по тегам