ELK-logstash在搬运日志的时候会出现多行日志,普通的搬运会造成保存到ES中日志一条一条的保存,很丑,而且不方便读取,logstash-filter-multiline可以解决该问题。

接下来演示下问题:
普通日志如下:

-- ::41.375 [http-nio--exec-] ERROR c.h.h.control.**-自定义的msg
java.lang.ArithmeticException: / by zero
at com.hikvision.hikserviceassign.control.ServiceMonitorManageController.reAssign(ServiceMonitorManageController.java:)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:)
at java.lang.reflect.Method.invoke(Method.java:)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:)
.....省略

记录到es的记录则是:

-- ::41.375 [http-nio--exec-] ERROR c.h.h.control.**-自定义的msg
-- ::41.375 [http-nio--exec-]java.lang.ArithmeticException: / by zero
-- ::41.375 [http-nio--exec-]at com.hikvision.hikserviceassign.control.ServiceMonitorManageController.reAssign(ServiceMonitorManageController.java:)
-- ::41.375 [http-nio--exec-]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-- ::41.375 [http-nio--exec-]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:)
-- ::41.375 [http-nio--exec-]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:)
-- ::41.375 [http-nio--exec-]at java.lang.reflect.Method.invoke(Method.java:)
-- ::41.375 [http-nio--exec-]at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:)
.....省略

我们希望的结果肯定是这样的

接下来就是安装logstash-filter-multiline,进入logstash/bin目录下使用命令

$ ./logstash-plugin install logstash-filter-multiline

如果报错 certificate verify failed 则在install 后面加上 --no-verify

安装成功后,增加config,demo如下:

input {
tcp {
port =>
codec => json
}
} filter {
multiline {
pattern
=> "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
negate => true
what => "previous"

}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
index => "es-message-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}

最新文章

  1. 快速开发基于 HTML5 网络拓扑图应用
  2. Oracle OEM
  3. 基于ASP.NET MVC定时执行任务调度
  4. 不要随随便便的distinct和order by
  5. Javascript自定义类
  6. Vacations
  7. #pragma comment(转)
  8. AE、AS调用时用代码提供许可(不需要添加LicenseControl控件)
  9. 下载带有kali linux系统的VMware如何打开虚拟机?
  10. Restful API设计规范及实战
  11. 数据库-mysql语句-查
  12. 一位前辈的博客,收获颇丰,包括Android、Java、linux、前端、大数据、网络安全等等
  13. [leetcode.com]算法题目 - Length of Last Word
  14. SpringBoot整合Mybatis之进门篇
  15. Java快速排序和归并排序详解
  16. Flutter 中 ListView 的使用
  17. Linux shell(3)
  18. JavaWeb温习之Session对象
  19. LeetCode741. Cherry Pickup
  20. Vue-Router的使用(一)

热门文章

  1. Docker入门系列8
  2. x86 的 TSS 任务切换机制
  3. 【转】Android中的Apk的加固(加壳)原理解析和实现
  4. 大白第一章第四节dp例题
  5. CentOS6.5安装MySQL5.6 过程记录
  6. CNN延拓至 复数域
  7. 我的Android进阶之旅------>Android如何去除GridView的按下或点击选中后的背景效果
  8. hdu5325 树的思维题
  9. PHP通过session id 实现session共享和登录验证的代码
  10. 【zabbix】zabbix3.0部署手册