ELK日志采集实践

一 日志收集设计

1.1 背景

​ 目前公司业务量增大、项目增多、并且项目中错误的信息越来越难以排查,以前排查问题的方式是去服务器把日志文件拉下来,然后再检查日志文件关于报错的地方。利用这种方式大大延缓了开发效率,并对团队协作效率产生了较大的影响。解决此问题,应该是公司趋于强大的必经之路。那么如何在不借助其他人力量的时候,通过日志快速定位问题和解决问题呢?

​ 在经过公司多次组织和相关人士的深入调研之下,通过各方资料以及对开源日志处理方案的对比与学习,终于总结出了一套适用于公司内部日志收集的方案。

​ 由上可知,当前我们的日志方案主要解决的难题是利用日志的价值,快速发现问题,节约沟通成本并提高团队协作效率,同时也是公司发展技术栈的一种完善和延伸。

1.2 整体架构

在这里插入图片描述
filebeat是一个轻量级的日志数据采集器,作为服务器上的代理进行安装,filebeat监控特定目录或者特定日志文件,并将内容输出到kafka集群。filebeat以tail的方式,在prospector、harvester组件的共同作用下,既能保证日志快速获取,又能保证文件的状态、保证日志能够至少被输出过一次。

kafka消息队列集群,用来持久化存储数据,保证数据并行处理,并且kafka有较高的性能和不错的横向扩展性,能在每天100w以上数据量的情况下提高整体的性能。

logstash是一款功能强大的数据处理工具,能够实现数据输入,格式化处理,数据输出等功能。logstash默认使用内存队列接受数据并处理,会占用大量cpu和内存资源,重启情况下可能会发生数据丢失情况。logstash也提供了持久化队列的方式保存 可配置量的数据大小,但是性能会有所下降。

​ **Elasticsearch(ES)**是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。

二 日志收集注意事项

2.1 数据源格式

​ 项目都是springboot的项目,集成了log4j2统一定义日志的格式,配置如下

......
<Properties>
    <Property name="baseDir">baseDir</Property>
    <Property name="pattern">%d %p %c.%M:%L [%t] [owinfo-ewtp-core-business] %m%n</Property>
    <Property name="operationDir">operationDir</Property>
</Properties>
......

​ 日志打印出来的格式

2019-12-12 15:07:24,621 INFO com.owinfo.ewtp.outbound.controller.WayBillController.listPage:63 [http-nio-5005-exec-1]  ===> 类型:清单总分单管理|模块:清单总分单列表查询|描述:执行清单总分单查询成功|参数:WayBillHeadQuery(super=PageParam(page=1, pageSize=10), preNo=null, loctNo=null, voyageNo=null, copNo=null, billNo=null, agentName=null, logisticsName=null, returnStatus=A, startDate=null, endDate=null, type=0)|结果:成功

2.2 logstash配置

​ 首先在kibana页面上写好日志分割的grok表达式,分割的目的见下图

在这里插入图片描述
​ 只要再在logstash中配置对logInfo的分割,就能得到我们想到的字段,logstash配置如下

input{
     
   kafka{
   
        codec => json {
   
                        charset=>"UTF-8"
                }
        auto_offset_reset => "earliest"
        topics => ["ewtp-operation-log"]
        consumer_threads => 3
        group_id => "ewtp-operation-log-consmer-group"
        bootstrap_servers 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值