logstash收集ngx日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | if [ type ] = ~ "ngx-" { #去掉重复的行 mutate { add_field = > { "line_message" = > "%{message} %{offset}" } } ruby { code = > " require 'digest/md5' ; event. set ( 'computed_id' , Digest::MD5.hexdigest(event.get( 'line_message' ))) " } #匹配nginx日志 grok { match = > { "message" = > "%{IPORHOST:clientip} - %{NOTSPACE:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:method} %{NOTSPACE:request}(?: %{URIPROTO:proto}/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:status} (?:%{NUMBER:size}|-) \"(?:%{DATA:referrer}|-)\" \"(?:%{DATA:agent}|-)\" \"(%{DATA:xforwardedfor}|-)\" \"(?:%{DATA:domain}|-)\" \"%{NUMBER:server_port}\" %{NUMBER:reqtime} %{DATA:forward_ip}" } remove_field = > [ "source" , "host" , "message" , "forward_ip" , "domain" , "beat.name" , "remote_user" ] } #设置日期格式 date { match = > [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss +0800" ] target = > "@timestamp" "locale" = > "en" timezone = > "UTC" remove_field = > [ "timestamp" ] } #设置IP地址 geoip { source = > "clientip" target = > "geoip" } #删除[geoip][ip]以192.100.10.的IP地址 if [geoip][ip] = ~ "192.100.10." { drop {} } #删除行信息 mutate { remove_field = > [ "line_message" ] } useragent { source = > "agent" } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端