如何访问 logstash 元数据事件的单个字段?

How to access a single field of the logstash metadata event?

我将 logastash 7.6 与 output-jdbc 插件一起使用,但出现错误,我知道这是因为如果它向我发送所有要索引的字段,这些字段是 @ 的一部分元数据。 探测只是将事件名称不带 @,它对我有用。

如何获取@metada 集中的单个字段?

错误:

ERROR logstash.outputs.jdbc - JDBC - Exception. Not retrying {:exception=>#, :statement=>"UPDATE table SET estate = 'P' WHERE codigo = ? ", :event=>"{\"properties\":{\"rangoAltura1\":null,\"rangoAltura2\":null,\"codigo\":\"DB_001\",\"rangoAltura3\":null,\"descrip\":\"CARLOS PEREZ\",\"codigo\":\"106\",\"rangoAltura5\":null,\"active\":true},\"id\":\"DB_001_555\"}"}

我的.conf:

statement => ["UPDATE table SET estate = 'A' WHERE entidad = ? ","%{[@metadata][miEntidad]}"]  

{[@metadata][miEntidad]} -----> 地图['entidad_temp'] = event.get('entidad')

根据输出 jdbc 插件 README 你已经正确设置了它/

也许可以尝试以下 work-around:

statement => ["UPDATE table SET estate = 'A' WHERE entidad = ? ","[@metadata][miEntidad]"]