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服务器。
现在,我们已经完成了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的索引中。
现在,我们已经完成了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)是一种流行的组合,可用于实现分布式跟踪和日志分析。
【智车派新闻】不久前,保时捷正式宣布,将会在4月18日举办的上海车展上正式发布2024款卡宴新车。近日,...
央视网消息:昨天(4月14日),工业和信息化部和教育部联合发布通知,启动2023年全国中小企业网上百日招...
今年4月15日是第八个全民国家安全教育日,主题是“贯彻总体国家安全观,增强全民国家安全意识和素养,夯...
4月14日晚,苏宁易购发布第六期员工持股计划(草案)公告,包括苏宁易购新任董事长、总裁任峻在内的近二...
新湖南客户端4月14日讯(通讯员黄婕妤王亮)为提高父母与孩子的沟通效率,建立良好的亲子关系,增进家庭...
4月14日,2023(第一届)全国产融合作大会举办了四川省重点项目融资对接会。
中国青年网哈尔滨4月14日电4月11日,黑龙江省卫生健康委健康素养大讲堂活动在鹤岗拉开帷幕。本次活动由...
1、有利于历史的大融合,促进了东西方的交流与了解,为以后的十字军东征及数次的战争埋下了祸根!亚历山...
大家好,今日关于【女子遭遇诈骗24名同事刷屏提醒】的话题登上了各大平台的热搜榜,受到全网的关注度非...
每经AI快讯,有投资者在投资者互动平台提问:听说公司有想法研发生产半导体应用泵产品?君禾股份(60361...
广东好的食管癌医院_广东食管癌医院哪个较好?食管癌的发病部位具有*的特殊性,因此它较之一般的癌症疾...
所以为了达成自身的政治目的,美国军队也就长时间停留在了阿富汗,在阿富汗境内有着一定的话语权。 而中...
证券时报& 183;数据宝统计显示,截至4月14日,1252家公司披露了2022年度分配方案,其中分配方案中包含...
四分之一决赛,王艺迪直落三局击败韩国选手申裕斌,王曼昱则是在另一场比赛中以2-3不敌陈幸同,无缘四强...
今天来聊聊关于气阀微粒提取器在哪里接任务部落,气阀微粒提取器的文章,现在就为大家来简单介绍下气阀...
日前,上海申花在转会市场上收获颇丰,已经敲定了多名新援加盟。其中不乏像阿玛杜这样在五大联赛长期踢...
观点网讯。4月13日,南京栖霞建设物业服务股份有限公司发布了对外提供借款的公告。观点新媒体从中获悉,...
经最高法院核准,2023年4月13日,内蒙古呼和浩特市中级人民法院依照法定程序对罪犯吕某某验明正身,押赴...
本栏于去年8月13日曾论及这只股票于同年6月14日跌穿位于10 89元的“三角形”下限,若以此“三角形”的...
今天小编肥嘟来为大家解答以上的问题。教师资格考试合格证明,如何做一名合格的教师论文相信很多小伙伴...
1、前言新豆腐经过冷冻,内部组织结构发生了变化,其形态呈蜂窝状,颜色变灰,但蛋白质、维生素、矿物质...
这段机场视频地点标注为日本,一些外国博主盛赞日本机场服务,表示要向他们学习
4月12日,宁商工业发展合作交流活动暨商洛标准化厂房招商推介会在南京举办。江苏省发改委副主任黄海楠、...
2023年软磁概念上市公司股票一览(4月12日),2023年软磁概念上市公司股票一览(4月12日)南方财富网为您...
X 关闭
X 关闭