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

标签 linux timestamp syslog filebeat

我已经在客户端配置了带有 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.

关于linux - 系统日志文件的 Filebeat 中的错误时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35296123/

相关文章:

tomcat - 如何配置 Tomcat 以通过系统日志记录所有内容?

linux - 如何知道syslog的函数是否调用成功?

mysql - SQL 根据时间戳按年月排序

bash - Bash正则表达式查找替换

logging - Syslog - 将所有应用程序的日志转储到 Syslog 是否是个好主意?

linux - 给定开始、结束日期和步骤,如何在 awk 中创建序列?

linux - 保护 RPi SD 卡在日常电源循环中免遭损坏

php - bash.sh 运行 cron 的权限被拒绝

c - 如何调用 lstat(2) 而不是 lstat(3)?

java - Hibernate 可以将 Java Calendar 对象映射到 SQL TIMESTAMP 列吗?