实操讲解:微服务运行日志采集(一)|学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 快速学习实操讲解:微服务运行日志采集(一)

开发者学堂课程【Elasticsearch 实战进阶营实操讲解:微服务运行日志采集(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/899/detail/14319


实操讲解:微服务运行日志采集(一)

Filebeat;微服务运行日志实时采集

在整个 elastic stack 技术站里面,File beat 现在已经成为日志文本采集的一个桥头堡吧,相比原有的 Linux 要清洁很多,而且运行速度快很多,而且,集成的更加优秀,可能在这块也有会遇到想用这个 note 的,本身阿元有事做采集非常好,但是他这个功能复杂,然后运行效率这方面不的这个 go 语言编写的 VB 的,所以现在 Linux 已经成为了这个领域的

首先之前把日志打印到文本机里面,默认使用 logback.spring.xml

logback.的配置

(?xml version-"1.0" encoding- "UTF-8" ?》

<configuration debug- "true" >

<property name - TApp. Mame" value-”servere1" 12

<contextName>${App_ Name}</contextName>

<springProfile name= "default" >

<property nane-"logging.path" value= "1og-file" />

</springProfile>

<appender name "Info" class-"ch. qos . logback. core .rolling . RollingFileAppender">

<filter class="ch.qos. logback. classic.filter. LevelFilter">

<level>INF0</level>

<onMatch>ACCEPT</onMatch>

4onMi snatch>DENY</ onMi smatch>

</filter>conMatch>ACCEPT</ 配置日志错误通过 arrey 来处理

<File>${logging . path}/${App_ Nane}/info. log</File>这个APP-Nane,就是配了一个属性应用程序名字。

假设我们的服务器上部署这个微服务的时候,那希望把很多日志写在同一个,目录夹是一样的,应用程序名字不一样就可以做一个区分做一个区分。

<rollingPolicy class-"ch. qos。logback . core . roll ing. T imeBasedRollingPolicy">

<FlleNamePattern>${1ogging . path}/${App. Name}/info . log .%d[{yyy -M dd}</FlleNamePattern>

<MaxHistory>7</MaxHistory>

</rollingPolicy>

<encoder class=" ch.qos. logback.classic。encoder. Patt ernL ayout Encoder" >

<pattern>%dy{yyy-M-dd Hh:m:ss.5SS} [%-5leve1] [%thread] %logger{36} 一%nsg%n</pattern>

</encoder>

</ appender>

<appender nane "InfoJson" class="ch . qos. logback . core . rolling ,RollingFileAppender

<filter class- "ch.qos.logback. classic.fllter. LevelFllter">

<level>INFO</level>

conMatch>ACCEPT</onMatchx

<springProf ile name="default" >

<property nane-" logging.path" value="1og-file" 1>

</springProfilex

它都能自动的扩展它的索引结构。

”thread":" %t hread".

”message :° Xmessage"

</ pattern>

</pattern>

</ providers>

</encoder>

</ appender>

<appender name-" Error”class-" ch. qos . logback. core . rolling . RollingF ileAppender >

<filter class="ch.qos .logback . classic,filter.LevelFilter">

<leve1>ERROR</level>

conMatch>ACCEPT</onMatch

<onMi smatch>DENY</onMi smatch>

产生 jenth 不会占太多内存对日志文本采集影响不大,用中心化日志采集不会浪费跟多的资源

</filter>

<File>${logging . path}/${App_ Nane }/error. log</File>

<rollingPolicy class=" ch.qos Jogback . core . rolling,TimeBasedRollingPollcy">

<FlleNamePattern>${logg1ng . path}/${App_ Name}/error . log .x{yyyy -MM-dd}</FlleNamePattern>

<MaxHistory>7</MaxHistory>

如果输出 jenthe 的时候可以直接用(LoggingEventCompostte I sonE ncode r)去替代

</rollingPolicy>

<encoder class= ”ch. qos,logback.classic。encoder . Patternt ayoutEncoder" >

<pattern%yyy-M-dd HH:ms5s555} [%-5level] [%thread] %logger{36} - %msg%n</pattern>

</encoder>

</ appender>

<logger name =”com Bupacedy . springclouddemg" level="info, error">

<appender-ref ref= "Info" />-->

< appender-ref ref- ”Info3son" 1:

< appender-ref ref- ”Error”/)

</logger>

<appender name "Info" class- "ch.qos。logback,core .rolling . RollingF ileAppender">

<filter class="ch.qos. logback .classic.filter.LevelFilter">

<level>INF0</level>

<onMatch>ACCEPT</onMatch>

<onMi smatch>DENY</onMi smatch>

</filter>

<File>${logging .path}/S{App. Nane》/ info. log</File>

<rollingPolicy class="ch. qos . logback . core . rolling,TimeBasedRollingPollcy">

<F ileNamePattern>${1ogging . path}/${App. Nane}/ info. log .%d{yyy - M dd}</FlleNamePattern>

<MaxHistory>7</MaxHistory>

</rollingPolicy>

<encoder class= ”ch. qos . logback .classic . encoder . PatternL ayoutEncoder">

<patetrn%dyyy-M-dd HH:m:ss55S} [%- 5level] [%thread] %logger{36} - %msg%n</pattern>

</encoder>

</ appender>

<appender nane "InfoJson" class="ch . qos. logback . core . rolling ,RollingFileAppender">

<fllter class="ch .qos .1ogback.classic .fllter.LevelFllter">

<level>INFO</1evel>

<onMatch>ACCEPT</onMatch>

configuration》 springProfile

日志采集

格式是标准的微服务格式

@RestController

public class HomeController {

private Logger logger - LoggerFactory .getLogger(this. getClass());

@RequestMapping( "/”)

public ResponseEntity<String> Home() {

ResponseEntity<string> resultEntity=new ResponseEntity<w>( code 200, msg; "ok”, data: "Hello Api");

logger. info(resultEntity . getData());

logger . error( "servere1 error" );

return resultEntity;日志过多需要一个中性化平台去处理和采集


相关文章
|
canal 监控 负载均衡
秃头也要学习的微服务进阶场景实战:基于Bifrost的数据同步方案
技术选型 项目组决定找一个开源中间件,它需要满足以下5点要求。 1)支持实时同步。 2)支持增量同步。 3)不用写业务逻辑。 4)支持MySQL之间的同步。 5)活跃度高。
|
2月前
|
SQL Kubernetes 监控
微服务从代码到k8s部署应有尽有系列(九、事务精讲)
微服务从代码到k8s部署应有尽有系列(九、事务精讲)
微服务从代码到k8s部署应有尽有系列(九、事务精讲)
|
2月前
|
消息中间件 Kubernetes Kafka
微服务从代码到k8s部署应有尽有系列(十一、日志收集)
微服务从代码到k8s部署应有尽有系列(十一、日志收集)
|
消息中间件 分布式计算 搜索推荐
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
429 0
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
|
弹性计算 运维 监控
【最佳实践】《微服务架构日志采集运维管理》手把手实操步骤与常见问题
根据阿里云《微服务架构日志采集运维管理》最佳实践文档实践步骤复现应用搭建的过程,同时总结归纳部分在应用搭载过程中遇见的问题与解决方案。
|
监控 搜索推荐 数据可视化
微服务业务日志收集方案,写得非常好!
背景 日志内容复杂多样,如何去收集有价值的日志是我们重点关注的。日志的价值其实是取决于业务操作的,不同的业务场景下相同类型的日志的价值会截然不同。 根据以往的业务实践,结合企业级的一些业务需求,我们选定关注以下几类日志。
1687 0
|
消息中间件 存储 监控
SpringCloud微服务实战——搭建企业级开发框架(三十八):搭建ELK日志采集与分析系统
一套好的日志分析系统可以详细记录系统的运行情况,方便我们定位分析系统性能瓶颈、查找定位系统问题。上一篇说明了日志的多种业务场景以及日志记录的实现方式,那么日志记录下来,相关人员就需要对日志数据进行处理与分析,基于E(ElasticSearch)L(Logstash)K(Kibana)组合的日志分析系统可以说是目前各家公司普遍的首选方案。 • Elasticsearch: 分布式、RESTful 风格的搜索和数据分析引擎,可快速存储、搜索、分析海量的数据。在ELK中用于存储所有日志数据。
588 57
SpringCloud微服务实战——搭建企业级开发框架(三十八):搭建ELK日志采集与分析系统
|
消息中间件 运维 监控
实操讲解:微服务运行状态监测(一)|学习笔记
快速学习实操讲解:微服务运行状态监测(一)
551 0
实操讲解:微服务运行状态监测(一)|学习笔记
|
消息中间件 运维 监控
微服务全生命周期稳定性实践(二)| 学习笔记
快速学习微服务全生命周期稳定性实践。
253 0
微服务全生命周期稳定性实践(二)| 学习笔记
|
消息中间件 弹性计算 运维
微服务全生命周期稳定性实践(一)| 学习笔记
快速学习微服务全生命周期稳定性实践。
228 0
微服务全生命周期稳定性实践(一)| 学习笔记