news 2026/4/26 0:29:33

日志平台架构设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
日志平台架构设计

系列导读:本篇将深入讲解日志平台的架构设计与核心实现。


文章目录

    • 目录
    • 一、日志平台概述
      • 1.1 日志类型
      • 1.2 日志平台功能
    • 二、架构设计
      • 2.1 整体架构
      • 2.2 技术选型
    • 三、ELK 实战
      • 3.1 Filebeat 配置
      • 3.2 Logstash 配置
      • 3.3 Docker Compose 部署
    • 四、最佳实践
      • 4.1 日志规范
      • 4.2 日志格式
      • 4.3 告警配置
    • 总结

目录

  • 一、日志平台概述
  • 二、架构设计
  • 三、ELK 实战
  • 四、最佳实践
  • 总结

一、日志平台概述

1.1 日志类型

┌─────────────────────────────────────────────────────────────┐ │ 日志类型 │ ├─────────────────────────────────────────────────────────────┤ │ 📝 应用日志:业务逻辑日志 │ │ 🔧 系统日志:操作系统日志 │ │ 🌐 访问日志:HTTP 请求日志 │ │ 🐛 错误日志:异常堆栈日志 │ │ 📊 审计日志:操作审计日志 │ └─────────────────────────────────────────────────────────────┘

1.2 日志平台功能

功能说明
日志采集收集各来源日志
日志存储持久化存储
日志检索快速查询
日志分析统计分析
告警通知异常告警

二、架构设计

2.1 整体架构

┌─────────────────────────────────────────────────────────────┐ │ 日志平台架构 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 应用服务 ──► Filebeat ──► Kafka ──► Logstash ──► ES │ │ │ │ │ │ Kibana ◄───────────────────────────────────────────────── │ │ │ └─────────────────────────────────────────────────────────────┘

2.2 技术选型

组件说明
Filebeat轻量级日志采集
Kafka消息队列缓冲
Logstash日志处理转换
Elasticsearch日志存储检索
Kibana可视化分析

三、ELK 实战

3.1 Filebeat 配置

# filebeat.ymlfilebeat.inputs:-type:logenabled:truepaths:-/var/log/app/*.logfields:app:order-serviceenv:prodfields_under_root:trueoutput.kafka:hosts:["kafka1:9092","kafka2:9092"]topic:"logs"partition.round_robin:reachable_only:truerequired_acks:1

3.2 Logstash 配置

# logstash.confinput{kafka{bootstrap_servers=>"kafka1:9092"topics=>["logs"]group_id=>"logstash"}}filter{grok{match=>{"message"=>"%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}"}}date{match=>["timestamp","ISO8601"]}if[level]=="ERROR"{mutate{add_tag=>["error"]}}}output{elasticsearch{hosts=>["es1:9200","es2:9200"]index=>"logs-%{[app]}-%{+YYYY.MM.dd}"}}

3.3 Docker Compose 部署

version:'3'services:elasticsearch:image:elasticsearch:8.10.0environment:-discovery.type=single-node-xpack.security.enabled=falseports:-"9200:9200"volumes:-es-data:/usr/share/elasticsearch/datakibana:image:kibana:8.10.0ports:-"5601:5601"environment:-ELASTICSEARCH_HOSTS=http://elasticsearch:9200depends_on:-elasticsearchlogstash:image:logstash:8.10.0volumes:-./logstash.conf:/usr/share/logstash/pipeline/logstash.confdepends_on:-elasticsearchvolumes:es-data:

四、最佳实践

4.1 日志规范

// 日志规范示例@Slf4j@ServicepublicclassOrderService{publicOrdercreateOrder(OrderDTOdto){// 入口日志log.info("创建订单开始, userId={}, items={}",dto.getUserId(),dto.getItems());try{Orderorder=doCreate(dto);// 成功日志log.info("创建订单成功, orderId={}",order.getId());returnorder;}catch(Exceptione){// 错误日志(包含关键参数)log.error("创建订单失败, userId={}, error={}",dto.getUserId(),e.getMessage(),e);throwe;}}}

4.2 日志格式

{"timestamp":"2024-01-01T10:00:00.000+08:00","level":"INFO","traceId":"abc123","spanId":"def456","app":"order-service","host":"192.168.1.100","thread":"http-nio-8080-exec-1","class":"com.example.OrderService","message":"创建订单成功","context":{"userId":"1001","orderId":"2001"}}

4.3 告警配置

# Kibana 告警规则rules:-name:"错误日志告警"type:"frequency"index:"logs-*"filter:-term:level:"ERROR"timeframe:minutes:5num_events:10alert:-"email"email:-"ops@example.com"

总结

日志平台概述:日志类型、核心功能
架构设计:整体架构、技术选型
ELK 实战:Filebeat、Logstash、Docker 部署
最佳实践:日志规范、格式、告警

本系列完结


作者:刘~浪地球
系列:技术选型与实战(五)
更新时间:2026-04-25

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 0:27:13

AI 英语学习智能体的功能

针对 AI 英语学习智能体的功能设计,为了实现从“知识输入”到“能力输出”的闭环,可以将功能划分为五个核心维度。这种设计不仅涵盖了听说读写,还通过底层数据流将各个孤岛连接起来。1. 代理式沉浸口语导师这是智能体的核心交互入口&#xff…

作者头像 李华
网站建设 2026/4/26 0:22:26

NVIDIA Nemotron如何优化RAG系统的查询重写技术

1. RAG系统面临的挑战与NVIDIA Nemotron的解决方案 检索增强生成(RAG)系统在实际应用中面临的核心难题是用户查询的模糊性和隐含意图。当用户提出"告诉我NVIDIA NeMo模型训练的最新更新"这样的问题时,系统很难准确判断用户真正关心…

作者头像 李华
网站建设 2026/4/26 0:19:19

320hz显示器品牌推荐:微星MAG274QPF黑刃凭原生320Hz领跑赛道

随着全球电竞硬件进入 300Hz 的极速竞技时代,玩家对显示设备物理规格的筛选标准正经历系统性重构。在近期关于 320hz显示器品牌 的选购研判中,微星(MSI)推出的 MAG 274QPF X32 黑刃 凭借其320Hz 的超高刷新率与物理响应链路&#…

作者头像 李华