使用Logz.io使记录Spring Boot应用程序更加轻松和快捷

这篇博客文章是由Julien Dubois(Microsoft)和Charlie Klein(Logz.io)共同撰写的,目的是让Spring Boot用户更好地理解使用Logz.io之类的日志提取和分析工具的好处

日志在经典Spring Boot应用程序中的工作方式

Spring Boot应用程序通常使用Logback( 官方文档 )或Log4J 2( 官方文档 )来管理应用程序日志。

通常根据每个项目或公司的使用情况来修改此配置,并且遵循“ 十二要素应用程序”一章中有关记录日志并将所有内容输出到控制台的惯例(也是一种好的做法)。

高级用户(例如使用JHipster )通常使用一些定制的Logback版本,该版本通常以三种不同的方式进行配置:

配置日志很棒,但是一旦将日志发送到控制台,真正有趣的工作就开始了:您需要一个系统来汇总和分析日志! 在本文中,我们将使用Logz.io了解需要配置的内容,最重要的是,我们将从这种解决方案中获得什么好处。

将日志传送到Logz.io

将日志传送到Logz.io的第一步是将Logz.io依赖项添加到您的Maven pom.xml文件中:

<dependency>
    <groupId> io.logz.logback </groupId>
    <artifactId> logzio-logback-appender </artifactId>
    <version> 1.0.22 </version>
</dependency>

然后,您需要配置src/main/resources/logback-spring.xml文件以使用此库:

<configuration>
    <!-- Use shutdownHook so that we can close gracefully and finish the log drain -->
    <shutdownHook class= "ch.qos.logback.core.hook.DelayingShutdownHook" />
    <appender name= "LogzioLogbackAppender" class= "io.logz.logback.LogzioLogbackAppender" >
        <token><your-logz-io-token></token>
        <logzioUrl> https:// <your-logz-io-listener-host> :8071 </logzioUrl>
        <logzioType> java-application </logzioType>
        <filter class= "ch.qos.logback.classic.filter.ThresholdFilter" >
            <level> INFO </level>
        </filter>
    </appender>

    <root level= "debug" >
        <appender-ref ref= "LogzioLogbackAppender" />
    </root>
</configuration>

确保日志进入平台的一个好方法是在Logz.io平台中打开“ Live Tail”选项卡。 按下play后,您应该会在应用程序中看到日志流。 如果不这样做,请访问Logz.io日志传送故障排除页面

如果您想了解更多信息,则应该在https://docs.microsoft.com/zh-cn/azure/java/java-get-started-上阅读此更深入的教程(由Julien Dubois共同编写)。 with-logzio

使用Logz.io分析日志

将您的日志发送到Logz.io之后 ,有趣的部分开始了。

Logz.io提供ELK Stack和Grafana(世界上最流行的开源监视解决方案)作为一项完全托管的服务,因此工程师可以使用他们知道的开源,而无需自己构建或维护可伸缩的日志记录或度量标准管道。 用户可以查询和可视化其日志和指标,以监视生产问题,安全事件,用户活动以及更多用户案例。 在本节中,我们将重点介绍Logz.io的日志记录功能。

Logz.io用户在功能强大的Kibana版本(“ ELK堆栈”中的“ K”)上与日志进行交互,从而为工程师提供了广泛的灵活性,可将其日志数据切片和切块。 Logz.io用户受益于Kibana的完整功能以及其他高级分析功能,这些功能使Kibana更快,更集成且更易于使用。 以下教程将在上方工具栏的“ Kibana”选项卡中进行(框A)。

打开Kibana后,您可以查看您的环境生成的所有日志。 根据下面的查询(框B),“ service-10”在过去2天内生成了170万条日志。

基巴纳

显然,不可能对日志列表进行排序以识别生产问题或监视用户活动。 单击“模式”选项卡(方框C)将类似的日志组聚集在一起,因此您可以快速了解服务正在生成哪种日志数据,而无需滚动浏览整个日志列表。 对于每个模式,您可以查看时间,计数,比率(属于该模式的日志百分比)以及模式本身。

在日志模式中滚动,您可以通过单击每个模式右侧的“过滤出”或“过滤入”按钮来快速查询最重要的日志数据(框D)。 在这种情况下,当我们向下滚动时,会发现一个指示“ SSL库错误”的模式,这显然值得研究。

打开SSL错误模式后,我们可以看到它被标记为“ Cognitive Insight”。 Cognitive Insights利用AI在诸如StackOverflow和GitHub之类的在线讨论论坛上交叉引用传入的日志,以识别您环境中的关键日志事件。

此功能可帮助我们在大海捞针中找到针头。 打开“数据洞察”后,我们会看到有关事件的上下文信息以及指向讨论SSL错误的论坛的链接。

见解

团队可以打开这些链接,以查看其他工程师如何解决该问题。

您可能想知道的有关此SSL错误的最后信息是它的起源。 换句话说,产生此问题的实际代码是什么? 要获取此信息,您可以转到右上角的“洞察”选项卡。

该图有助于我们将问题与特定部署相关联。 彩色线表示生产问题,灰色虚线表示最近的部署。 如您所见,直到12月4日下午3:20部署“更新人偶证书”之后,才出现由蓝点表示的SSL错误。 因此,我们可以得出结论,此部署导致SSL错误,因此可以快速解决。

图形

借助Cognitive Insights和在部署时间表上绘制问题的功能,您可以通过向工程师显示问题的根本原因和根源来与他们联系,以结束循环。

自己看看吧!

除了上面探讨的功能之外,您还可以监视Grafana上的指标,构建自己的Kibana可视化,设置警报以及做更多的事情。

了解更多关于Logz.io 这里或者自己尝试在这里

From: https://dev.to/azure/using-logz-io-to-make-logging-spring-boot-applications-easier-and-faster-4k7a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值