首页 文章

如何将logstash中的log / txt文件传递给elasticsearch

提问于
浏览
1

所以,基本上我有一个日志或文本文件,我想用ELK可视化 . 我能够在系统上设置elasticsearch和kibana . 这是我的logstash配置文件 .

input { file {
    path => "G:/everything.log"
    start_position => "beginning"
} }

filter {

}

output {
  elasticsearch { hosts => ["localhost:9200"]
  index => "example" }
  stdout { codec => rubydebug }
}

在浏览器中我打开http://localhost:9200/这就是出现的内容

{
  "name" : "1rtH6q6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "oicreqLyQ_iNiTrOQ0sYPQ",
  "version" : {
    "number" : "5.4.1",
    "build_hash" : "2cfe0df",
    "build_date" : "2017-05-29T16:05:51.443Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.1"
  },
  "tagline" : "You Know, for Search"
}

在执行GET / _cat / indices?v&pretty之后在我的kibana控制台中

health status index          uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   .kibana        fxFjIS55Q9-qAgqLlPE0Cw   1   1          2            0      6.3kb          6.3kb
yellow open   windows_events YUBWMzRpRTmEdu6E2UoCXg   5   1          2            0     12.6kb         12.6kb

请帮我解决这个问题

1 回答

  • 1

    至于我理解你的问题,你需要做几件事才能在Kibana中显示你的日志 .

    1)根据您的日志模式,您必须编写适当的grok模式来解析您的日志文件 . 您还可以使用Grok Debugger utility为日志编写grok模式 .

    例如 . 对于Apache访问日志grok模式将是

    filter {
          grok {
            match => { "message" => "%{COMBINEDAPACHELOG}" }
          }
          date {
            match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
          }
        }
    

    我建议你阅读official guideline .

    一旦您的日志文件正确解析,您将看到数据将索引 example Elasticsearch索引 .

    要验证您可以使用以下get命令的数据

    curl -XGET 'localhost:9200/example/_search'
    

    2)在下一步中,您必须在kibana中配置默认的Elasticsearch索引模式 . 供参考阅读这些参考

相关问题