WoJ Asked: 2020-05-13 01:25:13 +0800 CST2020-05-13 01:25:13 +0800 CST 2020-05-13 01:25:13 +0800 CST 是否可以在归档之前过滤日志消息? 772 我有各种集中的日志journald。其中很多并不有趣,我可以尝试从源头过滤它们,但这并不总是可能的。此外,有些在给定级别内是有趣的,而有些则不是。 有没有办法过滤journald记录的事件。我对拒绝已知模式特别感兴趣,而不是接受一些。 这种方法有没有好的替代方法,如果不可能吗?(我正在考虑将事件转发到logstash并删除不太有趣的事件) systemd logging 1 个回答 Voted Best Answer sleske 2020-05-13T02:22:28+08:002020-05-13T02:22:28+08:00 有没有办法用日志过滤记录的事件。我对拒绝已知模式特别感兴趣,而不是接受一些。 journald(实际上,systemd-journald)是负责事件记录的守护进程。AFAIK,它没有按设计进行任何过滤,它只接受事件并存储它们。 常见的做法是在显示日志时进行过滤,使用journalctl. journalctl 允许您以各种方式过滤,例如通过 systemd 单元: journalctl -u nginx.service 但是,这些过滤器中的大多数都不允许否定,因此它们选择消息,而不是排除它们。要排除特定消息,您可以使用--grep与正则表达式匹配的 option ,方法是制作一个排除您不想要的内容的正则表达式。 这种方法有没有好的替代方法,如果不可能吗?(我正在考虑将事件转发到logstash并删除不太有趣的事件) 那将是一种选择(尽管仅阅读日志可能会过大)。您也可以一路安装日志查看器,例如Graylog。 如果您想要一个简单、快速的解决方案,您还可以使用 option 将日志转储到文件中--output=...,然后使用您选择的工具进行处理。您可以转储各种文本格式或 JSON。如果您使用 Perl、Python 或任何解析 JSON 并过滤它的工具编写快速脚本,那么 JSON 将允许进行复杂的后处理。
journald
(实际上,systemd-journald
)是负责事件记录的守护进程。AFAIK,它没有按设计进行任何过滤,它只接受事件并存储它们。常见的做法是在显示日志时进行过滤,使用
journalctl
. journalctl 允许您以各种方式过滤,例如通过 systemd 单元:但是,这些过滤器中的大多数都不允许否定,因此它们选择消息,而不是排除它们。要排除特定消息,您可以使用
--grep
与正则表达式匹配的 option ,方法是制作一个排除您不想要的内容的正则表达式。那将是一种选择(尽管仅阅读日志可能会过大)。您也可以一路安装日志查看器,例如Graylog。
如果您想要一个简单、快速的解决方案,您还可以使用 option 将日志转储到文件中
--output=...
,然后使用您选择的工具进行处理。您可以转储各种文本格式或 JSON。如果您使用 Perl、Python 或任何解析 JSON 并过滤它的工具编写快速脚本,那么 JSON 将允许进行复杂的后处理。