Logstash 未解析 JSON
Logstash not parsing JSON
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 是有效的。我检查了另一个线程 ,其中使用了基本相同的 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
可能问题与 default csv quote char 有关,即字符 "
,出现在 json 字段中。
尝试将 quote_char
设置为您的 csv 中不存在的某些值。
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 是有效的。我检查了另一个线程
还有 运行 我的日志没有 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
可能问题与 default csv quote char 有关,即字符 "
,出现在 json 字段中。
尝试将 quote_char
设置为您的 csv 中不存在的某些值。