Spring Cloud Sleuth和ELK(Elasticsearch、Logstash和Kibana)是一种流行的组合,可用于实现分布式跟踪和日志分析。
一、添加依赖
首先,我们需要在Maven或Gradle项目中添加Spring Cloud Sleuth和ELK的依赖。以下是在Maven项目中添加依赖的示例:
【资料图】
org.springframework.cloud spring-cloud-starter-sleuth net.logstash.logback logstash-logback-encoder 6.2 org.springframework.boot spring-boot-starter-log4j2 2.6.3 在上面的依赖中,我们添加了Spring Cloud Sleuth的核心依赖和ELK的依赖。我们还使用Logstash Logback Encoder来格式化日志输出,并使用Log4j2作为日志记录器。
二、配置应用
在添加了Spring Cloud Sleuth和ELK的依赖之后,我们需要为应用程序配置一些参数,以便Sleuth和ELK能够正常工作。以下是一个简单的配置示例:
spring: sleuth: sampler: probability: 1.0logging: level: root: INFO org.springframework.web: INFO com.example.demo: DEBUG file: path: logs name: app.log encoder: pattern: "%date %level [%thread] %logger{10} [%file:%line] %msg%n" charset: UTF-8app: name: order-service在上面的配置中,我们将采样率设置为1.0,这意味着我们将对所有请求进行跟踪。我们还配置了日志记录器的级别和格式,并指定了日志文件的路径和名称。我们还添加了一个应用程序名称,用于将日志发送到ELK服务器。
三、配置ELK
现在,我们已经完成了Spring Cloud Sleuth和应用程序的配置,接下来我们需要配置ELK服务器以收集和分析日志数据。以下是一个简单的ELK配置示例:
input { tcp { port => 5000 codec => json_lines }}filter { if [app][name] == "order-service" { mutate { add_field => { "service" => "order-service" } } }}output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[service]}-%{+YYYY.MM.dd}" }}在上面的配置中,我们使用Logstash作为数据收集器,将日志数据发送到Elasticsearch。我们还添加了一个过滤器来为日志数据添加一个服务字段,并将数据索引到特定的索引中,索引名称由服务名称和日期组成。在这个示例中,我们的服务名称是order-service,因此我们将日志数据索引到order-service-YYYY.MM.dd的索引中。
四、在应用程序中使用ELK
现在,我们已经完成了Spring Cloud Sleuth和ELK的配置,接下来我们需要在应用程序中使用它们。以下是一个简单的示例:
@RestControllerpublic class OrderController { private static final Logger LOGGER = LoggerFactory.getLogger(OrderController.class); @Autowired private RestTemplate restTemplate; @GetMapping("/orders/{id}") public Order getOrder(@PathVariable Long id) { LOGGER.info("Getting order with id {}", id); Order order = restTemplate.getForObject("http://localhost:8081/orders/" + id, Order.class); LOGGER.info("Got order with id {}", id); return order; }}在上面的示例中,我们使用了Spring Boot的@RestController注解来创建一个REST API端点。在方法中,我们使用Spring Boot的RestTemplate来发送HTTP请求,并记录请求的开始和结束时间。由于我们已经在应用程序中使用了Spring Cloud Sleuth,因此Sleuth会自动记录跟踪ID和跟踪span ID,并将它们添加到日志中。
五、分析日志数据
现在,我们已经在应用程序中记录了日志,并将它们发送到ELK服务器,接下来我们需要使用Kibana来分析日志数据。以下是一个简单的Kibana查询示例:
GET order-service-*/_search{ "query": { "bool": { "must": [ { "match": { "service": "order-service" } }, { "match": { "message": "Getting order with id" } } ] } }}在上面的查询中,我们使用Elasticsearch的match查询来搜索包含服务名称和"Getting order with id"的日志消息。此查询将返回所有满足条件的日志数据,并将它们显示在Kibana的搜索结果中。
关键词:
SpringCloudSleuth和ELK(Elasticsearch、Logstash和Kibana)是一种流行的组合,可用于实现分布式跟踪和日志分析。2023-04-14
智通财经APP获悉锂业股早盘回暖截至发稿赣锋锂业00246001772涨511报5035港元天齐锂业00246609696涨3报54852023-04-14
文昌清澜购房后悔了吗现在(海南文昌清澜房地产升值潜力全面解析)放宽落户放宽限购,未来文昌清澜房价涨幅2023-04-14
15号开幕!贵州115家企业参展广交会2023-04-14
4月13日,华峰铝业(601702)融资买入775 94万元,融资偿还733 17万元,融资净买入42 77万元,融资余额75842023-04-14
1、此方案适用XPVISTAWIN7系统【问题描述】:检测不到读卡器【原因分析】:1 Usb接口损坏2 usb驱动丢失、病2023-04-14
4月13日北向资金增持127 28万股国瓷材料。近5个交易日中,获北向资金增持的有4天,累计净增持389 47万股。2023-04-14
1、trunk有两种含义,一种trunk端口汇聚的,就是把几个物理端口汇聚成一个更大带宽的逻辑端口,从而达到增2023-04-14
本文转自:人民网-港澳频道人民网香港4月13日电(记者陈然)为期两天的“数字经济峰会2023”于13日在香港会2023-04-13
发生事故举报对方酒驾,结果是自己喝了一斤多白酒!2023-04-13
徐刚主任医师四川省人民医院病情分析:治疗过敏性的鼻炎,生活小妙招还是比较多的。第一、是采用生理盐2023-04-13
北京时间2023年4月12日凌晨,欧冠联赛1 4决赛开打,在下半区的一场首回合较量当中,本菲卡在里斯本光明球场2023-04-13
广东惠东发现“世界最神秘的鸟”!很难见到它的真面目!!今天的关注度非常高,直接上了热搜榜,那么具体的2023-04-13
近日,雅迪破圈联动全球一线时尚杂志《时尚COSMO》,瞬间引起全网用户的热烈讨论。在雅迪官方发布的海报中2023-04-13
全国肿瘤防治宣传周|专家呼吁:不用谈癌色变它不再是“绝症”2023-04-13
长沙生育保险参保人在异地生育可以回长沙进行报销,异地生育费用报销流程如下:1、参保女职工怀孕20周后至2023-04-13
据海外网援引美国福克斯新闻网4月12日报道,当地时间10日,美国得克萨斯州一家奶牛厂发生爆炸,经当地治安2023-04-13
北京商报讯(记者姚倩李想)4月13日,针对垄断被罚一事,津药药业董秘办相关人士向北京商报记者表示,津药2023-04-13
2023年04月13日11时30分,北京市气象台继续发布沙尘蓝色预警。2023-04-13
海南2023年初级会计资格考试准考证打印时间省市准考证打印时间考试时间查看报名公告海南省海南:4月12日前2023-04-13
【录取数据大揭秘】▷上海七宝德怀特高级中学最新录取数据来啦~速看!春和景明,万物昭苏,又是一年高三毕2023-04-13
目前京东售价4588元,可参加满4588元减100元,满300元减100元的活动,到手价4388元,属于近期好价。搭载英2023-04-13
4月12日晚,极氪面向全球体量最大的紧凑级豪华SUV市场,发布全新三款车型ZEEKRX,售价低至18 98万~20 98万2023-04-13
在汉印电子展台前,一台世界上最小的可以打印A4纸的打印机吸引着客商目光。厦门网讯(文 图厦门日报海口特2023-04-13
2018年,读高二的秦康翔在老家河南延津县盐厂村过寒假,正值宁波大学海洋学院教师王欢一行人来村里做海蟹盐2023-04-13
