适合 datetime_format 配置的 awslogs 上传 audit.log

Suitable datetime_format configuration of awslogs to upload audit.log

我正在为 linux (RHEL) 配置 AWS CloudWatch 客户端,以将所有重要日志上传到 CloudWatch。我一直在为 audit.log 配置客户端部分。我不断收到消息

... Fall back to current time ... reason: timestamp could not be parsed ...

我认为日志文件的格式(系统默认)不适合awslogs 客户端解析。我最好的行动方案是什么?有没有办法为审计日志文件配置 awslogs 客户端,或者我应该更改审计日志文件的格式以更好地满足 awslogs 的期望?

audit.log 个条目如下所示:

type=ADD_USER msg=audit(1539364777.590:6): pid=2710 uid=0 auid=4294967295 ses=4294967295 msg='op=adding user id=500 exe="/usr/sbin/useradd" hostname=? addr=? terminal=? res=success'

带句点和冒号的数字是 epochaudit id。审核 ID 可能会在文件中重复。

不幸的是,strftime 没有标准的纪元格式(有 %s,但它不在规范中并且在 python 中不受支持)。 cwlogs.parser.DateTimeParser 没有解决方法。而且 cwlogs.util.epoch() 永远不会对原始格式起作用。呜呜呜

因此,您需要使用 awslogs 默认发送带有当前时间(而不是日志时间)的条目。