gpt4 book ai didi

regex - 如何在logstash中使用mutate和gsub替换value的部分

转载 作者:行者123 更新时间:2023-12-02 01:21:17 24 4
gpt4 key购买 nike

我的日志文件中有这样的内容:

DATATYPE::SERVICEPERFDATA       TIMET::1519222690       HOSTNAME::localhost     SERVICEDESC::Total Processes    SERVICEPERFDATA::procs=59;250;400;0;    SERVICECHECKCOMMAND::check_local_procs!250!400!RSZDT  HOSTSTATE::UP    HOSTSTATETYPE::HARD     SERVICESTATE::OK        SERVICESTATETYPE::HARD

我想将消息中的 SERVICEPERFDATA::procs=59;250;400;0; 这个键值对替换为类似的内容。

SERVICEPERFDATA::59

所以我可以使用 kv 过滤器将数据拆分为键和值。

我尝试过 Logstash mutate 和 gsub,但找不到正确的正则表达式来实现我的目标。

谢谢,查兰

最佳答案

您可以使用捕获组来获取正则表达式的一部分,并将其用于 mutate/gsub 配置的替换部分。

mutate {
gsub => ["message","(?<=SERVICEPERFDATA::)procs=(\d+);\S+", "\1"]
}

(?<=SERVICEPERFDATA::)使正则表达式仅适用于 SERVICEPERFDATA::procs=(\d+);\S+正则表达式会将所有数字放在 procs= 之间下一个;放在一个组中,然后在配置的替换部分中使用 ( "\1" )。

查看regex explanation .

过滤结果:SERVICEPERFDATA::59

另一种选择是使用两个 mutate/gsub 过滤器,每个过滤器都有更简单的配置。

关于regex - 如何在logstash中使用mutate和gsub替换value的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com