• springboot整合ELK


    ELK是一种强大的分布式日志管理解决方案,它由三个核心组件组成:

    Elasticsearch:作为分布式搜索和分析引擎,Elasticsearch能够快速地存储、搜索和分析大量的日志数据,帮助用户轻松地找到所需的信息。

    Logstash:作为数据处理管道,Logstash能够从各种来源收集日志数据,并进行过滤、转换和发送到Elasticsearch等目标存储中。

    Kibana:作为Web界面,Kibana能够帮助用户可视化和分析日志数据,创建仪表板和报表,以便更好地理解和监控业务中的日志信息。

    ELK能够帮助业务实现日志数据的集中管理、快速搜索和分析,从而提高故障排查的效率,优化系统性能,以及发现潜在的安全威胁。通过ELK,业务可以更好地利用日志数据来支持决策和监控业务运营。

    下面,本文会介绍ELK的使用

     配置maven

    1. <dependency>
    2. <groupId>net.logstash.logbackgroupId>
    3. <artifactId>logstash-logback-encoderartifactId>
    4. <version>5.3version>
    5. dependency>

     打印日志的时候可以使用lombok或其他框架,但是注意一下之前使用log攻击的bug,尽量跳过这些版本,注意,低版本的springboot默认的日志库有问题。

    配置文件 

    1. logging:
    2. config: ./config/logback-spring.xml

     日志配置文件模板

    1. <configuration>
    2. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    3. <encoder>
    4. <pattern>%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) (%file:%line\)- %m%npattern>
    5. <charset>UTF-8charset>
    6. encoder>
    7. appender>
    8. <appender name="syslog" class="ch.qos.logback.core.rolling.RollingFileAppender">
    9. <File>log/ant-back.logFile>
    10. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    11. <fileNamePattern>log/ant-back.%d.%i.logfileNamePattern>
    12. <maxHistory>120maxHistory>
    13. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    14. <maxFileSize>100MBmaxFileSize>
    15. timeBasedFileNamingAndTriggeringPolicy>
    16. rollingPolicy>
    17. <encoder>
    18. <pattern>
    19. %d %p (%file:%line\)- %m%n
    20. pattern>
    21. <charset>UTF-8charset>
    22. encoder>
    23. appender>
    24. <appender name="logstash"
    25. class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    26. <destination>ip:4560destination>
    27. <encoder
    28. class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
    29. <providers>
    30. <timestamp>
    31. <timeZone>UTCtimeZone>
    32. timestamp>
    33. <pattern>
    34. <pattern>
    35. {
    36. "tags": "java",
    37. "thread": "%thread",
    38. "logLevel": "%level",
    39. "message": "%message",
    40. "class": "%logger{40}",
    41. "serviceName": "asr_hot_word",
    42. "trace": "%X{X-B3-TraceId:-}",
    43. "span": "%X{X-B3-SpanId:-}",
    44. "exportable": "%X{X-Span-Export:-}",
    45. "pid": "${PID:-}"
    46. }
    47. pattern>
    48. pattern>
    49. providers>
    50. encoder>
    51. appender>
    52. <root level="INFO">
    53. <appender-ref ref="STDOUT"/>
    54. <appender-ref ref="logstash" />
    55. root>
    56. configuration>

  • 相关阅读:
    解决跨域问题的FastAPI应用及常见报错解析
    安全专家讲述Web 渗透测试怎么做
    Linux查看日志的几种命令(tail、cat、grep、head、sed...)
    卧式钢筋切割机设计
    QT_字符串相关操作_QString
    js_for循环实操
    java计算机毕业设计企业信息安全评价系统源码+系统+mysql数据库+lw文档
    美团2025春招第一次笔试题
    Python之猜数字游戏
    01背包代码模板
  • 原文地址:https://blog.csdn.net/weixin_44808225/article/details/134315795