分布式微服务基于kafka日志收集方案

背景

随着单应用的拆分,微服务数量逐渐增长。不可避免的对运维工作产生爆发式的增长,而日志作为日常运维工作中必不可少的环节。由于微服务分布式部署造成日志分散,日志查询较为繁琐,故引出此需求。

需求

收集各个微服务中产生的日志,并将其通过可视化页面进行展示。

项目分解

一期工程

  • 日志的集中收集工作
  • 日志可视化搜索
  • 制定简单日志规范,可按照应用+traceID+业务+日志内容(可能还会包含其他基础数据,以具体设计方案为准)
    • traceId单应用单实例内日志追踪ID
    • 日志内容暂不拆分具体业务类型下的日志格式

方案

在这里插入图片描述

  1. 每个微服务中增加向kafka推送日志模块,具体通过扩展logback的Appender进行实现,通过MDC增加traceID以及一些其他信息。
  2. logstash读取kafka数据,过滤信息推送ES。

日志规范设计

基于JSON文本
当前为V1.0字段定义格式

字段名称 字段类型 说明
version String 版本号
app_id String 应用ID
由日志配置系统分配
service_name String 服务名称
send_time Date 日志写出时间
格式:yyyy-MM-dd HH:mm:ss,SSS
hostname String 主机名称
trace_id String 日志追踪ID
bus_type String 业务类型
bus_version String 业务类型版本号
payload String 日志内容

ELK安装

版本:7.9.3

ES docker安装

参考文档

  1. 搜索仓库镜像
docker pull elasticsearch:7.9.3

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elastics
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值