我使用本文中的提示通过 rsyslogd 设置了 haproxy 日志记录,并且一切似乎都运行良好。日志文件获取日志消息。
但是,来自 haproxy 的每条日志消息也会显示在/var/log/syslog. 这意味着一旦服务器上线,系统日志将毫无用处,因为它会被 haproxy 日志消息覆盖。
我想从/var/log/syslog. 在查看 rsyslogd 文档后,我尝试更改文件/etc/rsyslog.d/50-default.conf:
*.*;auth,authpriv.none;haproxy.none -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)
我只是添加了;haproxy.none部分。重新启动 rsyslogd 后,它完全停止工作,直到我恢复更改。
我究竟做错了什么?
Kyl*_*ndt 29
您还可以执行以下操作,使其不会出现在任何其他日志中:
local0.* -/var/log/haproxy.log
& ~
Run Code Online (Sandbox Code Playgroud)
这& ~意味着不要将匹配的内容放在上面一行中的其他任何地方,用于其余规则。
slm*_*slm 14
使用的& ~是过时的rsyslogd的V7,并鼓励你使用& stop来代替。您可以在v7compatibility 页面的这一部分阅读更多相关信息。
不推荐使用 omruleset 和丢弃 (~) 操作
两者都继续工作,但已被更好的替代品所取代。
丢弃操作(波浪号字符)已被“停止”RainerScript 指令取代。它被认为更直观,并提供稍好的性能。
omruleset 模块已被“调用”RainerScript 指令取代。Call 允许像子程序一样执行规则集,并且这样做的性能比 omruleset 高得多。请注意, omruleset 可以从异步队列中运行。这与其说是期望的效果不如说是一方面,并且不受调用语句的支持。如果需要这种效果,可以简单地通过异步运行被调用的规则集操作来模拟(无论如何处理这个问题的正确方法)。
请注意,已弃用的模块在使用时会发出警告消息。他们告诉我们不推荐使用该构造并且将使用哪个语句作为替换。这不会影响操作:两个模块仍然完全可操作,不会在 v7 时间范围内删除。
所以对于 HAProxy 是这样的:
$ more /etc/rsyslog.d/haproxy.conf
local2.* /var/log/haproxy.log
& stop
Run Code Online (Sandbox Code Playgroud)
至于它是如何工作的,它& stop告诉 rsyslogd 丢弃任何与之前匹配的规则相匹配的额外消息。为了保证这个规则被拾起的早期,你可以更改文件的名称/etc/rsyslog.d/haproxy.conf来/etc/rsyslog.d/00-haproxy.conf。
| 归档时间: |
|
| 查看次数: |
67483 次 |
| 最近记录: |