通过docker-compose部署elk日志系统,并使用springboot整合

ELK是一种强大的分布式日志管理解决方案,它由三个核心组件组成:

  1. Elasticsearch:作为分布式搜索和分析引擎,Elasticsearch能够快速地存储、搜索和分析大量的日志数据,帮助用户轻松地找到所需的信息。

  2. Logstash:作为数据处理管道,Logstash能够从各种来源收集日志数据,并进行过滤、转换和发送到Elasticsearch等目标存储中。

  3. Kibana:作为Web界面,Kibana能够帮助用户可视化和分析日志数据,创建仪表板和报表,以便更好地理解和监控业务中的日志信息。

ELK能够帮助业务实现日志数据的集中管理、快速搜索和分析,从而提高故障排查的效率,优化系统性能,以及发现潜在的安全威胁。通过ELK,业务可以更好地利用日志数据来支持决策和监控业务运营。

下面,本文会介绍ELK的安装以及使用

 搭建ELK

准备docker-compose.yml

version: '3'
services:elasticsearch:image: elasticsearch:6.4.0container_name: elasticsearchenvironment:- "cluster.name=elasticsearch" #设置集群名称为elasticsearch- "discovery.type=single-node" #以单一节点模式启动- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" #设置使用jvm内存大小volumes:- /mnt/data3/dockerfiles/elk2/elk_stanrd/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载- /mnt/data3/dockerfiles/elk2/elk_stanrd/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载ports:- 9200:9200- 9300:9300kibana:image: kibana:6.4.0container_name: kibanalinks:- elasticsearch:es #可以用es这个域名访问elasticsearch服务depends_on:- elasticsearch #kibana在elasticsearch启动之后再启动environment:- "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址ports:- 5601:5601logstash:image: logstash:6.4.0container_name: logstashvolumes:- /mnt/data3/dockerfiles/elk2/elk_stanrd/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件depends_on:- elasticsearch #kibana在elasticsearch启动之后再启动links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务ports:- 4560:4560

logstash.conf

input {tcp {mode => "server"host => "0.0.0.0"port => 4560codec => json_lines}
}output {if "java" in [tags] {elasticsearch {hosts => "es:9200"index => "java-logs-%{+YYYY.MM.dd}"}}if "python" in [tags] {elasticsearch {hosts => "es:9200"index => "python-logs-%{+YYYY.MM.dd}"}}
}

启动 

docker-compose up -d

开启kibana的端口

centos开启防火墙

 访问

ip:{你的端口:5601}

看到这样的界面,代表运行成功

配置索引

点击management--->kibana--->index patterns

 

 这里我会选择这一个,点击create index pattern创建

springboot整合ELK

配置maven

需要加入

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

打印日志的时候可以使用lombok或其他框架,但是注意一下之前使用log攻击的bug,尽量跳过这些版本,注意,低版本的springboot默认的日志库有问题。

配置文件

logging:config: ./config/logback-spring.xml

日志配置文件模板

<configuration><!-- %m输出的信息, %p日志级别, %t线程名, %d日期, %c类的全名, %i索引 --><!-- appender是configuration的子节点,是负责写日志的组件 --><!-- ConsoleAppender把日志输出到控制台 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) (%file:%line\)- %m%n</pattern><!-- 控制台也要使用utf-8,不要使用gbk --><charset>UTF-8</charset></encoder></appender><!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --><!-- 1.先按日期存日志,日期变了,将前一天的日志文件名重命名为xxx%日期%索引,新的日志仍然是sys.log --><!-- 2.如果日期没有变化,但是当前日志文件的大小超过1kb时,对当前日志进行分割 重名名 --><appender name="syslog" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>log/ant-back.log</File><!-- rollingPolicy:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 --><!-- TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 --><!-- 文件名:log/sys.2017-12-05.0.log --><fileNamePattern>log/ant-back.%d.%i.log</fileNamePattern><!-- 每产生一个日志文件,该日志文件的保存期限为120天 --><maxHistory>120</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- maxFileSize:这是活动文件的大小,默认值是10MB,本篇设置为100MB --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><!-- pattern节点,用来设置日志的输入格式 --><pattern>%d %p (%file:%line\)- %m%n</pattern><!-- 记录日志的编码 --><charset>UTF-8</charset></encoder></appender><!-- 控制台日志输出级别 --><!-- <root level="info"><appender-ref ref="STDOUT"/></root>--><!-- 指定项目中某个包,当有日志操作行为时的日志记录级别 --><!-- com.example.ant为根包,也就是只要是发生在这个根包下面的所有日志操作行为的权限都是DEBUG --><!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE  --><!--<logger name="com.example.ant" level="FATAL"><appender-ref ref="syslog"/></logger>--><!-- 为logstash输出的JSON格式的Appender --><appender name="logstash"class="net.logstash.logback.appender.LogstashTcpSocketAppender"><!--可以访问的logstash日志收集端口--><destination>ip:4560</destination><!-- 日志输出编码 --><encoderclass="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"><providers><timestamp><timeZone>UTC</timeZone></timestamp><pattern><pattern>{"tags": "java","thread": "%thread","logLevel": "%level","message": "%message","class": "%logger{40}","serviceName": "asr_hot_word","trace": "%X{X-B3-TraceId:-}","span": "%X{X-B3-SpanId:-}","exportable": "%X{X-Span-Export:-}","pid": "${PID:-}"}</pattern></pattern></providers></encoder></appender><!-- 日志输出级别 --><root level="INFO"><appender-ref ref="STDOUT"/><appender-ref ref="logstash" /></root></configuration>

配置好启动,点击discovery即可查看日志信息

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

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

相关文章

深度学习之基于Pytorch服装图像分类识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介系统组成1. 数据集准备2. 数据预处理3. 模型构建4. 模型训练5. 模型评估 PyTorch的优势 二、功能三、系统四. 总结 一项目简介 深度学习在计算机视觉领域的…

软件测试自学指南,十年阿里测试工程师的建议

通过技能提升&#xff0c;入行IT可以的&#xff0c;但得先积累足够的经验&#xff0c;才能拿高薪&#xff0c;有个成长的过程。 软件测试岗介绍 软件测试岗位主要负责系统的测试工作&#xff0c;属于IT项目中的质量管理&#xff08;QA&#xff09;模块。 这个岗位分为两种类…

Adobe研究人员研发新AI模型LRM:实现从2D样本瞬时生成3D图像

由Adobe Research和澳大利亚国立大学&#xff08;ANU&#xff09;联合研发的人工智能模型宣布了一项突破性的成果&#xff0c;能够从单一的2D图像中生成3D图像。 研究人员表示&#xff0c;他们的新算法在大规模图像样本上进行训练&#xff0c;可以在几秒钟内生成这样的3D图像。…

【LIUNX】配置缓存DNS服务

配置缓存DNS服务 A.安装bind bind-utils1.尝试修改named.conf配置文件2.测试nslookup B.修改named.conf配置文件1.配置文件2.再次测试 缓存DNS服务器&#xff1a;只提供域名解析结果的缓存功能&#xff0c;目的在于提高数据查询速度和效率&#xff0c;但是没有自己控制的区域地…

阿里云国际站:应用实时监控服务

文章目录 一、阿里云应用实时监控服务的概念 二、阿里云应用实时监控服务的优势 三、阿里云应用实时监控服务的功能 四、写在最后 一、阿里云应用实时监控服务的概念 应用实时监控服务 (Application Real-Time Monitoring Service) 作为一款云原生可观测产品平台&#xff…

记忆科技携手中国电信,一站式存储打造坚实数字底座

11月10日&#xff0c;以“数字科技 焕新启航”为主题的2023数字科技生态大会在广州盛大开幕&#xff0c;本次大会由中国电信、广东省人民政府联合举办&#xff0c;是一场数字科技领域的年度盛会。忆联母公司记忆科技作为中国电信的合作伙伴之一受邀参会&#xff0c;深度参与了大…

Flink SQL -- 命令行的使用

1、启动Flink SQL 首先启动Flink的集群&#xff0c;选择独立集群模式或者是session的模式。此处选择是时session的模式&#xff1a;yarn-session.sh -d 在启动Flink SQL的client&#xff1a; sql-client.sh 2、kafka SQL 连接器 在使用kafka作为数据源的时候需要上传jar包到…

LabVIEW中NIGPIB设备与驱动程序不相关的MAX报错

LabVIEW中NIGPIB设备与驱动程序不相关的MAX报错 当插入GPIB-USB设备时&#xff0c;看到了NI MAX中列出该设备&#xff0c;但却显示了黄色警告指示&#xff0c;并且指出Windows没有与您的设备相关的驱动程序。 解决方案 需要安装能兼容的NI-488.2驱动程序。 通过交叉参考以下有…

【C++初阶(八)】C/C++内存管理详解

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

Leetcode刷题详解——不同路径 III

1. 题目链接&#xff1a;980. 不同路径 III 2. 题目描述&#xff1a; 在二维网格 grid 上&#xff0c;有 4 种类型的方格&#xff1a; 1 表示起始方格。且只有一个起始方格。2 表示结束方格&#xff0c;且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的…

【读点论文】结构化剪枝

结构化剪枝 在一个神经网络模型中&#xff0c;通常包含卷积层、汇合层、全连接层、非线形层等基本结构&#xff0c;通过这些基本结构的堆叠&#xff0c;最终形成我们所常用的深度神经网络。 早在 1998 年&#xff0c;LeCun 等人使用少数几个基本结构组成 5 层的 LeNet-5 网络&…

Python爬虫过程中DNS解析错误解决策略

在Python爬虫开发中&#xff0c;经常会遇到DNS解析错误&#xff0c;这是一个常见且也令人头疼的问题。DNS解析错误可能会导致爬虫失败&#xff0c;但幸运的是&#xff0c;我们可以采取一些策略来处理这些错误&#xff0c;确保爬虫能够正常运行。本文将介绍什么是DNS解析错误&am…

SpringBoot从零到一项目实战落地博客系统(附源码!!!)

1.项目内容 1.1.页面展示 1.2.博客分类 1.3.面试辅导 1.4.私教带徒 1.5.文章编辑 1.6.后台管理 2.项目架构及技术描述 2.1.本项目用到的技术和框架 项目构建&#xff1a;Mavenweb框架&#xff1a;Springboot数据库ORM&#xff1a;Mybatis数据库连接池&#xff1a; HikariCP分…

[Android]修改应用包名、名称、版本号、Icon以及环境判断和打包

1.修改包名 在Android Studio中更改项目的包名涉及几个步骤&#xff1a; 打开项目结构: 在Android Studio中&#xff0c;确保您处于Android视图模式&#xff08;在左侧面板顶部有一个下拉菜单可以选择&#xff09;。 重命名包名: 在项目视图中&#xff0c;找到您的包名&…

论文导读 | 融合大规模语言模型与知识图谱的推理方法

前 言 大规模语言模型在多种自然语言处理相关任务上展现了惊人的能力&#xff0c;如智能问答等&#xff0c;但是其推理能力尚未充分展现。本文首先介绍大模型进行推理的经典方法&#xff0c;然后进一步介绍知识图谱与大模型融合共同进行推理的工作。 文章一&#xff1a;使用思维…

好消息!2023年汉字小达人市级比赛在线模拟题大更新:4个组卷+11个专项,助力孩子更便捷、有效、有趣地备赛

自从《中文自修》杂志社昨天发通知&#xff0c;官宣了2023年第十届汉字小达人市级比赛的日期和安排后&#xff0c;各路学霸们闻风而动&#xff0c;在自己本就繁忙的日程中又加了一项&#xff1a;备赛汉字小达人市级比赛&#xff0c;11月30日&#xff0c;16点-18点。 根据这几年…

C 语言指针怎么理解?

今日话题&#xff0c;C 语言指针怎么理解&#xff1f;让我用更简洁的方式来表达这个内容&#xff1a;就像桌面上的快捷方式一样&#xff0c;指针也可以有多层引用。我们可以将指针比作快捷方式的图标&#xff0c;快捷方式可以指向游戏&#xff08;普通指针&#xff09;&#xf…

【JavaEE初阶】IP协议简介

文章目录 前言&#x1f334;IP协议的概念&#x1f333;IP数据报&#x1f6a9;IPv4协议头格式&#x1f6a9;IPv6的诞生 &#x1f38d;IP地址&#x1f6a9;IP地址的格式&#xff1a;&#x1f6a9;IP地址的分类&#x1f388;网络号与主机号的划分 &#x1f6a9;特殊的IP地址&#…

【机器学习】八、规则学习

知识图谱与基本概念 基本概念 规则学习定义&#xff1a;从训练数据中学习出一组能用于对未见示例进行判别的规则。 规则定义&#xff1a;规则一般是&#xff1a;语义明确、能描述数据分布所隐含的客观规律或领域概念。 逻辑规则定义&#xff1a;⊕←?1⋀?2⋀?3…⋀??⊕…