如何在fluentd中用特定字符串替换键值字符串

Posted

技术标签:

【中文标题】如何在fluentd中用特定字符串替换键值字符串【英文标题】:How to replace a key value string with specific string in fluentd 【发布时间】:2019-04-12 18:10:04 【问题描述】:

我是 fluentd 新手,当键值中出现特定字符串时,我想使用 record_modifier 替换字符串。

例子

1)输入:

"message":"how are you"

输出:

"message":"who are you"

当输入键值有“how”时,我想用“who”替换那个字符串

2)输入:

"message":"he is a bad boy"

输出:

"message":"he is a good boy"

当输入键值为“bad”时,我想用“good”替换该字符串

@type 记录修饰符 #auto_typecast 真 enter code here 关键信息 表达 ????? 代替 ?????

提前致谢。

【问题讨论】:

您好,欢迎来到 SO。您发布的问题似乎根本不包括解决问题的任何尝试。 *** 希望您首先尝试解决自己的问题,因为您的尝试有助于我们更好地了解您想要什么。请编辑问题以显示您尝试过的内容,以便在最小、完整且可验证的示例 ***.com/help/mcve> 中说明您遇到的特定问题。欲了解更多信息,请参阅如何提问***.com/help/how-to-ask>并参加游览<***.com>。 我正在使用下面的代码来解决上述问题,但它不起作用 *> @type record_modifier #auto_typecast true key message expression ^.*\b(bad )\b. # 替换“好” 你解决了吗? 我认为这会在这里工作 - github.com/repeatedly/fluent-plugin-record-modifier 【参考方案1】:

您可以在 record_transformer

中使用 gsub
<filter yourTag>
  @type record_transformer
  enable_ruby
  <record>
    log $record["log"].gsub('how', 'who')   
  </record>
</filter>

【讨论】:

以上是关于如何在fluentd中用特定字符串替换键值字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在JAVA中用不同的子字符串替换字符串的子字符串?

如何用regexp_replace在mysql中用特定字符替换多个字符?

在fluentd中如何解析日志并根据键值创建字段

如何在perl中用'*'替换字符串中的所有字符

如何在java中用\替换字符串中的“(双引号)”

如何在Java中用空字符串替换'