Hi I am new to ES. I was trying to parse json file with logstash but I am getting error like below. Please help me to solve this issue
Error
<LogStash::Json::ParserError: Unexpected end-of-input: expected close marker for OBJECT (from [Source: [B@4df0e025; line: 1, column: 1])
at [Source: [B@4df0e025; line: 37, column: 868]>}
[2017-09-10T16:57:18,382][WARN ][logstash.filters.json ] Error parsing json {:source=>"message", :raw=>"{\n "sensor-time" : {\n "timezone" : "UTC",\n "time" : "2017-09-07T08:00:02Z"\n },\n "status" : {\n "code" : "OK"\n },\n "content" : {\n "element" : [ {\n "element-id" : 0,\n "element-name" : "Line 0",\n "sensor-type" : "SINGLE_SENSOR",\n "data-type" : "LINE",\n "from" : "2017-09-07T07:00:00Z",\n "to" : "2017-09-07T08:00:00Z",\n "resolution" : "ONE_HOUR",\n "measurement" : [ {\n "from" : "2017-09-07T07:00:00Z",\n "to" : "2017-09-07T08:00:00Z",\n "value" : [ {\n "value" : 31,\n "label" : "fw"\n }, {\n "value" : 27,\n "label" : "bw"\n } ]\n } ]\n } ]\n },\n "sensor-info" : {\n "serial-number" : "00:1E:C0:9D:41:ED",\n "ip-address" : "10.0.100.12",\n "name" : "Wireless Sensor 01",\n "group" : "SDS Wireless Lab",\n "device-type" : "PC2R"\n }", :exception=>#<LogStash::Json::ParserError: Unexpected end-of-input: expected close marker for OBJECT (from [Source: [B@5e21f900; line: 1, column: 1])
at [Source: [B@5e21f900; line: 37, column: 868]>}
[2017-09-10T16:57:18,383][WARN ][logstash.filters.json ] Error parsing json {:source=>"message", :raw=>"{\n "sensor-time" : {\n "timezone" : "UTC",\n "time" : "2017-09-06T13:00:02Z"\n },\n "status" : {\n "code" : "OK"\n },\n "content" : {\n "element" : [ {\n "element-id" : 0,\n "element-name" : "Line 0",\n "sensor-type" : "SINGLE_SENSOR",\n "data-type" : "LINE",\n "from" : "2017-09-06T12:00:00Z",\n "to" : "2017-09-06T13:00:00Z",\n "resolution" : "ONE_HOUR",\n "measurement" : [ {\n "from" : "2017-09-06T12:00:00Z",\n "to" : "2017-09-06T13:00:00Z",\n "value" : [ {\n "value" : 32,\n "label" : "fw"\n }, {\n "value" : 30,\n "label" : "bw"\n } ]\n } ]\n } ]\n },\n "sensor-info" : {\n "serial-number" : "00:1E:C0:9D:41:ED",\n "ip-address" : "10.0.100.12",\n "name" : "Wireless Sensor 01",\n "group" : "SDS Wireless Lab",\n "device-type" : "PC2R"\n }", :exception=>#<LogStash::Json::ParserError: Unexpected end-of-input: expected close marker for OBJECT (from [Source: [B@280b8ded; line: 1, column: 1])
at [Source: [B@280b8ded; line: 37, column: 868]>}
[2017-09-10T16:57:18,383][WARN ][logstash.filters.json ] Error parsing json {:source=>"message", :raw=>"{\n "sensor-time" : {\n "timezone" : "UTC",\n "time" : "2017-09-07T01:00:02Z"\n },\n "status" : {\n "code" : "OK"\n },\n "content" : {\n "element" : [ {\n "element-id" : 0,\n "element-name" : "Line 0",\n "sensor-type" : "SINGLE_SENSOR",\n "data-type" : "LINE",\n "from" : "2017-09-07T00:00:00Z",\n "to" : "2017-09-07T01:00:00Z",\n "resolution" : "ONE_HOUR",\n "measurement" : [ {\n "from" : "2017-09-07T00:00:00Z",\n "to" : "2017-09-07T01:00:00Z",\n "value" : [ {\n "value" : 0,\n "label" : "fw"\n }, {\n "value" : 0,\n "label" : "bw"\n } ]\n } ]\n } ]\n },\n "sensor-info" : {\n "serial-number" : "00:1E:C0:9D:41:ED",\n "ip-address" : "10.0.100.12",\n "name" : "Wireless Sensor 01",\n "group" : "SDS Wireless Lab",\n "device-type" : "PC2R"\n }", :exception=>#<LogStash::Json::ParserError: Unexpected end-of-input: expected close marker for OBJECT (from [Source: [B@4f638d4; line: 1, column: 1])
at [Source: [B@4f638d4; line: 37, column: 866]>}
sensor1.json
{
"sensor-time" : {
"timezone" : "UTC",
"time" : "2017-09-06T08:00:02Z"
},
"status" : {
"code" : "OK"
},
"content" : {
"element" : [ {
"element-id" : 0,
"element-name" : "Line 0",
"sensor-type" : "SINGLE_SENSOR",
"data-type" : "LINE",
"from" : "2017-09-06T07:00:00Z",
"to" : "2017-09-06T08:00:00Z",
"resolution" : "ONE_HOUR",
"measurement" : [ {
"from" : "2017-09-06T07:00:00Z",
"to" : "2017-09-06T08:00:00Z",
"value" : [ {
"value" : 10,
"label" : "fw"
}, {
"value" : 10,
"label" : "bw"
} ]
} ]
} ]
},
"sensor-info" : {
"serial-number" : "00:1E:C0:9D:41:ED",
"ip-address" : "10.0.100.12",
"name" : "Wireless Sensor 01",
"group" : "SDS Wireless Lab",
"device-type" : "PC2R"
}
}
Pipeline.conf
input {
beats {
type=> beats
port => "5043"
codec=> json
}
}filter{
json{
source => "message"
}
mutate {
remove_field => [ "type", "tags"]
add_field => {
"time" => "%{[sensor-time][time]}"
"serial-number" => "%{[sensor-info][serial-number]}"
"ip-address" => "%{[sensor-info][ip-address]}"
"group" => "%{[sensor-info][group]}"
}
}
}output {
elasticsearch {
hosts => ["localhost:9200"]
index => "sensor"
}
stdout { codec => rubydebug { metadata => true }}
}
filebeat.yml
filebeat.prospectors:
- input_type: log
paths:
- C:\Users\mufashid.manantavid\Desktop\Xovis Json*.json
multiline.pattern: '^{'
multiline.negate: true
multiline.match: after
#fields_under_root: true
#json.keys_under_root: true
#json.add_error_key: true
#fields:
#tags: ['json']output.logstash:
hosts: ["localhost:5043"]
#template.name: filebeat
template.path: filebeat.template.json