微服务日志收集方案

微服务日志收集方案

背景

公司内部使用的是springcloud,随着业务逐步扩大,微服务数据也逐步增多,运行平台不仅涉及到腾讯云,超融合,微服务散落在不同的机器上,并且都是部署在docker环境中,日志的查找对于开发运维人员来说,十分困难,还是要进行日志的统一收集管理,方便排查问题,提高效率。

设计思路

在网上看了一些思路,大体差不多,没有说哪个是最好的,主要是适合自己的,就是看下自己的资源情况,这里说的资源情况,不是说服务器,也包括自身所处的环境和技术条件。打个比方,有个方案是使用kubernetes的pod,创建服务的伴生容器filebeat来实时抽取日志。但是公司使用的云平台,用的是腾讯云,或者合作产商的平台,没能力去做自定义的修改设计,只能从基础镜像入手。考虑在服务容器中安装轻量的filebeat进行日志抽取。

架构图

在这里插入图片描述
以上这张图画的比较简单,但是也足够表达整个采集流程:

  1. 将filebeat安装到基础镜像中 ,因此而构建的镜像就包含了filebeat,实时采集服务日志到kafka集群中;
  2. logstash可以安装好必要插件,就可以从kafka的topic中读取日志数据,可以按需配置过滤条件;
  3. 过滤完成后将日志数据发送至elasticsearch中进行存储;
  4. 最后通过kibana来检索日志信息,其中的计算都是通过es的;

整理流程比较简单,但是具体实施还是有蛮多细节的,包括后续该怎么很好的使用日志检索都是需要去研究,因为刚出来,很多开发人员就觉得,查个日志很麻烦,不像linux下敲几个命令就可以出来了。

搭建流程

下面主要是做些简单记录,并不是整个搭建手把手的细节,主要给自己做个笔记:
1.下载filebeat,修改配置文件filebeat.yml,配置filebeat的采集日志路径,和写入kafka集群的基本配置
在这里插入图片描述
图中可以看到,我都以环境变量的形式填写,其中我都变量都些在dockerfile中,目的是在云平台可以动态配置。其中重点是topic配置也是动态的,每个服务都要独立的topic,动态的依据是脚本自动识别服务jar包名.。
2.制作完基础镜像后,构建的服务镜像启动后就会采集对应路径的日志信息,在kafka就可看到对应信息,现在需要配置logstash,这里有个注意点,我们需要根据不同的topic,因此来写入es中的不同索引。所以可以模糊匹配filebeat_前缀的topic,写入相同名称的index中。

input {
  kafka {
    bootstrap_servers => ["xxx.xxx.xxx.xxx:9092,xxx.xxx.xxx.xxx:9092,xxx.xxx.xxx.xxx:9092"]
    topics_pattern => "filebeat_.*"
    auto_offset_reset => "latest"
    decorate_events => true
    consumer_threads => 5
    codec => "json"
  }
}
output {
  elasticsearch {
    action => "index"
    hosts => ["xxx.xxx.xxx.xxx:9200"]     # 定义es服务器的ip
    index => "%{[@metadata][kafka][topic]}-%{+YYYY.MM.dd}"  # 定义索引
  }
}

3.上一步完成后,可以在es界面中可以查询到对应的索引数据
4.kibana创建对应的索引:管理-索引模式-创建索引模式,就可以检索到对应的日志信息了

当然,这些都是基础部分,比较简单,难得是怎么把平台用起来,数据怎么应用起来,还有蛮长路要走。
常见问题
1.每次容器启动,都会重新采集,从日志开头读取,如何获取最新日志即可?
在filebeat配置tail_files: true
2.如果需要filebeat记住采集位置,需要将filebeat中记录文件挂载出来,这样每次容器重启得时候,就会继续上次采集的位置继续。具体为filebeat安装目录下的data/registry/data.json。相反的,如果需要重新读取,可以清除该文件。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值