logstash匹配路径字段

本文介绍了三种在Logstash中处理路径字段的方法:1) 使用grok插件,通过配置logstash.conf文件并启动脚本来匹配路径;2) 结合ruby和mutate插件进行处理,同样涉及配置文件修改及脚本启动;3) 利用ruby插件单独完成路径字段的处理,同样包括配置文件的更新和执行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:使用grok插件

1. d:/usr2/local/etc/logstash/pipeline1目录下logstash.conf配置文件

input { 
    stdin { } 
}

filter {
    grok {
        # 匹配路徑 /usr/share/filebeat/log/apps/butler/filebeat5.log中的butler
        match => {message => "^/%{DATA}/%{DATA}/%{DATA}/%{DATA}/%{DATA}/%{DATA:path}/%{DATA}"}
    }
}

output {
	stdout { codec => rubydebug }
}

2. 启动脚本

docker run --rm -it -v /d/usr2/local/etc/logstash/pipeline1:/usr/share/logstash/pipeline --name logstash1 -p 9600:9600 logstash:7.7.0

3. 控制台输入内容,查看结果

/usr/share/filebeat/log/apps/butler/filebeat2.log

方法二:使用ruby、mutate插件

1. logstash.conf配置文件修改为

input { 
    stdin { } 
}

filter {
    ruby {
        code => '
            event.set("components", event.get("message").split("/"))
        '
    }
    if [components][6] {
        mutate {
            add_field => {"path1" => "%{[components][6]}"}
            remove_field => [components]
        }
    }
}

output {
	stdout { codec => rubydebug }
}

2. 启动脚本

docker run --rm -it -v /d/usr2/local/etc/logstash/pipeline1:/usr/share/logstash/pipeline --name logstash1 -p 9600:9600 logstash:7.7.0

3. 控制台输入内容,查看结果

/usr/share/filebeat/log/apps/butler/filebeat2.log

 

方法三:使用ruby插件

1. logstash.conf配置文件修改为

input { 
    stdin { } 
}

filter {
    ruby {
        code => '
            event.set("path2", event.get("message").split("/")[-2])
        '
    }
}

output {
	stdout { codec => rubydebug }
}

2. 启动脚本

docker run --rm -it -v /d/usr2/local/etc/logstash/pipeline1:/usr/share/logstash/pipeline --name logstash1 -p 9600:9600 logstash:7.7.0

3. 控制台输入内容,查看结果

/usr/share/filebeat/log/apps/butler/filebeat2.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值