如何从logstash字段中提取键值

问题描述

我有以下logstash配置

  mutate {
   add_field => {
    "alert_message" => "%{[message]}"
   }

}

它使用以下字段“ alert_message”创建一个Elasticsearch索引,该字段是嵌套字典。

"alert_message" : "{\"@timestamp\":\"2020-09-04T18:04:24.490Z\",\"@Metadata\":{\"beat\":\"filebeat\",\"type\":\"_doc\",\"version\":\"7.4.2\",\"topic\":\"oracle_test_log_alert\"},\"ecs\":{\"version\":\"1.1.0\"},\"log\":{\"offset\":590474284,\"file\":{\"path\":\"/u00/app/oracle/diag/rdbms/dwprdp/DWPRD2/trace/alert_DWPRD2.log\"}},\"message\":\"Fri Sep 04 18:04:23 2020\",\"input\":{\"type\":\"log\"},\"timezone\":\"GMT\",\"host\":{\"name\":\"db012.sjc2\"},\"agent\":{\"type\":\"filebeat\",\"ephemeral_id\":\"40a80279-be28-42d1-904c-7f3b8b1bfa7a\",\"hostname\":\"db012.sjc2\",\"id\":\"16b25f53-cde6-4e25-a846-9afe4b5ccaa5\",\"version\":\"7.4.2\"}}\n{\"@timestamp\":\"2020-09-04T18:05:19.492Z\",\"version\":\"7.4.2\"},\"message\":\"Thread 2 advanced to log sequence 2035566 (LGWR switch)\",\"log\":{\"file\":{\"path\":\"/u00/app/oracle/diag/rdbms/dwprdp/DWPRD2/trace/alert_DWPRD2.log\"},\"offset\":590474469}}",

现在,我只希望“ message”键的值成为Elasticsearch索引中“ alert_message”的内容。我在logstash文件中尝试了[message] [message](字典的键)。

mutate {
   add_field => {
    "alert_message" => "%{[message][message]}"
   }

}

但是当我这样做时,不仅打印消息密钥的值,它还会打印我在logstash配置文件中提到的内容,如下所示...

          "alert_message" : "%{[message][message]}",--> ( here )
          "@timestamp" : "2020-09-04T18:17:15.696Z",

请帮助我解决此问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)