Skip to content

可观测性技术实践分享会议纪要

会议信息

  • 会议时间:2025年12月26日 20:45-22:30
  • 会议形式:线上会议
  • 主讲人:wen-templari
  • 核心主题:可观测性技术实践(日志、指标、链路追踪)及相关工具栈分享

一、会议核心内容

(一)前置事项说明

  1. 补充DEV101会议缺失内容:因原会议音频缺失,已补充GitHub Education认证相关教程,工作流部分已有文档记录,无需重复整理。
  2. 会议准备:等待参会人员到齐后于21:00正式开始,期间协调解决了部分参会者麦克风静音、网络掉线等问题。

(二)可观测性核心技术分享

1. 日志(Log)

  • 定义:应用运行过程中输出的记录(含级别、参数、报错等信息),用于功能异常排查。
  • 关键流程
    • 采集:通过Vector工具捕捉Docker容器的标准输入输出(STDIO),支持文件路径读取。
    • 转换:通过Transform配置统一不同应用的日志格式。
    • 存储:发送至Loki,压缩体积并建立索引,提升查询效率。
    • 展示:通过Grafana面板可视化查询,支持按关键字、级别筛选。
  • 技术栈对比
    • Grafana Stack(Loki+Grafana):成本低、占用资源少,适合中小规模场景。
    • Elastic Stack(ELK:Logstash+Elasticsearch+Kibana):查询速度快,但内存占用高(需16G以上内存),适合大规模场景。
  • 实践工具:当前使用Grafana Cloud云服务(免费额度满足需求,限制3人组织成员)。

2. 指标(Metrics)

  • 定义:反映系统状态的量化数据(如CPU、内存占用、请求量、响应时间等),用于监控性能趋势。
  • 关键流程
    • 采集:通过Node Exporter采集服务器资源指标,暴露在9100端口供抓取。
    • 存储:使用Prometheus(时序数据库)定时拉取指标数据,支持历史趋势分析。
    • 展示:通过Grafana配置仪表盘,可视化指标变化(如请求字节数、HTTP状态码分布)。
  • 拓展应用:支持日志转指标(Log to Metrics),提取日志中不同级别(Info/Error/Debug)的条数作为时序数据,减少存储体积。
  • 替代工具:VictoriaMetrics(性能更优,功能与Prometheus一致)。
  • 实践场景:服务器资源监控、异常检测(基于历史数据预测阈值,超阈值触发报警)、投诉率等业务指标监控。

3. 链路追踪(Tracing)

  • 定义:追踪单个请求在分布式系统中的流转路径,用于复杂服务的问题定位。
  • 适用场景:多应用协同、负载均衡、分布式架构下的请求链路分析,可明确请求经过的中间件、服务实例及报错节点。
  • 实践示例:通过Traefik网关采集链路数据,展示请求从入口到最终服务的完整流程(含中间件处理、路径替换等步骤)。
  • 常用工具
    • OpenTelemetry:通用格式,支持多语言SDK,适配各类采集工具。
    • SkyWalking:适合Java应用,配置简单。
    • Tempo(Grafana生态):与现有栈兼容,用于链路数据存储与展示。
  • 核心价值:定位分布式系统中的故障节点,明确服务调用顺序与依赖关系,适配AB版本滚动升级等场景。

(三)工具栈与实践建议

数据类型采集工具存储工具展示工具
日志VectorLokiGrafana
指标Node ExporterPrometheus/VictoriaMetricsGrafana
链路追踪OpenTelemetry/SkyWalkingTempoGrafana
  • 入门优先级:先落地日志采集与指标监控,覆盖基础运维需求(如服务器资源、服务可用性)。
  • 工具选择:中小规模场景优先Grafana生态(Loki+Prometheus+Tempo),成本低且集成便捷。
  • 进阶应用:尝试异常检测、自动化扩容/报警,提升运维效率。

(四)延伸讨论与实操演示

  1. Cloudflare配置:演示域名托管、DNS解析、SSL证书配置流程,解决DDNS动态解析问题,说明令牌权限设置与多域名管理方法。
  2. GitHub Education认证:分享认证流程(教育邮箱注册、双因素认证、账单信息填写、手写学生证明上传),强调无需VPN即可通过AI审核。
  3. 自建服务经验:讨论openWRT固件升级、Docker容器运维、内存占用优化等实操问题,交流self-host服务的部署与监控心得。
  4. 行业实践交流:分享职场中运维工具使用、技术栈选择(如PHP、Node.js版本兼容问题)、on-call值班等经验。

二、后续行动计划

  1. 补充可观测性工具部署文档:整理Vector、Node Exporter、Prometheus等工具的安装配置步骤,共享至团队知识库。
  2. 完善Grafana公共监控页面:配置公开可访问的监控仪表盘,替代现有Uptime监控工具。
  3. 组织实操练习:针对日志采集与指标监控,安排团队成员在自有服务器上进行实践,后续会议分享成果。
  4. 确定下次分享主题:收集团队需求,选择分布式系统故障排查、AI辅助运维等方向开展下一次技术分享。

三、会议结束

  • 会议于22:30左右结束,部分参会者后续继续交流工具配置细节。