我希望我的rsyslog能够将确切的日志打印到两个不同的文件中。一个是/ var / log / messages这是默认RHEL规则:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
第二个是存储在Veritas Cluster Storage集群的两个节点之间的共享安装点上的$ hostname_messages.log。这可以通过以下方式完成:
$template PerCMDNode,"/foo/bar/system/%HOSTNAME%_messages.log"
*.info;mail.none;authpriv.none;cron.none -?PerCMDNode
一切正常,直到我停止群集服务,并且共享挂载点变得不可用于rsyslog。在这种情况下,rsyslog退出信号15,并且不仅停止记录该共享日志文件(这很明显),而且还停止记录所有日志文件。
我的问题是,如果我可以让rsyslog忽略丢失的日志文件,并在文件重新联机时继续记录?
答案 0 :(得分:0)
当共享日志文件被暂停时,您可以简单地重定向" http://www.rsyslog.com/action-execonlywhenpreviousissuspended-preciseness/
$template PerCMDNode,"/foo/bar/system/%HOSTNAME%_messages.log"
*.info;mail.none;authpriv.none;cron.none -?PerCMDNode
$ActionExecOnlyWhenPreviousIsSuspended on
& /var/log/localbuffer # Might also ask rsyslog to discard here.
$ActionExecOnlyWhenPreviousIsSuspended off