springboot+ElasticSearch+Logstash+Kibana实现日志采集ELK

news2024/11/26 12:43:50

ElasticSearch+Logstash+Kibana日志管理

一、什么是ELK?

ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。一般情况下我们可以把日志保存在日志文件当中,也可以把日志存入数据库当中。但随着业务量的增加,日志数据量也会不断增加。我们通过ELK可以更好的收集、管理、分析日志

1.Elasticsearch

是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

2.Logstash

是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

3.Kibana

是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。

3.ElasticHD

ElasticSearch的客户端,可以查看es中的数据信息,下载完成之后,直接运行ElasticHD.exe,运行成功之后如下

在这里插入图片描述
访问:http://localhost:9800

在这里插入图片描述

这里会记录http://127.0.0.1:9200,es的所有信息

详情
在这里插入图片描述
索引列表信息
在这里插入图片描述

根据索引查询索引内容,log-2023.07.16是获取springboot中的日志,索引名为日志文件名称

在这里插入图片描述

二、收集过程架构图

在这里插入图片描述
在这里插入图片描述

三、Windows环境下实现ELK的搭建,ElasticSearch+Logstash+Kibana

百度官网下载即可,我这里使用的是7.9.2版本,注意保持版本统一

在这里插入图片描述

1.ElasticSearch

下载完成之后,编辑文件elasticsearch.yml

在这里插入图片描述

添加如下两行配置信息,更多其它配置信息可询问度娘

作用是:允许ElasticSearch跨域,用于连接ElasticSearch-head跨域失败的问题

http.cors.enabled: true
http.cors.allow-origin: "*"

在这里插入图片描述

双击启动es
在这里插入图片描述

http://localhost:9200/

不报错则访问:http://localhost:9200/,name可根据配置elasticsearch.yml来进行修改

在这里插入图片描述

2.Logstash

下载完成之后,创建文件logstash.conf,并编辑,添加如下内容,里面的详情内容可咨询度娘,编辑完之后保存,注意文件的编码格式为utf-8

input { 
  # stdin { }
  tcp { 
    # host:port就是上面appender中的 destination,
 # 这里其实把logstash作为服务,开启9250端口接收logback发出的消息 
    host => "127.0.0.1" port => 9250 mode => "server" tags => ["tags"] codec => json_lines 
  }
}
output {
  elasticsearch {
     hosts => ["localhost:9200"]
     #index => "boot"
     #ES索引名称(自己定义的)
     index => "log-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}

当调用时,则会创建,log-%{+YYYY.MM.dd}所以,例如:log-2023.07.16

在这里插入图片描述

在这里插入图片描述
这里若不为utf-8,则启动时会报错

启动logstash,不报错即为启动成功

D:\elasticSearch\logstash-7.9.2\bin> .\logstash.bat -f .\logstash.conf

这里的9250是上面配置文件中,对外提供的端口,可变更成其它的端口号

在这里插入图片描述
访问:http://localhost:9600/
在这里插入图片描述
3.Kibana

下载完成之后,编辑文件kibana.yml并保存,

在这里插入图片描述

这里是Kibana的启动配置信息,kibana.index索引名称,可改成其它

server.port: 5601
server.name: kibana
server.host: 127.0.0.1
elasticsearch.hosts: http://127.0.0.1:9200
kibana.index: .kibana

在这里插入图片描述

启动完成之后,则会关联到es中

在这里插入图片描述

双击启动Kibana

在这里插入图片描述

不报错,启动完成

在这里插入图片描述

访问http://127.0.0.1:5601,这里面的其它的选项有待学习

在这里插入图片描述

查看console信息,查询数据

ElasticSearch-文档查询

在这里插入图片描述

4.springboot项目中使用—日志部分

maven依赖

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>com.internetitem</groupId>
            <artifactId>logback-elasticsearch-appender</artifactId>
            <version>1.6</version>
        </dependency>


        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>7.0</version>
        </dependency>

创建日志文件-logback-spring.xml,并添加如下,logstash配置信息

这里的127.0.0.1:9250:与logstash.conf对应

<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--  这是是logstash服务器地址,端口随意,和之后logstash的配置文件保持一致-->
        <destination>127.0.0.1:9250</destination>
        <!--输出的格式,推荐使用这个-->

        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <providers>
                <timestamp/>
                <version/>
                <message/>
                <loggerName/>
                <threadName/>
                <logLevel/>
                <callerData/>
            </providers>
        </encoder>
    </appender>

	<root level="INFO">
        <!-- 需要采集日志到logstash -->
        <appender-ref ref="LOGSTASH"/>
    </root>

在这里插入图片描述

application.properties

logging.level.root=info
logging.config=classpath:logback-spring.xml

在这里插入图片描述

运行springboot

在这里插入图片描述

则在这里就能够查得到,在代码中记录的日志信息

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

2.多线程-初阶(上)

文章目录 1. 认识线程&#xff08;Thread&#xff09;1.1 概念1.2 第一个多线程程序1.3 创建线程1.3.1方法1 继承 Thread 类1.3.2方法2 实现 Runnable 接口 1.4 多线程的优势-增加运行速度1.5 PCB、PID、进程和线程之间的关系 2. Thread(/θred/) 类及常见方法2.1 Thread 的常见…

《Maven实战》读后感

目录 一、一些思考1、为什么平时编写的Java项目也叫做Maven项目&#xff1f;2、平常的Java项目目录为什么长这样&#xff0c;可以改变目录结构吗&#xff1f;3、对于Maven项目来说&#xff0c;Maven能帮我们做什么&#xff1f;4、为什么一定需要Maven私服&#xff0c;不要行不行…

easyrecovery数据恢复软件2023免费版下载

easyrecovery数据恢复软件2023免费版下载是一款操作简单、功能强大数据恢复软件,通过easyrecovery可以从硬盘、光盘、U盘、数码相机、手机等各种设备中恢复被删除或丢失的文件、图片、音频、视频等数据文件。 EasyRecovery数据恢复软件是一款功能强大的数据恢复软件&#xff0c…

卡尔曼滤波的理解

看了B站up主DR_CAN讲的卡尔曼滤波&#xff08;链接&#xff09;。up讲的非常好&#xff0c;强烈推荐&#xff0c;看完终于明白了卡尔曼滤波的奥秘。下面是我对其中内容的注解&#xff0c;或者说自己的理解。大部分推导省略了&#xff0c;但保留了算法的思想脉络。 引入 首先看…

Verilog基础之十七、锁相环PLL

目录 一、前言 1.1 背景 1.2 PLL结构 二、工程设计 2.1 PLL IP核配置 2.2 设计代码 2.3 测试代码 2.4 仿真结果 2.5 常见问题 一、前言 1.1 背景 若将一个FPGA工程看做一个人体&#xff0c;时钟的重要性丝毫不亚于心脏对于人体的重要性&#xff0c;时钟的每一个周期对…

支付、购物车、搜索、文件上传、登录、还款、订单测试怎么做?

支付功能怎么测试&#xff1a;1、从功能方面考虑&#xff1a; 1&#xff09;、正常完成支付的流程&#xff1b; 2&#xff09;、支付中断后继续支付的流程&#xff1b; 3&#xff09;、支付中断后结束支付的流程&#xff1b; 4&#xff09;、单订单支付的流程&#xff1b; 5&am…

【无标题】(前沿)

Java编程语言 目前为止最流行的 是Java编程语言 但是编程与语言有很多中php。phyone。 c c. c# java html. css javascript vue() 说到计算机有很多同学会说&#xff0c;就有很多人会说35的节点&#xff0c;我问一下同学们现在哪一个行业&#xff0c;是没有35岁的节点&#x…

7.5 SpringBoot 拦截器Interceptor实战 统一角色权限校验

文章目录 前言一、定义注解annotation二、拦截角色注解1. 在拦截器哪里拦截&#xff1f;2. 如何拦截角色注解&#xff1f;3. 角色如何读取?4. 最后做角色校验 三、应用&#xff1a;给管理员操作接口加注解四、PostMan测试最后 前言 在【7.1】管理员图书录入和修改API&#xf…

c语言指针进阶(二)

目录 引言 函数指针数组 指向函数指针数组的指针 回调函数 引言 大家好&#xff0c;我是c语言boom成家宝&#xff0c;今天博主带来的依然是指针的进阶讲解。上一篇博客博主有介绍指针&#xff0c;数组指针&#xff0c;指针数组&#xff0c;以及函数指针的概念以及应用&…

【Azure】Azure成本管理:规划、监控、计算和优化成本 [文末送书]

开篇先来一个不是总结的总结&#xff1a;平衡成本与性能始终是一个重大挑战。&#xff08;此处省略各种场景的解释&#xff09; 文章目录 前言一、Azure 成本管理工具1.1 什么是成本管理1.2 成本管理的主要功能 二、Azure 中可能影响成本的因素2.1 影响成本的因素2.1.1 资源类型…

leetcode|math|9.172.69.50.

9. Palindrome Number to_string 就行 172. Factorial Trailing Zeroes 不能直接乘起来&#xff0c;会overflow&#xff01;&#xff01; 166! 就是要找166乘到1一共有几个5。5&#xff0c;10&#xff0c;15&#xff0c;25...都算。166/5就是算一共有几个5。但是25其实贡献了…

【周末闲谈】感受AI时代魅力,创意无界限

i 个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️周末闲谈】 文章目录 前言人工智能的应用领域问题求解逻辑推理与定理证明自然语言处理智能信息检索技术专家系统 人工智能的三大短板展望未来从专用智能向通用智能发展从人工智能向人机混合智能发展…

Jdk 版本升级

Jdk 版本升级(多版本配置&#xff09; 一、配置多版本 首先如果系统第一次安装JDK 1.登录oracle官网Java Downloads | Oracle下载&#xff0c;此教程以Jdk1.8为例&#xff0c;一键下一步即可安装成功。 2.配置环境变量 然后在系统path路径中添加&#xff1a; %JAVA_HOME%…

单片机第一季:零基础10——串口通信和RS485

目录 1&#xff0c;串口通讯基础 1.1&#xff0c;同步和异步 1.2&#xff0c;并行和串行 1.3&#xff0c;单工、半双工与全双工通信 1.4&#xff0c;通信速率 2&#xff0c;单片机串口通讯 2.1&#xff0c;接口标准 2.2&#xff0c;通讯协议 2.3&#xff0c;串口…

834. 树中距离之和

给定一个无向、连通的树。树中有 n 个标记为 0…n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges &#xff0c; edges[i] [ai, bi]表示树中的节点 ai 和 bi 之间有一条边。 返回长度为 n 的数组 answer &#xff0c;其中 answer[i] 是树中第 i 个节点与所有其他节点之间…

opencv环境搭建

1. 上网&#xff08;你懂的&#xff0c;没有网装不了&#xff09; 2. 参考视频&#xff1a;https://www.bilibili.com/video/BV1R44y157hW/?spm_id_from333.880.my_history.page.click&vd_source377867a48dd3d812b9d6521c8fc76de2 3. 这里我选择的是4.8的版本。 4. cmak…

charles中下载web证书

1.点击help&#xff0c;选中ssl Proxying ,点击Install Charles Root Certificate 2:点击”安装证书”按钮 3&#xff1a;点击”下一步”按钮 4&#xff1a;选中”将所有的证书都放入下列存储”&#xff0c;点击”游览”按钮 5&#xff1a;选中”受新任的根证书颁发机构”&…

day37-框架

0目录 框架 1.框架介绍 2. SSM三大框架简介 3.Mybatis 4.拓展 1.框架介绍 1.1 为什么使用框架&#xff1f; &#xff08;1&#xff09;框架效率高&#xff0c;成本低 &#xff08;2&#xff09;框架是别人写好的构建&#xff0c;我们只需学会如何使用它&#xff08;可维护性…

C++(12):动态内存

除了自动和static对象外&#xff0c;C还支持动态分配对象。动态分配的对象的生存期与它们在哪里创建是无关的&#xff0c;只有当显式地被释放时&#xff0c;这些对象才会销毁。 静态内存 用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。 栈内存 用来…

mysql_to_clickhouse同步方案调研

调研时间&#xff1a;2021年08月&#xff0c;之后是否出现优化方案未知 方式1&#xff1a;网上开源python脚本-----mysql-clickhouse-replication 安装参考&#xff1a;https://www.cnblogs.com/gomysql/p/11199856.html 软件路径&#xff1a;https://github.com/yymysql/my…