logstash的ruby模块怎么用
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,今天小编给大家分享一下logstash的ruby模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
深信服服务器带宽管理
网络技术知识集锦
试题软件开发
网络安全护苗安全网络课
东莞武夷山软件开发
数据库工具箱插件下载
实用网络技术配置指南
软件开发还是外包
mysql共享数据库
数据库基本语句中的常见符号
mysql当前数据库
哔哩漫游获取解析服务器
学生网络安全免费ppt
陕西方雨诚网络技术有限公司
mcgs组态环境实数数据库
学网络技术著名大学有哪些
怎么选 服务器
小米云控服务器区别
数据库需求分析师
山西学生网络技术服务价值
pc机与服务器
数据库实践周总结
cf手游服务器框架源码下载
海南软件开发工程师
利用计算机和网络技术
北京新华互联网科技有限公司
北京予怀网络技术有限公司
java实现多人聊天室数据库
思科网络技术学院理事会号码
一起发网络技术有限公司