我试图在Debian机器上configurationRSyslog,将所有东西都logging到PostgreSQL中,同时也照常在磁盘上logging日志。
我正在使用一个漂亮的股票Debianconfiguration,并阅读了http://www.rsyslog.com/doc/rsyslog_pgsql.html和http://www.rsyslog.com/doc/rsyslog_high_database_rate文档后激活了相关的configuration指令.html 。
它似乎工作,但消息写入磁盘或发送到PostgreSQL只有当我停止RSyslog,就像它缓冲一切,直到停止命令,并在closures之前写入所有内容。
虽然我可能不会丢失任何消息,但是这不是很方便,因为它引入了大量的延迟(我不知道它是否在closures之前甚至会丢弃任何东西?),有没有办法减less它,所以我可以一个正常的情况(服务器不忙),非常实时的日志?
这是我目前的configuration文件:
$ModLoad imuxsock $ModLoad imklog $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $WorkDirectory /var/spool/rsyslog $IncludeConfig /etc/rsyslog.d/*.conf auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice *.=debug;auth,authpriv.none;news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;auth,authpriv.none;cron,daemon.none;mail,news.none -/var/log/messages *.emerg :omusrmsg:* daemon.*;mail.*;news.err;*.=debug;*.=info;*.=notice;*.=warn |/dev/xconsole $ModLoad ompgsql *.* :ompgsql:localhost,syslog,syslog,syslog $ActionQueueType LinkedList # use asynchronous processing $ActionQueueFileName dbq # set file name, also enables disk mode $ActionResumeRetryCount -1 # infinite retries on insert failure
我也试着不使用http://www.rsyslog.com/doc/rsyslog_high_database_rate.html中的设置,这个设置可以做这种缓冲(尽pipe我希望它会在一段时间内刷新),但是我有或没有相同的行为。
在从那里应用configuration之前,您是否阅读过http://www.rsyslog.com/doc/rsyslog_high_database_rate.html ? 文章说,那里的configuration确实发生了什么情况:输出caching在内存和磁盘上,然后写入数据库。
如果您不希望输出缓冲,则应使用http://www.rsyslog.com/doc/rsyslog_pgsql.html中的configuration,而不应用其他内容。