rsyslogd 不监控配置文件中的所有文件

rsyslogd 不监控配置文件中的所有文件

我没有看到 rsyslog 拾取我试图监控的所有文件。我使用的是 Ubuntu 12.04 LTS 的标准配置,但将以下内容添加到 /etc/rsyslog.d/30-logentries.conf。

我只看到来自 /var/log/myapp.log 的消息和 /etc/rsyslog.d/50-default.conf 中监控的几个系统日志文件被推送到 LogEntries,而不是我尝试监控的其他文件。

我已经验证了以下内容:

  • 我的其他日志文件可供所有人读取
  • 我的其他日志文件正在写入
  • LogEntries 正在从服务器接收日志消息
  • /var/log/syslog 可以看到 LogEntries 看到的内容,因此日志消息不会因日志条目而丢失
  • 重新启动 rsyslog 无法解决问题

对我做错的事情有什么想法吗?

$ModLoad imfile   # Load the imfile input module
$ModLoad imklog   # for reading kernel log messages
$ModLoad imuxsock # for reading local syslog messages

$InputFileName /var/log/myapp.log
$InputFileTag myapp:
$InputFileStateFile myapp
$InputRunFileMonitor

$InputFileName /var/log/nginx/myapp.log
$InputFileTag nginx-myapp:
$InputFileStateFile nginx-myapp
$InputRunFileMonitor

$InputFileName /var/log/nginx/access.log
$InputFileTag nginx-access:
$InputFileStateFile nginx-access
$InputRunFileMonitor

$InputFileName /var/log/nginx/error.log
$InputFileTag nginx-error:
$InputFileStateFile nginx-error
$InputRunFileMonitor

$InputFileName /var/log/nginx/redir-to-http-myapp.log
$InputFileTag nginx-redir-to-http-myapp:
$InputFileStateFile nginx-redir-to-http-myapp
$InputRunFileMonitor

$InputFileName /var/log/nginx/redir-to-www-myapp.log
$InputFileTag nginx-redir-to-www-myapp:
$InputFileStateFile nginx-redir-to-www-myapp
$InputRunFileMonitor

$InputFilePollInterval 1

$DefaultNetstreamDriverCAFile /etc/syslog.logentries.crt
$ActionSendStreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer *.logentries.com

$template LogentriesFormat,"guidguid-guid-guid-guid-guidguidguid production %HOSTNAME% %syslogtag%%msg%\n"
*.* @@api.logentries.com:20000;LogentriesFormat

答案1

独角兽正在将评论转换为 CW……

要让 rsyslog 处理文件,其文件必须可由 rsyslog 读取。尽管 nginx 日志文件是全球可读的,但 nginx 日志目录 ( /var/log/nginx/) 却不是。授予 rsyslog 对该目录的访问权限可以解决此问题。

相关内容