logstash的ruby模块怎么用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天小编给大家分享一下logstash的ruby模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2026年11月02日logstash的ruby模块怎么用可以执行任意ruby代码.可是真正去实现的时候踩了不少吭,诸多报错. 第一步调用ruby脚本的时候就一直提示"Script does not define a filter! Please ensure that you have defined a filter method!,根本不加载指定的函数.翻阅logstash-filter-ruby源码得知 其方法中必须有filter函数,固将函数名称更改成filter后解决,但是后续提示没有定义event ,继续翻阅源码看到这个 在调用自定义ruby脚本的时候将event传递过去了.于是将event更改成参数传递解决.最终生产配置如下:
uby中String和json转换关系如下: 定义方法如下:
今天小编给大家分享一下logstash的ruby模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
filter{#执行解析逻辑ruby{id=>"ls133"path =>"./rubyLogParse.rb"}#格式化日期date{match=>["requestTime","yyyy-MM-dd HH:mm:ss"]target =>"@timestamp"locale=>"en"timezone =>"+00:00"}#删除多余字段,减少es的存储空间mutate{remove_field => ["@version","offset","message","beat","input","prospector"]}}
String--->JSON JSON.parse String
JSON--->String JSON.to_json
#解析json格式日志def parseJsonLog(event,logdata)#获取日志内容loginfo=logdata[(logdata.index('] ')+2)...(logdata.rindex('}')+1)]#转成json对象logInfoJson=JSON.parse loginfo#获取流水号event.set('transactionID',logInfoJson['transactionID'])#获取业务账号event.set('businessNumber',logInfoJson['businessNumber'])#获取省份编码event.set('provinceCode',logInfoJson['provinceCode'])#获取执行耗时event.set('callTime',logInfoJson['callTime'])#获取接口编码event.set('serverCode',logInfoJson['serverCode'])#获取请求ipevent.set('reqIp',logInfoJson['reqIp'])#获取渠道event.set('channle',logInfoJson['reqMessage']['channel'])#获取返回报文event.set('respMessage',logInfoJson['respMessage'].to_json)#获取请求报文event.set('reqMessage',logInfoJson['reqMessage'].to_json)if(loginfo.include?'errorInfo')event.set('errorInfo',logInfoJson['errorInfo'])end#设置标示位event.set('tags','log_success')end#解析xml格式日志def parseXmlLog(event,logdata)#截取流水号字段if (logdata.include?'transactionID') && (logdata.include?'businessNumber')transactionID=logdata[(logdata.index('transactionID')+16)...(logdata.index('businessNumber')-3)]event.set('transactionID',transactionID)#根据流水号判断渠道if(logdata.include?'Channel')channle=logdata[(logdata.index('')+9)...(logdata.index(' '))]event.set('channle',channle)end#截取返回报文if (logdata.include?'respMessage')respMessage=logdata[(logdata.index('respMessage')+14)...(logdata.index('reqMessage')-3)]event.set('respMessage',respMessage)end省略部分代码 ................#设置标示位event.set('tags','log_success')endenddef filter(event)#取出日志信息logdata=event.get('message')#如果日志不是短信日志,缓存监控日志,缓存日志 Access nodechangedif (logdata.include?'reqMessage' )#解析日志级别和请求时间,并保存到event对象中logleve=logdata[(logdata.index('[')+1)...logdata.index(']')]event.set('logleve',logleve)event.set('requestTime',logdata[0,logdata.index(' - [')])#如果是rest接口json日志if(logdata.include?'restJson')parseJsonLog event,logdataelseparseXmlLog event,logdataendendreturn [event]end
以上就是"logstash的ruby模块怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
日志
知识
篇文章
内容
函数
报文
时候
格式
流水
流水号
模块
代码
字段
对象
接口
方法
渠道
源码
缓存
编码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技
国智互联网科技
互联网科技财经
互联网巨头反垄断金融科技
互联网科技战争
喔噻互联网科技
凡科互联网科技
丰台科技园 互联网
猫创互联网科技
上海亿帐通互联网科技
云创客互联网科技公司
互联网为啥属于高科技
深圳艾果互联网通讯科技
威龙国际互联网科技公司
中国互联网有什么科技
互联网营销推广黑科技
互联网科技股为什么大涨
广州燕处互联网科技有限公司
吉林省码上互联网科技电话
互联网科技的前景
小马过河互联网科技
奔汉互联网科技
科技赋能互联网健康
互联网软件和科技
江阴互联网智能科技产品进口
中国互联网公司排名锤子科技
徐州市互联网科技有限公司
半导体是互联网高科技吗
广州梦谷互联网科技有限公司领导
美国五大互联网科技公司市值多少