设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

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

 你头疼的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:\Users\Administrator\Desktop\performanceTrace.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 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读