重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
今天小編給大家分享一下logstash的ruby模塊怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
成都創新互聯公司-專業網站定制、快速模板網站建設、高性價比銅鼓網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式銅鼓網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋銅鼓地區。費用合理售后完善,10年實體公司更值得信賴。
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'])
#獲取請求ip
event.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')
end
end
def filter(event)
#取出日志信息
logdata=event.get('message')
#如果日志不是短信日志,緩存監控日志,緩存日志 Access nodechanged
if (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,logdata
else
parseXmlLog event,logdata
end
end
return [event]
end
以上就是“logstash的ruby模塊怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創新互聯行業資訊頻道。