我正在尝试在 Debian 机器上配置 RSyslog 以将所有内容都记录到 PostgreSQL,同时还像往常一样在磁盘上记录。
我正在使用一个非常普通的 Debian 配置,并在阅读了http://www.rsyslog.com/doc/rsyslog_pgsql.html和http://www.rsyslog.com/doc/rsyslog_high_database_rate 上的文档后激活了相关的配置指令html的。
它似乎工作,但只有当我停止 RSyslog 时,消息才会写入磁盘或发送到 PostgreSQL,就好像它缓冲了所有内容直到停止命令并在关闭之前将所有内容写入内存中。
虽然我可能不会丢失任何消息,但它不是很方便,因为它引入了很多延迟(我不知道它在关闭之前是否甚至转储了任何东西?),有没有办法减少它,所以我可以在正常情况(服务器不忙),几乎是实时日志记录?
这是我当前的配置文件:
$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 …Run Code Online (Sandbox Code Playgroud)