【问题标题】:Logstash not parsing JSONLogstash 不解析 JSON
【发布时间】:2018-03-16 22:37:47
【问题描述】:

Logstash 配置

input {
    file{
        path => "/home/folder/stash/data/memcached_shadowserver.csv"
        start_position => "beginning"
        sincedb_path => "/dev/null"
    }
}

filter {
    csv {
        separator => ","
        columns => ["CATEGORY", "DESCRIPTION", "IP", "PORT", "ASN", "TIME", "GEOIP", "FQDN", "TAGS"]
    }

    mutate { convert => ["CATEGORY","string"]}
    mutate { convert => ["DESCRIPTION","string"]}
    mutate { convert => ["IP","string"]}
    mutate { convert => ["PORT","integer"]}
    mutate { convert => ["ASN","integer"]}
    mutate { convert => ["TIME","string"]}
    mutate { convert => ["GEOIP","string"]}
    mutate { convert => ["FQDN","string"]}
    mutate { convert => ["TAGS","string"]}

    json {
        source => "TAGS"
        target => "TAGS"
    }

}

output { 
    elasticsearch {
        hosts => "localhost"
        index => "test4"
    }
    stdout {}
}

数据示例

CATEGORY,DESCRIPTION,IP,PORT,ASN,TIME,GEOIP,FQDN,TAGS
vulnerable service,misconfigured memcached servers,10.10.10.10,11211,3000,February 27th 2018 15:46:23.000,SS,,{"tag":"DDoS","tag":"reflection","tag":"amplification","tag":"attack"}

Logstash 日志

[2018-03-17T00:16:44,182][WARN ][logstash.filters.csv     ] Error parsing csv {:field=>"message", :source=>"vulnerable service,misconfigured memcached servers,10.10.10.10,11211,3333,February 24th 2018 13:19:12.000,SS,,{\"tag\":\"DDoS\",\"tag\":\"reflection\",\"tag\":\"amplification\",\"tag\":\"attack\"}", :exception=>#<CSV::MalformedCSVError: Illegal quoting in line 1.>}

除了重复键(我认为这无关紧要)之外,JSON 是有效的。我检查了另一个线程Logstash does not parse json,其中使用了基本相同的 JSON 格式,显然它有效。

还在没有 JSON 的情况下运行我的日志,然后它就可以工作了,所以它必须在某个地方吗?数据在 Kibana 中显示为一条消息,但没有任何内容被分成字段。

有什么想法、建议吗?

谢谢

我还尝试解析一个包含我之前开始工作的 JSON 的日志文件。

CATEGORY,DESC,IP,GEOIP,ASN,TIME,PORT,DNS,TAGS
ics,Modbus protokolliga seadmed,80.235.16.222,EE,AS3249,2017-08-29T06:57:22.546423,1,kala.kalamees.ee,{"cms":"Drupal"} {"cve":"CVE-2018-0111"}

但现在由于某种原因,这个 JSON 也没有被解析。其他字段已正确解析,可以在 Kibana 中搜索,但 JSON 没有任何内容,即使我之前已经让它与相同的 Logstash 配置一起使用..

这是我一直在使用的日志文件
https://github.com/jannoa/visualiseerimisplatvorm-DATA/files/1821633/test1.txt

【问题讨论】:

  • 警告与 csv 解析有关,而不是 JSON 解析。您收到此错误:CSV::MalformedCSVError: Illegal quoting in line 1. 这可能与您在 csv 中的 JSON 列中包含逗号但没有被引号包围的事实有关。
  • @whites11 我对此进行了检查并尝试了不同的格式,我还在线程末尾链接的最新格式在 JSON 列中没有逗号,但仍然给我Error parsing csv {:field=&gt;"message", :source=&gt;"iot,Paradox valvesüsteem,213.35.180.112,EE,AS3249,2017-08-29T03:12:08.200184,37,http://www.gpdi-lippocikarang.com ,{\"cms\":\"Drupal\"} ", :exception=&gt;#&lt;CSV::MalformedCSVError: Illegal quoting in line 1.&gt;} 我觉得像配置忽略 JSON 过滤器

标签: json elasticsearch logstash kibana


【解决方案1】:

可能问题与 default csv quote char 有关,即字符 ",它存在于 json 字段中。

尝试将 quote_char 设置为 csv 中不存在的一些值。

【讨论】:

  • 谢谢,将quote_char 设置为“'”虽然我之前没有遇到任何问题,但仍然有效。即使它是一个不同的主题,您是否有任何想法将 JSON 格式的数据放入字段中?我忘记了,即使数据可以通过字符串搜索,它也不像其他数据那样在任何字段中。
猜你喜欢
  • 2015-04-29
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多