加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

你头疼的ELK难题,本文几乎都解决了

发布时间:2019-03-23 04:12:43 所属栏目:Windows 来源:alonghub
导读:副标题#e# 一、ELK实用知识点总结 1、编码转换问题 这个问题,主要就是中文乱码。 input中的codec=plain转码: codec=plain{ charset=GB2312 } 将GB2312的文本编码,转为UTF-8的编码。 也可以在filebeat中实现编码的转换(推荐): filebeat.prospectors: -in
副标题[/!--empirenews.page--]

 你头疼的ELK难题,本文几乎都解决了

一、ELK实用知识点总结

1、编码转换问题

这个问题,主要就是中文乱码。

input中的codec=>plain转码:

  1. codec => plain { 
  2.          charset => "GB2312" 

将GB2312的文本编码,转为UTF-8的编码。

也可以在filebeat中实现编码的转换(推荐):

  1. filebeat.prospectors: 
  2. - input_type: log 
  3.   paths: 
  4.     - c:UsersAdministratorDesktopperformanceTrace.txt 
  5.   encoding: GB2312 

2、删除多余日志中的多余行

  1. if ([message] =~ "^20.*- task request,.*,start time.*") {   #用正则需删除的多余行 
  2.             drop {} 
  3.     }  

日志示例:

  1. 2018-03-20 10:44:01,523 [33]DEBUG Debug - task request,task Id:1cbb72f1-a5ea-4e73-957c-6d20e9e12a7a,start time:2018-03-20 10:43:59   #需删除的行 
  2. -- Request String :  
  3. {"UserName":"15046699923","Pwd":"ZYjyh727","DeviceType":2,"DeviceId":"PC-20170525SADY","EquipmentNo":null,"SSID":"pc","RegisterPhones":null,"AppKey":"ab09d78e3b2c40b789ddfc81674bc24deac","Version":"2.0.5.3"} -- End 
  4. -- Response String :  
  5. {"ErrorCode":0,"Success":true,"ErrorMsg":null,"Result":null,"WaitInterval":30} -- End 

3、grok处理多种日志不同的行

日志示例:

  1. 2018-03-20 10:44:01,523 [33]DEBUG Debug - task request,task Id:1cbb72f1-a5ea-4e73-957c-6d20e9e12a7a,start time:2018-03-20 10:43:59 
  2. -- Request String :  
  3. {"UserName":"15046699923","Pwd":"ZYjyh727","DeviceType":2,"DeviceId":"PC-20170525SADY","EquipmentNo":null,"SSID":"pc","RegisterPhones":null,"AppKey":"ab09d78e3b2c40b789ddfc81674bc24deac","Version":"2.0.5.3"} -- End 
  4. -- Response String :  
  5. {"ErrorCode":0,"Success":true,"ErrorMsg":null,"Result":null,"WaitInterval":30} -- End 

在logstash filter中grok分别处理3行:

  1. match => { 
  2.     "message" => "^20.*- task request,.*,start time:%{TIMESTAMP_ISO8601:RequestTime}" 
  3. match => { 
  4.     "message" => "^-- Request String : {"UserName":"%{NUMBER:UserName:int}","Pwd":"(?<Pwd>.*)","DeviceType":%{NUMBER:DeviceType:int},"DeviceId":"(?<DeviceId>.*)","EquipmentNo":(?<EquipmentNo>.*),"SSID":(?<SSID>.*),"RegisterPhones":(?<RegisterPhones>.*),"AppKey":"(?<AppKey>.*)","Version":"(?<Version>.*)"} -- End.*"     
  5. match => { 
  6.     "message" => "^-- Response String : {"ErrorCode":%{NUMBER:ErrorCode:int},"Success":(?<Success>[a-z]*),"ErrorMsg":(?<ErrorMsg>.*),"Result":(?<Result>.*),"WaitInterval":%{NUMBER:WaitInterval:int}} -- End.*" 
  7. ... 等多行 

4、日志多行合并处理—multiline插件(重点)

示例:

①日志

  1. 2018-03-20 10:44:01,523 [33]DEBUG Debug - task request,task Id:1cbb72f1-a5ea-4e73-957c-6d20e9e12a7a,start time:2018-03-20 10:43:59 
  2. -- Request String :  
  3. {"UserName":"15046699923","Pwd":"ZYjyh727","DeviceType":2,"DeviceId":"PC-20170525SADY","EquipmentNo":null,"SSID":"pc","RegisterPhones":null,"AppKey":"ab09d78e3b2c40b789ddfc81674bc24deac","Version":"2.0.5.3"} -- End 
  4. -- Response String :  
  5. {"ErrorCode":0,"Success":true,"ErrorMsg":null,"Result":null,"WaitInterval":30} -- End 

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读