json - Logstash不解析JSON

标签 json elasticsearch logstash kibana

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

最佳答案

也许问题与json字段中存在的"字符default csv quote char有关。

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

关于json - Logstash不解析JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49330409/

相关文章:

java - 如何使用Java客户端查询Elasticsearch中的多值数组字段?

python - 如何将 json 对象漂亮地打印为电子邮件 python

node.js - 如何使用 node.js 设置 ELK

docker - 导入所有数据后自动停止Logstash进程

javascript - 将 JSON 从 Laravel 5.1 Controller 传递到 JS (AngularJS) 被单引号破坏

json - 如何在 Swift 4.1 中将混合值类型字典编码为 JSON

json - 需要帮助推断 NiFi 中 json 文件的 avro 架构

java - 快速解析具有较大可跳过区域的 JSON

r - 使用 R 连接到 AWS Elasticsearch Service - 出现 404 错误

linux - 每当我重新启动 docker/elk 图像时,数据就会丢失