• 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>

  • 相关阅读:
    04.Qt核心窗口基类QWidget
    R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、使用residuls函数从模型中提取每个样本点的残差值
    ROW_NUMBER ( )去重并根据条件保留数据--开窗函数使用
    【附源码】Python计算机毕业设计民宿预定管理系统
    mindspore1.5版本下能正常运行到了1.6‘_check_version.py’报错
    1年管理,涨薪70%,只因做好了这件常被忽略的事
    第八章 通过 REST 使用 Web 会话(Sessions)
    高级架构师都在读的10本Java实战书籍,Java开发进阶必备书单
    Anaconda安装及配置(详细版)
    socket报错:bind:address already in use
  • 原文地址:https://blog.csdn.net/weixin_44808225/article/details/134315795