主题切换
📊 ELK分布式日志管理系统 
📖 系统介绍 
TIP
ELK是一套强大的日志收集、分析和可视化解决方案,由Elasticsearch、Logstash和Kibana三个核心组件组成。
核心组件 
| 组件 | 功能描述 | 特点 | 
|---|---|---|
| Elasticsearch | 实时搜索和分析引擎 | 分布式存储、全文检索、实时分析 | 
| Logstash | 日志收集和处理工具 | 数据收集、转换、过滤、输出 | 
| Kibana | 数据可视化平台 | 图形化界面、数据展示、实时监控 | 
⚙️ 配置指南 
1. 基础配置 
在application.yml中配置ELK服务地址:
yaml
wueasy:
  elk: 
    url: elk.wueasy.com:5000    # ELK服务地址2. 日志配置 
在resources目录下创建logback-spring.xml配置文件:
xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <!-- 日志存储路径配置 -->
    <property name="LOG_HOME" value="./logs" />
    
    <!-- 应用名称和ELK地址配置 -->
    <springProperty scope="context" name="logName" source="spring.application.name" defaultValue="log"/>
    <springProperty scope="context" name="elkUrl" source="wueasy.elk.url" defaultValue=""/>
    <!-- 控制台输出配置 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d %-5level [%X{requestId} - %X{traceId} - %X{spanId}] [%thread] %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- Logstash输出配置 -->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>${elkUrl}</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
    <!-- 文件输出配置 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/${logName}.%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d %-5level [%X{requestId} - %X{traceId} - %X{spanId}] [%thread] %logger{36} - %msg%n</pattern>
        </encoder>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
    <!-- 日志级别配置 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <appender-ref ref="LOGSTASH" />
    </root>
</configuration>🚀 部署指南 
Docker部署(推荐) 
TIP
使用Docker部署ELK可以快速搭建完整的日志管理环境。
- 拉取镜像
 
bash
docker pull elasticsearch:7.17.3
docker pull logstash:7.17.3
docker pull kibana:7.17.3- 创建网络
 
bash
docker network create elk-network- 启动Elasticsearch
 
bash
docker run -d \
  --name elasticsearch \
  --net elk-network \
  -p 9200:9200 \
  -e "discovery.type=single-node" \
  elasticsearch:7.17.3- 启动Logstash
 
bash
docker run -d \
  --name logstash \
  --net elk-network \
  -p 5000:5000 \
  logstash:7.17.3- 启动Kibana
 
bash
docker run -d \
  --name kibana \
  --net elk-network \
  -p 5601:5601 \
  kibana:7.17.3💡 最佳实践 
1. 日志收集建议 
- 合理配置日志级别
 - 使用结构化日志格式
 - 添加关键业务标识
 
2. 性能优化 
- 配置合适的日志轮转策略
 - 设置适当的缓冲区大小
 - 定期清理过期日志
 
3. 监控建议 
- 配置日志告警阈值
 - 监控系统资源使用
 - 定期备份重要日志
 
🔍 常见问题 
连接失败排查
- 检查ELK服务地址配置
 - 验证网络连通性
 - 确认服务状态
 
日志丢失问题
- 检查磁盘空间
 - 验证日志配置
 - 确认写入权限