【Springcloud】elk分布式日志
【Springcloud】elk分布式日志
- 【一】基本介绍
- 【二】Elasticsearch
- 【1】简介
- 【2】下载
- 【3】安装
- 【4】启动
- 【三】Logstash
- 【1】简介
- 【2】下载
- 【3】安装
- 【4】启动
- 【四】Kibana
- 【1】简介
- 【2】下载
- 【3】安装
- 【4】启动
- 【五】切换中文
- 【六】日志收集
【一】基本介绍
(1)什么是分布式日志
在分布式应用中,日志被分散在储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。所以我们使用集中化的日志管理,分布式日志就是对大规模日志数据进行采集、追踪、处理。
(2)为什么要使用分布式日志
一般我们需要进行日志分析场景:直接在日志文件中grep、awk就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
(3)ELK 分布式日志
实际上ELK是三款软件的简称,分别是Elasticsearch、 Logstash、Kibana组成。
Elasticsearch 基于java,是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Kibana 基于nodejs,也是一个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web 界面,可以汇总、分析和搜索重要数据日志。
Logstash 基于java,是一个开源的用于收集,分析和存储日志的工具。
(4)ELK的工作原理

【二】Elasticsearch
【1】简介
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题。
ElasticSearch是Elastic Stack的核心,同时Elasticsearch 是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
【2】下载
到官网下载: (https://www.elastic.co/cn/downloads/elasticsearch )

【3】安装
解压到相应目录
tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz -C /usr/local
修改配置
cd /usr/local/elasticsearch-7.10.2/config/
vim elasticsearch.yml
node.name: node-1
path.data: /usr/local/elasticsearch-7.10.2/data
path.logs: /usr/local/elasticsearch-7.10.2/logs
network.host: 127.0.0.1
http.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
创建es用户 因为ElasticSearch不支持Root用户直接操作,因此我们需要创建一个es用户
useradd es
chown -R es:es /usr/local/elasticsearch-7.10.2
【4】启动
切换用户成es用户进行操作
su - es
/usr/local/elasticsearch-7.10.2/bin/elasticsearch
后台启动
/usr/local/elasticsearch-7.10.2/bin/elasticsearch -d
在浏览器打开9200端口地址: (http://120.78.129.95:9200/),如果出现了下面的信息,就表示已经成功启动了

【三】Logstash
【1】简介
Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到最喜欢的存储库中(我们的存储库当然是ElasticSearch)
【2】下载
到官网下载: (https://www.elastic.co/cn/downloads/logstash )

【3】安装
解压到相应目录
tar -zxvf logstash-7.10.2.tar.gz -C /usr/local
新增配置文件
cd /usr/local/logstash-7.10.2/bin
vim logstash-elasticsearch.conf
input {stdin {}
}
output {elasticsearch {hosts => '120.78.129.95:9200'}stdout {codec => rubydebug}
}
【4】启动
./logstash -f logstash-elasticsearch.conf
【四】Kibana
【1】简介
Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。
【2】下载
到官网下载: (https://www.elastic.co/cn/downloads/kibana)

【3】安装
解压到相应目录
tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz -C /usr/local
mv /usr/local/kibana-7.10.2-linux-x86_64 /usr/local/kibana-7.10.2
修改配置
cd /usr/local/kibana-7.10.2/config
vim kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://120.78.129.95:9200"]
kibana.index: ".kibana"
授权es用户
chown -R es:es /usr/local/kibana-7.10.2/
【4】启动
切换用户成es用户进行操作
su - es
/usr/local/kibana-7.10.2/bin/kibana
后台启动
/usr/local/kibana-7.10.2/bin/kibana &
在浏览器打开5601端口地址: (http://120.78.129.95:5601/),如果出现了下面的信息,就表示已经成功启动了

【五】切换中文
在config/kibana.yml添加
i18n.locale: "zh-CN"
【六】日志收集
对应服务器安装logstash,配置规则,例如新建logstash-apache.conf
input {file {path => "/home/ruoyi/logs/sys-*.log"start_position => beginningsincedb_path => "/dev/null"codec => multiline {pattern => "^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"negate => trueauto_flush_interval => 3what => previous}}
}filter {if [path] =~ "info" {mutate { replace => { type => "sys-info" } }grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]}} else if [path] =~ "error" {mutate { replace => { type => "sys-error" } }} else {mutate { replace => { type => "random_logs" } }}
}output {elasticsearch {hosts => '120.78.129.95:9200'}stdout { codec => rubydebug }
}
启动logstash
./logstash -f logstash-apache.conf
通过kibana可视化检索各个服务日志数据

相关文章:
【Springcloud】elk分布式日志
【Springcloud】elk分布式日志 【一】基本介绍【二】Elasticsearch【1】简介【2】下载【3】安装【4】启动 【三】Logstash【1】简介【2】下载【3】安装【4】启动 【四】Kibana【1】简介【2】下载【3】安装【4】启动 【五】切换中文【六】日志收集 【一】基本介绍 (…...
面试半个月后的一些想法
源于半个月面试经历后的一些想法,刚开始想的是随便写写,没想到居然写了这么多。 找不到目标找不到意义亦或是烦躁的时候,就写写文章吧,把那些困扰你很久的问题铺开来 花时间仔细想想,其实真正让我们生气懊恼࿰…...
基于FPGA的图像二值化处理,包括tb测试文件和MATLAB辅助验证
1.算法运行效果图预览 将FPGA的数据导入到matlab进行显示 2.算法运行软件版本 Vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps ............................................................................. module test_image;reg i_clk; reg i_rst; r…...
文件操作(个人学习笔记黑马学习)
C中对文件操作需要包含头文件<fstream > 文件类型分为两种: 1.文本文件:文件以文本的ASCII码形式存储在计算机中 2.二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们 操作文件的三大类: 1.ofstream: 写操作 …...
Android Studio新版本New UI及相关设置丨遥遥领先版
1、前言 俗话说工欲善其事必先利其器嘛,工具用不好怎么行呢,借着Android Studio的更新,介绍一下新版本中的更新内容,以及日常开发中那些好用的设置。 2、关于新版本 2.1、最新正式版本 Android Studio Giraffe | 2022.3.1 Pat…...
新型人工智能技术让机器人的识别能力大幅提升
原创 | 文 BFT机器人 在德克萨斯大学达拉斯分校的智能机器人和视觉实验室里,一个机器人在桌子上移动一包黄油玩具。通过达拉斯分校计算机科学家团队开发的新系统,机器人每推动一次,就能学会识别物体。 新系统允许机器人多次推动物体…...
聚观早报|蚂蚁集团发布“蚁天鉴”;vivo X100系列即将亮相
【聚观365】9月12日消息 蚂蚁集团发布“蚁天鉴” vivo X100系列即将亮相 台积电8月份营收59亿美元 8月公共充电桩环比增加6.1万台 吴泳铭接替张勇出任阿里云代理董事长与CEO 蚂蚁集团发布“蚁天鉴” 蚂蚁集团发布大模型安全一体化解决方案“蚁天鉴”。该方案包含了大模型…...
读高性能MySQL(第4版)笔记05_优化服务器设置
1. 除非遇到异常情况,否则不需要调整配置 1.1. 不要“调优”服务器,不要使用比率、公式或“调优脚本”作为设置配置变量的基础 1.1.1. 在互联网上搜索配置建议并不总是一个好主意,你会在博客、论坛等找到很多糟糕的建议 1.1.2. 很难判断谁…...
Spring Boot跨域问题简介
什么是跨域问题? 在Web开发中,跨域指的是在浏览器中访问一个不同于当前域名的资源。浏览器出于安全考虑,限制了这种跨域资源的访问。具体来说,当浏览器使用XMLHttpRequest或Fetch API发送跨域请求时,目标服务器必须在…...
【Java】过滤器和拦截器区别
文章目录 前言1、过滤器 (Filter)2、拦截器 (Interceptor)3、我们不一样3.1、实现原理不同3.2、使用范围不同3.3、触发时机不同 4、拦截的请求范围不同5、注入Bean情况不同6、控制执行顺序不同总结 前言 准备环境 我们在项目中同时配置 拦截器 和 过滤器。 1、过滤器 (Filter…...
es滚动查询分析和使用步骤
ES在进行普通的查询时,默认只会查询出来10条数据。我们通过设置es中的size可以将最终的查询结果从10增加到10000。如果需要查询数据量大于es的翻页限制或者需要将es的数据进行导出又当如何? Elasticsearch提供了一种称为"滚动查询"(…...
飞书公式总结
文本处理函数 飞书中的表格,需要实现 内容内容1条件1内容2条件2内容3条件3今天是周一;可以出去玩今天是周一能今天天气不错不能可以出去玩能 条件1,2,3为能时,把对应的内容1,内容2,内容3复制到内容 TEX…...
vue3.2 导出pdf文件或表格数据
要在Vue 3中导出PDF文件,你可以使用第三方库来处理PDF生成和导出。一个常用的库是jspdf,它允许你在客户端或服务器端生成PDF文档。 以下是在Vue 3中使用jspdf库导出PDF文件的基本步骤: 第一步首先,安装jspdf库。你可以使用npm或ya…...
Linux学习--MySQL学习之查询语句
所有实现基于mysql8.0.26实现,事例代码 1:常用函数 字符函数数学函数日期函数聚集函数数学计算if函数case函数 函数:MySQL服务内置命令 语法:函数名(表头名) select格式 SELECT 函数(表头名) FROM 库名.表名; SE…...
三、视频设备的枚举以及插拔检测
一、前言 本章主要讲述,如何获取设备名称以及guid,采集设备的采集格式识别,设备的插拔 设备列表以及属性的获取使用的directshow(后续的MediaFoundation无法获取OBS摄像头) 设备的插拔使用的是QT 捕获系统消息,捕获到设备插拔后&a…...
Qt开发_调用OpenCV(4.x)完成人脸检测并绘制马赛克(摄像头实时数据)
一、前言 这个基于Qt和OpenCV的人脸检测和人脸打码项目是通过实时视频流中的人脸识别来保护隐私。 该项目目的是保护隐私并确保人脸数据安全。在某些情况下,使用实时视频流进行人脸检测和识别可能涉及对个人隐私的侵犯。通过在图像中打码人脸区域,可以避免未经许可的人脸出…...
ssl证书有效期为什么越来越短?
随着互联网的发展和网络安全意识的提升,SSL证书在保护网络通信安全方面起到了极为重要的作用。SSL证书通过加密通信数据,确保信息在传输过程中不被窃取或篡改,为用户提供了安全可靠的网络环境。然而,近年来SSL证书的有效期不断缩短…...
XFF漏洞利用([SWPUCTF 2021 新赛]Do_you_know_http)
原理 常见的存在HTTP头注入的参数 User-Agent:使得服务器能够识别客户使用的操作系统,浏览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中) Cookie:网站为了辨别用户身份进行se…...
Java——》JVM对原生的锁做了哪些优化
推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
