首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >年展期上的logstash时间戳

年展期上的logstash时间戳
EN

Server Fault用户
提问于 2015-01-05 16:03:03
回答 1查看 731关注 0票数 3

我们使用logstash从邮件服务器存储/搜索日志。我今天注意到,我们没有任何今年(2015年)的指数。快速调查显示,目前的日志存储在2014.01.05 (即同一天,但去年),这些指数正在被一个寻找旧指数的cron作业删除。

重新启动logstash固定的东西,所以我假设logstash是根据它开始的时间填充年份信息的。

我们使用Elasticsearch 1.2.4运行Logstash 1.4.1。所以不是最新版本的Elasticsearch,但我在1.4.2的changelog中没有看到任何相关的内容。

日志条目被发送到logstash,使用下面的syslog - config以及输入行和解析输出的示例。

有什么比只记得在新年重新启动Logstash更好的解决办法吗?

输入行示例

代码语言:javascript
复制
Jan  5 15:03:35 cheviot22 exim[15034]: 1Y89Bv-0003uU-DD <= redmine@ncl.ac.uk H=adudeviis.ncl.ac.uk (campus) [10.8.232.56] P=esmtp S=2548 id=redmine.journal-1487.20150105150334@ncl.ac.uk

{
  "_index": "logstash-2014.01.05",
  "_type": "mails",
  "_id": "HO0TQs66SA-1QkQBYd9Jag",
  "_score": null,
  "_source": {
    "@version": "1",
    "@timestamp": "2014-01-05T15:03:35.000Z",
    "type": "mails",
    "priority": 22,
    "timestamp": "Jan  5 15:03:35",
    "logsource": "cheviot22",
    "program": "exim",
    "pid": "15034",
    "severity": 6,
    "facility": 2,
    "facility_label": "mail",
    "severity_label": "Informational",
    "msg": "1Y89Bv-0003uU-DD <= redmine@ncl.ac.uk H=adudeviis.ncl.ac.uk (campus) [10.8.232.56] P=esmtp S=2548 id=redmine.journal-1487.20150105150334@ncl.ac.uk",
    "tags": [
      "grokked",
      "exim_grokked",
      "dated"
    ],
    "xid": "1Y89Bv-0003uU",
    "exim_rcpt_kv": "redmine@ncl.ac.uk H=adudeviis.ncl.ac.uk (campus) [10.8.232.56] P=esmtp S=2548 id=redmine.journal-1487.20150105150334@ncl.ac.uk",
    "H": "adudeviis.ncl.ac.uk",
    "P": "esmtp",
    "S": "2548",
    "id": "redmine.journal-1487.20150105150334@ncl.ac.uk"
  },
  "sort": [
    1388934215000,
    1388934215000
  ]
}

Logstash配置(删除不相关的位) ..。

代码语言:javascript
复制
input {
    syslog {
        codec => "plain"
        debug => false
        port => 514
        type => "mails"
    }
}

filter {
    mutate {
        remove_field => [ "path", "host" ]
    }

    if [type] == "mails" {
        grok {
            patterns_dir => [ "/etc/logstash/patterns" ]
            match => [ "message",  "(?<msg>.*)" ]
            add_tag => [ "grokked" ]
            break_on_match => true
            remove_field => [ "message" ]
        }
    }

    date {
        match => [ "timestamp", "ISO8601", "MMM dd HH:mm:ss", "MMM  d HH:mm:ss"]
        add_tag => [ "dated" ]
    }
}

output {
        elasticsearch {
                cluster => "logstash"
        host => "iss-logstash01"
        flush_size => 1000
        index => "logstash-%{+YYYY.MM.dd}"
        }
}
EN

回答 1

Server Fault用户

回答已采纳

发布于 2015-01-05 16:15:58

在日志用户Google组中找到了一个回答的指针(这让我忘了)。最近的讨论指向https://logstash.jira.com/browse/LOGSTASH-1744,它(a)证实了其他人对我的看法相同,(b)提供了一些可能的解决方案。

选项1是Elasticsearch的修补程序(不是在标准发行版中),它更新了Logstash今年的想法。

选项2是不解析syslog行中的时间戳,而只是依赖于消息随Logstash到达的时间。对于我们来说,这可能是一个可以接受的解决方案,因为线的排序比精确的时间更重要(只要它接近)。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/656400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档