web-dev-qa-db-ja.com

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は古すぎてテキストファイル入力機能がないのではないかと思いますが、グーグルで回った後は3.Xから同じことができます。

ここで何が間違っているのですか?

追加の質問:syslog-ngを試しましたが、設定ファイルは非常に優れており、この関数ではうまく機能します。しかし、グーグルの周りでは、rsyslogとして広く使用されていないようです。それらについての良い比較はありません(ほとんど時代遅れです)。 syslog-ngとrsyslogのどちらを提案しますか? (私はUbuntu/Debianを使用しています)

ありがとう!

1
HVNSweeting

問題を解決しました。

それは許可についてです。 /etc/rsyslog.confには次の行があります。

$PrivDropToUser syslog
$PrivDropToGroup syslog

初期化後にsyslogユーザーとグループに特権をドロップします。

/var/log/nginx/access.logには、www-dataadmグループのユーザーのみがアクセスできます。

$PrivDropToGroup syslog$PrivDropToGroup admに変更して機能させます。

$InputFilePollIntervalディレクティブのエラーを指摘してくれた@quantaに感謝します。

2
HVNSweeting

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"

this ドキュメントによると、

$InputFilePollInterval 10

の代わりに:

$InputFilePollingInterval 10
3
quanta