我必须在 ruby 上编写 Postfix 日志解析器。它应该找到反弹,将其格式化为 JSON 并发送到某个地方。我不是系统管理员,也不想在我的笔记本电脑上安装 Postfix 服务器。我在哪里可以找到这样的文件来使用?有人可以发给我吗?
答案1
从http://en.redinskala.com/postfix-maillog-interpretation/:
maillog 的一般语法
以下行代表信息记录到邮件日志的基本格式:
1 月 2 日 11:15:39 tmcent01 postfix/smtpd[17397]: 从未知连接 [127.0.0.1]
如您所见,第一部分(粗体)仅指示记录事件的日期和时间。在生产邮件服务器中,建议此信息尽可能准确,因为此时的任何故障都可能在关联事件时产生不一致。
1 月 2 日 11:15:39 tmcent01 postfix/smtpd[17397]: 从未知连接 [127.0.0.1]
下一个字段显示记录事件的服务器的名称,在本例中它是我们自己的 Postfix 服务器。
1 月 2 日 11:15:39 tmcent01 postfix/smtpd[17397]: 从未知连接 [127.0.0.1]
下一个字段是排除邮件流或 Postfix 故障时最关键的字段之一。在这里,您可以看到执行记录操作的服务/进程 [PID]。此信息可以帮助您区分 Postfix 接收、发送或处理特定邮件时涉及的每个阶段。例如,从上一行我们可以假设执行中的守护进程是“smtpd”,它是 Postfix 用于接收邮件的守护进程,因此我们可以假设我们正在查看传入邮件事务,此外我们还有接收该邮件的守护进程的 PID。您可以使用相同的 PID 来搜索特定守护进程对邮件执行的所有操作。
1 月 2 日 11:15:39 tmims8201 postfix/smtpd[17397]: 从未知连接 [127.0.0.1]
最后,最后一个字段只是记录事件的描述。在这里,您将能够看到状态/错误代码或文本描述,以获得更详细的解释。
有了这些信息,您可以轻松识别通过 Postfix 引擎接收、发送和处理邮件所涉及的每个步骤。现在让我们了解每个部分和日志块的具体细节。
答案2
检查 Logstash 用于解析日志文件的 grok 模式。不确定我从哪里获得我们的规则,但这似乎维护得很好:
https://github.com/whyscream/postfix-grok-patterns/blob/master/postfix.grok