禁用 Syslog-ng 日志中显示的进程 ID

禁用 Syslog-ng 日志中显示的进程 ID

我配置了系统日志工具版本 3.21.1),发现日志格式如下。

Aug 26 12:59:28 xyz74hd.com radiusd[20142]: 92djvd4654654164nadskj795234dc Reason: pldap: Forind credentials incorrect: Invalid credentials possible

我不需要 Process-ID(在上面的日志中)[20142]) 在我的日志中。因此所需的 syslog 格式应如下:

Aug 26 12:59:28 xyz74hd.com radiusd: 92djvd4654654164nadskj795234dc Reason: pldap: Forind credentials incorrect: Invalid credentials possible

之前我用的是CentOS6使用较旧的 syslog-ng 版本(3.2.5)但当我部署CentOS7使用最新的 syslog-ng 版本之一(3.21.1)时发生错误。(syslog-ng 配置几乎相同)

在我的新部署中,日志中出现了额外的 Process-ID 字段,导致日志解析器行为异常。我无法更改代码。

在 syslog-ng 级别上是否有任何解决方案,以便我可以从日志中删除这些进程 ID?

答案1

您有多种方法可以删除进程 ID:

  • 您可以为目标创建一个模板以使用自定义输出格式,例如:

    file("/var/log/messages" template("$DATE $HOST $PROGRAM: $MESSAGE\n"))

  • 您可以在目的地之前添加重写规则,在那里取消设置 PID:

    rewrite { unset(value("PID")); };

    或者

    rewrite { set("" value("PID")); };

相关内容