Logstash无法与Elastic一起使用

时间:2018-08-14 08:37:40

标签: elasticsearch logstash

我正在尝试使用Logstash管道将数据从CSV文件上传到运行在Google云端上的弹性云。它返回错误-

input{
    file{
    path => "/Users/apple/Desktop/master.csv"
    start_position =>"beginning"
    sincedb_path= "/dev/null"
    }
}
filter{
    csv{
    separator => ","
    columns => {"Category", "Sub category", "Sub Sub Category", "Products", "Measure", "Price", 
    "Description",  "Gst"}
    }
    mutate{convert => ["Price", "float"] }
    mutate{convert => ["Gst", "float"] }
}
output{
    elasticsearch{
        hosts = "https://0acd1a298ea34dc1a28a974a302f2a7f.europe-west1.gcp.cloud.es.io:9243"
        username = "elastic"
        password = "**********"
        index => "masterdb"
        document_type => "product"

    }

}

错误是

Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of #

#之一应该是什么? 请帮我修复它。

1 个答案:

答案 0 :(得分:1)

您看到的错误(:ConfigurationError", :message=>"Expected one of #...)表示您的配置中至少有一个错字。

我已经清理了您的配置:

input{
    file{
    path => "/Users/apple/Desktop/master.csv"
    start_position =>"beginning"
    sincedb_path=> "/dev/null"
    }
}
filter{
    csv{
    separator => ","
    columns => ["Category", "Sub category", "Sub Sub Category", "Products", "Measure", "Price", "Description",  "Gst"]
    }
    mutate{convert => ["Price", "float"] }
    mutate{convert => ["Gst", "float"] }
}
output{
    elasticsearch{
        hosts => "https://0acd1a298ea34dc1a28a974a302f2a7f.europe-west1.gcp.cloud.es.io:9243"
        user => "elastic"
        password => "**********"
        index => "masterdb"
        document_type => "product"
    }
}

有些=>的类型错误为=,因此csv过滤器中的columns选项必须放在方括号之间,因为有不止一列,并且username用户名选项在其中不存在elasticseach配置。