微服务业务监控和行为分析怎么做?试试日志埋点

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 互联网公司一般都会有专门的数据团队对公司的一些业务指标负责;为了拿到这些基本的业务指标,一般也要工程团队去配合做一些数据采集工作,于是埋点诞生了。

file

一、说明

互联网公司一般都会有专门的数据团队对公司的一些业务指标负责;为了拿到这些基本的业务指标,一般也要工程团队去配合做一些数据采集工作,于是埋点诞生了。
 

埋点的方式有很多种,本文主要介绍 日志埋点 这种方式以及实现思路和案例。

日志埋点 就是通过程序打印 log 日志的方式进行业务/行为数据的记录

 

二、总体架构

file

通过 日志埋点 来实现业务监控和行为分析主要需要以下4个步骤

  1. 数据生成(埋点)
  2. 数据收集
  3. 数据解析(结构化)
  4. 数据落盘
  5. 数据使用(展示/分析)

 

三、方案说明

3.1. 数据生成

日志数据的生成直接使用 Logback 等日志框架就可以了,可以自己封装公共方法、aop、注解等方式来生成指定的埋点日志

但是为了便于后面的数据解析,日志数据需要规范先行

  1. 所有的埋点日志必需约定好统一的格式,例如:{时间}|{来源}|{对象id}|{类型}|{对象属性(以&分割)}

按上面的格式生成的日志为:
2019-11-07 10:32:01|api-gateway|1|request-statistics|ip=171.221.203.106&browser=CHROME&operatingSystem=WINDOWS_10

  1. 避免埋点的日志文件和系统本身输出的日志混淆
    file

埋点的日志输出的目录、文件等需要和应用本身的日志分离,通过 Logback 的配置就能实现

 

埋点案例
file

生成日志
file

网关埋点用户请求

 

3.2. 数据收集

关于日志数据的收集可选择的中间件比较多,除了图中的 FileBeat 之外还有 FlumeFluentdrsyslog 等;需要每台服务器都部署一个收集中间件。

每台服务器部署一个就行了,就算一台服务器中启了多个微服务也是可以一齐收集

PS:日志收集后面的 消息队列 并不是必需的可以去掉,但是增加 消息队列 后有以下两个优点

  1. 削峰填谷:减轻后面日志解析的压力
  2. 数据共享:日志数据除了提供给日志系统之外,可以增加消费端的同时提供给其他地方使用,如流计算等

 

3.3. 数据解析

使用 Logstashgrok表达式解析日志数据并结构化,以上面的日志数据为例

2019-11-07 10:32:01|api-gateway|1|request-statistics|ip=171.221.203.106&browser=CHROME&operatingSystem=WINDOWS_10

结构化后的日志数据为:

{
    timestamp: '2019-11-07 10:32:01',
    appName: 'api-gateway',
    resouceid: '1',
    type: 'request-statistics',
    ip: '171.221.203.106',
    browser: 'CHROME',
    operatingSystem: 'WINDOWS_10'
}

 

3.4. 数据落盘

通过 Logstash 能自动创建 Elasticsearch 索引并以天为单位分片
file

可以通过索引模板来指定每个字段的类型和分词器等属性

 

3.5. 数据使用

日志数据落盘到 Elasticsearch 后,就可以通过聚合查询等方式实时显示监控数据或者分析日志数据

监控案例
file

聚合查询逻辑可参考 https://gitee.com/zlt2000/microservices-platform

 

四、总结

日志埋点 只是其中一种埋点手段而已,优点是系统无入侵且灵活;日志收集、解析、落盘等都可以灵活搭配选择不同的中间件,并且不需要修改源系统的代码;并且可以方便对接其他分析平台(例如: 大数据平台)

PS:业务监控是否可以不做日志埋点,直接查询业务的数据库呢?(不建议这样做)

  1. 使用日志埋点能实现监控数据与业务数据分离,监控平台不会影响或增加业务数据库的压力
  2. 使用日志埋点能方便实现实时业务数据预警

举个栗子:日志收集后面添加流计算中间件,计算某个时间窗口内优惠卷日志的数量或者金额大于某个阀值,则发出预警

 
扫码关注有惊喜!

file

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
1月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
259 122
基于docker搭建监控系统&日志收集
|
1月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
135 1
日志收集和Spring 微服务监控的最佳实践
|
21天前
|
存储 缓存 监控
用 C++ 红黑树给公司电脑监控软件的日志快速排序的方法
本文介绍基于C++红黑树算法实现公司监控电脑软件的日志高效管理,利用其自平衡特性提升日志排序、检索与动态更新效率,并结合实际场景提出优化方向,增强系统性能与稳定性。
50 4
|
2月前
|
存储 Prometheus 监控
从入门到实战:一文掌握微服务监控系统 Prometheus + Grafana
随着微服务架构的发展,系统监控变得愈发重要。本文介绍如何利用 Prometheus 和 Grafana 构建高效的监控系统,涵盖数据采集、存储、可视化与告警机制,帮助开发者提升系统可观测性,及时发现故障并优化性能。内容涵盖 Prometheus 的核心组件、数据模型及部署方案,并结合 Grafana 实现可视化监控,适合初学者和进阶开发者参考实践。
373 6
|
25天前
|
监控 Kubernetes Java
使用 New Relic APM 和 Kubernetes Metrics 监控 EKS 上的 Java 微服务
在阿里云AKS上运行Java微服务常遇性能瓶颈与OOMKilled等问题。本文教你通过New Relic实现集群与JVM双层监控,集成Helm部署、JVM代理注入、GC调优及告警仪表盘,打通从节点资源到应用内存的全链路观测,提升排障效率,保障服务稳定。
120 1
|
26天前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
|
6月前
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
6月前
|
监控 测试技术 Go
告别传统Log追踪!GOAT如何用HTTP接口重塑代码监控
本文介绍了GOAT(Golang Application Tracing)工具的使用方法,通过一个Echo问答服务实例,详细展示了代码埋点与追踪技术的应用。内容涵盖初始化配置、自动埋点、手动调整埋点、数据监控及清理埋点等核心功能。GOAT适用于灰度发布、功能验证、性能分析、Bug排查和代码重构等场景,助力Go项目质量保障与平稳发布。工具以轻量高效的特点,为开发团队提供数据支持,优化决策流程。
386 90
|
6月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
506 117
|
3月前
|
存储 监控 Shell
SkyWalking微服务监控部署与优化全攻略
综上所述,虽然SkyWalking的初始部署流程相对复杂,但通过一步步的准备和配置,可以充分发挥其作为可观测平台的强大功能,实现对微服务架构的高效监控和治理。尽管未亲临,心已向往。将一件事做到极致,便是天分的展现。

热门文章

最新文章