我目前正在使用一个相当旧的版本syslog-ng
,2.1.4,是的,我知道我需要尽快更新它,但现在我需要帮助修改日期/时间格式和时区。
目前,所有内容都会进入 syslog-ng 并转储到本地目录或通过 UDP 发送到另一台设备。正常的日志格式是:
May 1 00:00:08 hostname.example.com Here is the full message
对于我要将日志转发到的一台设备,他们希望所有时间格式都采用 UTC,并且希望将其改为“5 月 1 日”,而不是“5 月 1 日”。
destination d_test {
udp("remote_host.domain.com" port(514) spoof_source(yes) time_zone("UTC")); };
当我执行此操作时,出现以下错误,并且日志时间不会改变为接收主机。
虚假时区规范,必须采用 [+-]HH:MM 格式,偏移量必须小于 24:00;值 =‘UTC’
还有其他方法可以修改吗?至于 2 个符号日期格式,我尝试了一些模板选项,但尚未能够改变初始部分。
答案1
尝试使用+04:00
(或任何时间转换以到达 UTC)而不是UTC
时区。
我不知道有什么方法可以用 syslog-ng 轻松地将月份中的日期更改为两位数,但您可以使用ISODATE
而不是 来获取与 ISO 8601 兼容的标准时间戳 (yyyy-mm-ddThh:mm:ss+-ZONE) DATE
。这些可能更容易解析,根据您的情况,这可能会或可能不会帮助您。
您可以使用awk
、sed
或perl
来查看日志文件并在事后更改日期戳,但这似乎可能会导致其他问题。