Hello,
I'm simply trying to parse my JSON fileds into events.
The JSON file look like this:
[ 
{ 
"field1":  "value1", 
"field2":  "value2", 
"field3":  "value3", 
"field4":  "value4", 
"field5":  "value5", 
"field6":  "value6" 
}, 
{ 
"field1":  "value1", 
"field2":  "value2", 
"field3":  "value3", 
"field4":  "value4", 
"field5":  "value5", 
"field6":  "value6" 
} 
]
 
I would like to parse it to have one event of the 6 fields, with their value.
So I did some research and find that I have to use the Multiline codec plugin with the pattern option. I tried a lot of pattern but I have a parse error everytime.
[WARN ][logstash.filters.json    ] Error parsing json {:source=>"message", :raw=>"    },\r", :exception=>#<LogStash::Json::ParserError:"; line: 1, column: 0])r '}': expected ']' (for root starting at [Source: (byte )"    },
 
My input look like this:
input { 
file { 
codec => multiline { 
pattern => "^\s\s\s\s" 
negate => true 
what => previous 
max_lines => 20000 
} 
path => "/etc/logstash/conf.d/adcsi/MyJson.json" 
type => "json" 
sincedb_path => "/dev/null" 
start_position => "beginning" 
}
 
My filter:
filter { 
if [type] == "json" { 
json { 
source => "message" 
} 
} 
}
 
Any help would be appreciate !
             
            
               
               
               
            
            
           
          
            
            
              Thank you for your response, I will try this today and inform you if it worked !
Have a great day
             
            
               
               
               
            
            
           
          
            
            
              Hello Badger,
Your solution doesn't seem to work.
Here is the error I get :
[WARN ][logstash.filters.split   ] Only String and Array types are splittable. field:someField is of type = NilClass
 
Here is my input:
file {
     codec => multiline { 
     pattern => "^Spalanzani" 
	 negate => true 
	 what => previous 
	 auto_flush_interval => 1 
	 multiline_tag => "" 
	 }
    path => "/etc/logstash/conf.d/adcsi/Users.json"
    type => "adcsi-users"
    sincedb_path => "/dev/null"
    start_position => "beginning"
  }
 
 
Here is my filter for this json:
filter { 
if [type] == "adcsi-users"{ 
json { 
source => "message" 
target => "someField" 
remove_field => [ "message" ] 
} 
split { 
field => "someField" 
} 
} 
}
 
Do I need to change the format of my Json to make a JSON Lines ? Where every line is an object ? If so, I have 2000+ lines to change, is there any other solution that doesn't need to reformat my json ?
Thank you for your help.
Best regards
             
            
               
               
               
            
            
           
          
            
              
                Badger  
                
               
              
                  
                    October 28, 2019, 12:29pm
                   
                   
              5 
               
             
            
              That is telling you that [someField] does not exist, which means your json filter did not parse [message].
             
            
               
               
               
            
            
           
          
            
            
              Yes... That's the problem...
It did not solve my problem, I really don't understand what I have to do to parse my json correctly...
             
            
               
               
               
            
            
           
          
            
            
              I haven't find a solution for my Json.
My solution was to convert my JSON into a CSV file. Now works properly...
             
            
               
               
               
            
            
           
          
            
              
                system  
                (system)
                  Closed 
               
              
                  
                    December 3, 2019,  9:38am
                   
                   
              8 
               
             
            
              This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.