SpringCloud项目日志接入ELK实战

news2024/11/18 16:31:17

写作背景

前面我对SpringCloud Netflix相关的组件,Eureka、Ribbon、OpenFeign、Hystrix和Zuul都进行了复习,后面随着代码越写越多就想着,要不就慢慢完善这个项目代码,把工作里用到的东西慢慢在这个Demo级别的项目里用起来,也算是对自己掌握的知识的积累和一次练手的机会。
本次就是在原来的基础上增加了日志模块,我当前所在公司看日志一般都是在SpringBoot Admin里,然后也有集成过ELK,在kibana里看日志。本文的写作思路是直接在原来项目里集成ELK实战演练。

ELK实战

前置环境准备

1、本地安装elasticsearch 6.6版本并启动
安装elasticsearch比较简单,网上博客一大堆,包括后面的kibana和logstash我这里就不介绍了。我本地启动elasticsearch成功后访问如下地址

http://localhost:9200/

在这里插入图片描述
代表我本地elasticsearcha安装成功了。

2、本地安装kibana并启动
主要是config目录下的kibana.yml里几个配置有简单改动

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
#汉化
i18n.locale: "zh_CN"

3、本地安装logstash并启动
主要是config目录下我新建了一个my-logstash.yml配置文件,待会启动logstash指定我的这个配置,主要就是采集项目的日志路径里的日志文件信息,然后输出到es里去,然后日志索引名是logstash开头,每天一个索引

input {
        file {
                type => "log"
                #这个地址是项目lockback里指定的日志路径
                path => ["/app/logs/*/*.log"]
                start_position => "end"
                ignore_older => 0
                codec=> multiline {
                        pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
                        negate => true
			auto_flush_interval => 5
                        what => "previous"
                }
        }
        beats {
            port => 5044
        }
}
output {
        if [type] == "log" {
                elasticsearch {
                        hosts => ["http://127.0.0.1:9200"]
                        index => "logstash-%{+YYYY.MM}"
                }
        }
}

项目里集成Logstash

1、pom.xml里引入logstash坐标依赖

<!-- logback集成logstash -->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.3</version>
        </dependency>

2、logback日志文件里增加输出logstash的appender

<!--输出到logstash的appender-->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>localhost:4560</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>

在这里插入图片描述
fc-gateway-zuul、fc-service-portal、还有fc-service-screen里都集成了elk,然后启动服务
在这里插入图片描述

进入Kibana查看日志

调几次接口产生一点日志,然后去kibana里http://localhost:5601查看日志

http://localhost:8000/portal/getPortByFeign

还是这个测试的接口

@GetMapping("/getPortByFeign")
    public int getPortByFeign() throws InterruptedException {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        log.info("请求头的token参数值:{}", request.getHeader("token"));
        //睡1s测试hystrix默认超时时间
        Thread.sleep(1000);
        return screenFeignClient.getPort();
    }

第一次打开kibana会让你创建索引范例
在这里插入图片描述
其实下面你的索引logstash-2023.01索引已经看到了,你就随便定义一个然后选它,然后点下面这个discover就可以看到日志了
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea高效实用优化技巧

文章目录IDEA介绍配置优化注释模板快捷键硬件升级IDEA介绍 IDEA&#xff0c;全称IntelliJ IDEA&#xff0c;是Java语言的集成开发环境&#xff0c;IntelliJ在业界被公认为最好的java开发工具之一&#xff0c;尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、C…

gdb使用简介

目录 编译时&#xff0c;加入-g选项 不加-g选项&#xff0c;将不能加断点 加入-g选项&#xff0c;才能加断点 run与start start run break continue 编译时&#xff0c;加入-g选项 不加-g选项&#xff0c;将不能加断点 加入-g选项&#xff0c;才能加断点 run与start …

经典的 海量数据面试题 —— 送你一套僻邪剑谱~

目录 前言 一、哈希切割 题目一 解法一&#xff1a;哈希切割 二、位图的应用 题目一&#xff1a; 解法一&#xff1a;哈希切割 解法二&#xff1a;双位图 解法三&#xff1a;单位图&#xff08;进阶版&#xff09; 题目二 解法一&#xff1a;哈希切割 解法二&#xff…

ChatGPT踩坑(too many signups from the same IP)

ChatGPT踩坑 首先是去OpenAI的官网注册&#xff0c;点击API 进去注册一个账号 然后就会发现注册不成功&#xff0c;继续尝试就会出现下面的情况 后来我发现比较靠谱的方法是&#xff0c;通过google账号注册&#xff08;或许微软账号也行&#xff09;&#xff0c;后面会有一步让…

python经典刷题-关于文件、日期的题

目录标题1&#xff0c;统计目录下所有文件大小-os的使用2&#xff0c;按文件后缀整理文件夹3&#xff0c;递归搜索目录找出最大文件4&#xff0c;计算不同课程的最高分最低分--分组处理5&#xff0c;实现不同文件的关联6&#xff0c;批量txt文件的合并7&#xff0c;统计每个兴趣…

植物神经紊乱在心脑血管方面可能出现哪些症状

大家好&#xff0c;当植物神经的失衡涉及心脑血管的时候&#xff0c;可能会出现哪些症状表现&#xff1f; 植物神经紊乱为什么会涉及心脑血管&#xff1f; 你们知道吗&#xff1f;植物神经紊乱的实质&#xff0c;是由于体内庞大的神经系统的失衡导致的。而植物神经&#xff0c;…

javaEE 初阶 — 网络通信基础

文章目录1. IP 地址2. 端口号3. 认识协议4. 协议分层4.1 分层的作用4.2 OSI七层模型4.3 TCP/IP五层&#xff08;或四层&#xff09;模型4.4 网络数据传输的基本流程4.4.1 发送方4.4.2 接收方1. IP 地址 IP地址主要用于标识网络主机、其他网络设备&#xff08;如路由器&#xff…

PowerSNMP for .NET 6.1.0.0 Crack

关于适用于 .NET 的 PowerSNMP 创建自定义 SNMP 管理器、陷阱和代理应用程序以监视和控制网络设备。 PowerSNMP for .NET 包括简单网络管理协议 (SNMP) 组件&#xff0c;可无缝集成线程通信、安全和编码/解码&#xff0c;因此您可以快速开发自定义 SNMP 应用程序。该开发工具需…

HW_DIMM分类与比较

DIMM 分类参考链接 UDIMM UDIMM is also known as unbuffered DIMM, that is, unbuffered dual in-line memory module. The application of this memory module means that the address and control signals can directly reach the DRAM chip on the server DIMM without g…

[hive]维度模型分类:星型模型,雪花模型,星座模型|范式

一、维度模型分类:星型模型,雪花模型,星座模型1、星型模型星型模型中只有一张事实表&#xff0c;以及0张或多张维度表&#xff0c;事实与纬度表通过主键外键相关联&#xff0c;维度之间不存在关联关系&#xff0c;当所有纬度都关联到事实表时&#xff0c;整个图形非常像一种星型…

ESP32设备驱动-MPU-9250 3轴陀螺仪/加速度计/磁力计驱动

MPU-9250 3轴陀螺仪/加速度计/磁力计驱动 1、MPU9250介绍 MPU-9250 是面向智能手机、平板电脑、可穿戴传感器和其他消费市场的第二代 9 轴运动处理单元™(Motion Processing Unit™)。 MPU-9250 采用 3x3x1mm QFN 封装,是世界上最小的 9 轴运动跟踪设备,采用了最新的 Inven…

钢结构之槽钢及角钢

槽钢 槽钢是截面为凹槽形的长条钢材&#xff0c;截面形状为槽形的型钢。 槽钢的基本介绍 槽钢属建造用和机械用碳素结构钢&#xff0c;是复杂断面的型钢钢材&#xff0c;其断面形状为凹槽形。槽钢主要用于建筑结构、幕墙工程、机械设备和车辆制造等。在使用中要求其具有较好的…

没有选品经验的电商卖家该在TikTok上卖什么商品?超店有数来帮你

TikTok近年来增速迅猛&#xff0c;凭借巨大的流量频频登榜多国APP下载榜首&#xff0c;而其电商业务同样处于快速增长状态。2022上半年&#xff0c;TikTok电商的GMV已超10亿美元&#xff1b;2022年全年&#xff0c;TikTok Shop在东南亚GMV增长逾三倍&#xff0c;达到44亿美元。…

【SpringBoot2】SpringBoot中配置文件详解

SpringBoot使用一个全局的配置文件&#xff0c;配置文件名是固定的&#xff0c;支持两种格式 1、两种格式&#xff08;properties&#xff0c;yml&#xff09; application.properties application.yml 由此可以看出 application.yml 文件格式的内容更为简洁&#xff0c;清晰…

SpringAMQP - 发布订阅模式

目录 发布订阅介绍 FanoutExchange简介 FanoutExchange案例 常见小问题 DirectExchange简介 DirectExchange案例 常见小问题 TopicExchange简介 TopicExchange案例 发布订阅介绍 发布&#xff08;Publish&#xff09;、订阅&#xff08;Subscribe&#xff09;发布订阅…

Python【xpath】基础上

xpath解析: 最常用且最便捷高效的一种解析方式。通用性- xpath 解析原理&#xff1a;- 1.实例化一个etree的对象&#xff0c;且需要将被解析的页面源码数据加载到该对象中环境安装&#xff1a;- cmd 输入 pip install lxml- 如何实例化一个etree 对象- 1.将本地的html&#xff…

从管易云到MySQL通过接口配置打通数据

数据源平台:管易云管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌&#xff0c;先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站建设等产品和服务&#xff0c;涵盖电商业务全流程。写入目标:MySQLmysql是一个关系数据库管理系统&#xff08;RDBMS&…

SpringBoot的自动配置

参考视频&#xff1a;每一帧都是干货&#xff01;15分钟的视频花2小时看 一、配置类&#xff08;Configuration Class&#xff09; 广义的配置类&#xff1a;被注解Component直接或间接修饰的某个类&#xff0c;即我们常说的Spring组件&#xff0c;其中包括了Configuration类…

类加载器与双亲委派

-----摘自 周志明 《深入理解Java虚拟机》类加载器Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现&#xff0c;以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器…

R语言多元数据统计分析在生态环境中的实践应用

生态环境领域研究中常常面对众多的不同类型的数据或变量&#xff0c;当要同时分析多个因变量&#xff08;y&#xff09;时需要用到多元统计分析&#xff08;multivariate statistical analysis&#xff09;。多元统计分析内容丰富&#xff0c;应用广泛&#xff0c;是非常重要和…