系统日志文件的 Filebeat 中的错误时间戳

bad Timestamp in Filebeat for syslog file

我已经在客户端配置了带有 filebeat 的 ELK 服务器。配置似乎没问题,但是当我用 kibana 搜索我的日志时,每个系统日志条目都在 2000 年被引用,如下所示:

{
  "_index": "filebeat-2000.02.09",
  "_type": "syslog",
  "_id": "AVLGZIPtL5gIGucGObzD",
  "_score": null,
  "_source": {
    "message": "Feb  9 15:54:01 dev postfix/qmgr[1164]: 7DF9D1803D0: removed",
    "@version": "1",
    "@timestamp": "2000-02-09T14:54:01.000Z",
    "beat": {
      "hostname": "dev",
      "name": "dev"
    },
    "count": 1,
    "fields": null,
    "input_type": "log",
    "offset": 156454,
    "source": "/var/log/syslog",
    "type": "syslog",
.....

当我查看我的 /var/log/syslog 文件时,我有这样一行:

Feb  9 16:36:01 dev postfix/qmgr[1164]: 51F48180484: from=<root@dev>, size=1838, nrcpt=1 (queue active)
Feb  9 16:36:01 dev postfix/local[2884]: 51F48180484: to=<root@dev>, orig_to=<root>, relay=local, delay=0.07, delays=0.05/0/0/0.02, dsn=2.0.0, status=sent (delivered to mailbox)

行首没有年份。

我的问题是,如何添加年份或更改时间戳? 我使用 Debian 8.2 谢谢

您可以将 syslog 设置 $ActionFileDefaultTemplate 从默认值 RSYSLOG_TraditionalFileFormat 更改为 RSYSLOG_FileFormat,后者具有 TIMESTAMP_ISO8601 格式的时间戳。

编辑 /etc/rsyslog.conf 文件。

#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$ActionFileDefaultTemplate RSYSLOG_FileFormat

然后重新启动 rsyslogd 守护程序。

systemctl restart rsyslog

因此日志格式将类似于:

2016-02-07T03:47:14.300009+01:00 foo rhsmd: This system is registered to RHN Classic.