私が使用しているもの:
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を使用しています)
ありがとう!
問題を解決しました。
それは許可についてです。 /etc/rsyslog.conf
には次の行があります。
$PrivDropToUser syslog
$PrivDropToGroup syslog
初期化後にsyslogユーザーとグループに特権をドロップします。
/var/log/nginx/access.log
には、www-data
とadm
グループのユーザーのみがアクセスできます。
$PrivDropToGroup syslog
を$PrivDropToGroup adm
に変更して機能させます。
$InputFilePollInterval
ディレクティブのエラーを指摘してくれた@quantaに感謝します。
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