如何使用logstash在elasticsearch中上传csv文件?

问题描述

这是我的logstash.conf文件数据

@Transaction
suspend fun addNewShoppingListWithItems(shoppingList: ShoppingList,items: List<Item>) {

    val listId = addNewShoppingList(shoppingList)
    
    items.forEach { it.parentListId = listId }
    addNewItems(items)
}

并运行它我正在使用

   input {
  file {
    path => "/home/niteshb/*.csv"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}                

filter {
  csv {
    separator => ","
    columns => ["tenant_id","hierarchy_name","attribute_name","item_pk"]
  }
}                

output {
  elasticsearch {
    hosts  => "http://localhost:9200"
    index  => "plan_record"
  }
  stdout {}
}

运行后遇到异常,异常为

bin/logstash -f logstash.conf

有人可以帮我解决这个问题吗?我正在使用 linux 系统,但我不知道出了什么问题?

解决方法

正确格式化配置文件总是有帮助的。您只是在 inputfilter 部分的末尾缺少一个右花括号:

input {
  file {
    path => "/home/niteshb/*.csv"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}                  <--- add this

filter {
  csv {
    separator => ","
    columns => ["tenant_id","hierarchy_name","attribute_name","item_pk"]
  }
}                  <--- add this

output {
  elasticsearch {
    hosts  => "http://localhost:9200"
    index  => "plan_record"
  }
  stdout {}
}