Logstash won't parse CSV to elasticsearch


#1

I'm trying to parse a CSV file using Logstash to ElasticSearch. The index cannot be found in Kibana, and Logstash claims the config file is 'ok'. I bet the problem is obvious, I just can't see it.

Can anyone help me debug this?
Thanks

Logstash config

input {
    file {
        path => "C:\ProgramData\FDA\output1\processed\domain.csv"
        start_position => "beginning"
        sincedb_path => "NUL"
    }
}
filter {
    csv {
        separator => ","
        columns => [ "Disk Location", "Domain Name", "Url"]

    }

    mutate {convert => ["Disk Location", "integer"]}

}
output {
    elasticsearch {
        hosts => ["http://localhost:9200"]
        index => "domain"

    }
    stdout { codec => rubydebug }
}

Output from cmd "logstash -f C:\ProgramData\FDA\logstash.conf"

:\ProgramData\FDA\logstash-7.0.0\logstash-7.0.0\bin>logstash -f C:\ProgramData\FDA\logstash.conf
Sending Logstash logs to C:/ProgramData/FDA/logstash-7.0.0/logstash-7.0.0/logs which is now configured via log4j2.properties
[2019-04-16T21:43:54,070][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2019-04-16T21:43:54,084][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"7.0.0"}
[2019-04-16T21:43:59,736][INFO ][logstash.outputs.elasticsearch] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://localhost:9200/]}}
[2019-04-16T21:43:59,871][WARN ][logstash.outputs.elasticsearch] Restored connection to ES instance {:url=>"http://localhost:9200/"}
[2019-04-16T21:43:59,905][INFO ][logstash.outputs.elasticsearch] ES Output version determined {:es_version=>7}
[2019-04-16T21:43:59,908][WARN ][logstash.outputs.elasticsearch] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>7}
[2019-04-16T21:43:59,926][INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["http://localhost:9200"]}
[2019-04-16T21:43:59,938][INFO ][logstash.outputs.elasticsearch] Using default mapping template
[2019-04-16T21:43:59,959][INFO ][logstash.javapipeline    ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>1000, :thread=>"#<Thread:0x16b87b1 run>"}
[2019-04-16T21:44:00,046][INFO ][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"index_patterns"=>"logstash-*", "version"=>60001, "settings"=>{"index.refresh_interval"=>"5s", "number_of_shards"=>1, "index.lifecycle.name"=>"logstash-policy", "index.lifecycle.rollover_alias"=>"logstash"}, "mappings"=>{"dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"*", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword", "ignore_above"=>256}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date"}, "@version"=>{"type"=>"keyword"}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}
[2019-04-16T21:44:00,449][INFO ][logstash.javapipeline    ] Pipeline started {"pipeline.id"=>"main"}
[2019-04-16T21:44:00,520][INFO ][filewatch.observingtail  ] START, creating Discoverer, Watch with file and sincedb collections
[2019-04-16T21:44:00,526][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-04-16T21:44:00,938][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

#2

Use forward slash in the file input path option.


#3

OMG this worked! I want to die... been looking at this all day. Thanks @Badger