How to merge lon lat for geo_point

ES and LS 6.2. My first post, I apologize if my formatting is incorrect in anyway. Attempting to merge lon lat for geo_points I can visualize in Kibana. Below is my config file for LS and the error I am receiving. Of note, If I remove the mutate=>rename filter, the csv file is ingested.

input {
        file {
                path => "/home/tdasch/address.csv"
                start_position => "beginning"
                sincedb_path => "/dev/null"
        }
}
filter {
        csv {
                separator => ","
                columns => [ "client_number", "latitude", "longitude" ]
        }
        mutate {
                convert => { "latitude" => "float" }
                convert => { "longitude" => "float" }
        }
        mutate {
                rename => {
                        "latitude" => "[location][lat]"
                        "longitude" => "[location][lon]"
        }
}
output {
        elasticsearch {
                hosts => "localhost:9200"
                index => "address"
                document_type => "client_address"
        }
        stdout {}
}

[ERROR] 2018-04-18 12:52:57.676 [Ruby-0-Thread-1: /usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/stud-0.0.23/lib/stud/task.rb:22] agent - Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message =>"Expected one of #, => at line 24, column 16 (byte 433) after filter {\n\tcsv {\n\t\tseparator => \",\"\n\t\tcolumns => [ \"client_number\ ", \"latitude\", \"longitude\" ]\n\t}\n\tmutate {\n\t\tconvert => { \"latitude\" => \"float\" }\n\t\tconvert => { \"longitude\" => \"float\" }\n\t}\n\tmutate {\n\t\trename => {\n\t\t\t\"latitude\" => \"[location][lat]\"\n\t\t\t\"longitude\" => \"[location][lon]\"\n\t}\n}\noutput {\n\telasticsearch ", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:42:incompile_imperative'", "/usr/share/logs tash/logstash-core/lib/logstash/compiler.rb:50:in compile_graph'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:12:inblock in compile_sources'", "org/jruby/RubyArray.java:2486:in map'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:11:incompile_ sources'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:51:in initialize'", "/usr/share/logstash/logstash-core/lib/logstash/ pipeline.rb:169:ininitialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:40:in execute'", "/usr/share/lo gstash/logstash-core/lib/logstash/agent.rb:315:inblock in converge_state'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:141:i n with_pipelines'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:312:inblock in converge_state'", "org/jruby/RubyArray.java:1 734:in each'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:299:inconverge_state'", "/usr/share/logstash/logstash-core/lib/lo gstash/agent.rb:166:in block in converge_state_and_update'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:141:inwith_pipeline s'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:164:in converge_state_and_update'", "/usr/share/logstash/logstash-core/lib/lo gstash/agent.rb:90:inexecute'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:348:in block in execute'", "/usr/share/logstash /vendor/bundle/jruby/2.3.0/gems/stud-0.0.23/lib/stud/task.rb:24:inblock in initialize'"]}`

"LogStash::ConfigurationError", :message =>"Expected one of #, => at line 24

You forgot to close the rename operation, ie. you're missing one closing brace.

mutate {
                rename => {
                        "latitude" => "[location][lat]"
                        "longitude" => "[location][lon]"
        }

2 opening and one closing braces.

How embarrassing :slight_smile: Thank you for pointing that out - don't know why I didn't see that after staring at it for an hour. Thanks Attila!

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.