ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana
前言
你知道对于一个系统的上线考察,必备的几样东西是什么吗?其实这也是面试中考察求职者,是否真的做过系统开发和上线的必备问题。包括:服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志,如果你做的系统里没有这样几个东西,一种是说明系统是玩具项目,另外一种就是压根没做过或者没关心过。
Elastic Stack 技术栈,别是 Elasticsearch、Logstash、Kibana 组成,简称 ELK 是一套针对日志数据做解决方案的框架。它使您能够聚合来自所有系统和应用程序的日志,分析这些日志,并创建可视化来进行应用程序和基础设施监控、更快的故障排除、安全分析等。
综上,3个组件的组合使用。由 Logstash 将摄取、转换数据并将其发送到 Elasticsearch 为摄取的数据编制索引,并且分析和搜索这些数据。最终 Kibana 会将分析结果可视化。也就是你可以在 Kibana 上实时看到系统的运行日志。
环境配置
环境;jdk 1.8、Maven 3.6.x、Docker
组件;ELK version 7.17.14 支持 ARM&AMD
1:docker-compose.yml 运行时会加载下面的 kibana、logstash 配置信息。
2:kibana.yml 设置了资源的基本信息,包括 ES 的连接,中文汉化。
3:logstash.conf 设置了日志的格式,上报到 es:9200 的地址信息。这些都可以保持默认不用修改。
安装环境
version: '3'
# 执行脚本;docker-compose -f docker-compose.yml up -d
# 控制台;GET _cat/indices - 查看 springboot-logstash- 是否存在,上报后存在,则表示接入成功
services:elasticsearch:image: elasticsearch:7.17.14ports:- '9200:9200'- '9300:9300'container_name: elasticsearchrestart: alwaysenvironment:- 'cluster.name=elasticsearch' # 设置集群名称为elasticsearch- 'discovery.type=single-node' # 以单一节点模式启动- "cluster.name=docker-cluster" # 设置名称- 'ES_JAVA_OPTS=-Xms512m -Xmx512m' # 设置使用jvm内存大小networks:- elklogstash:image: logstash:7.17.14container_name: logstashrestart: alwaysvolumes:- /etc/localtime:/etc/localtime- ./logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.confports:- '4560:4560'- '50000:50000/tcp'- '50000:50000/udp'- '9600:9600'environment:LS_JAVA_OPTS: -Xms1024m -Xmx1024mTZ: Asia/ShanghaiMONITORING_ENABLED: falselinks:- elasticsearch:es # 可以用es这个域名访问elasticsearch服务networks:- elkdepends_on:- elasticsearch # 依赖elasticsearch启动后在启动logstashkibana:image: kibana:7.17.14container_name: kibanarestart: alwaysvolumes:- /etc/localtime:/etc/localtime- ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.ymlports:- '5601:5601'links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务environment:- ELASTICSEARCH_URL=http://elasticsearch:9200 #设置访问elasticsearch的地址- 'elasticsearch.hosts=http://es:9200' #设置访问elasticsearch的地址- I18N_LOCALE=zh-CNnetworks:- elkdepends_on:- elasticsearchnetworks:elk:driver: bridge #网络
日志配置
引入pom.xml-logstash
<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>7.3</version>
</dependency>
logback 采集
# logstash部署的服务器IP
logstash:host: 127.0.0.1
<springProperty name="LOG_STASH_HOST" scope="context" source="logstash.host" defaultValue="127.0.0.1"/><!--输出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><!--可以访问的logstash日志收集端口--><destination>${LOG_STASH_HOST}:4560</destination><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender><root level="info"><appender-ref ref="LOGSTASH"/>
</root>
应用测试
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class);}/*** curl http://localhost:8091/api/ratelimiter/login?fingerprint=uljpplllll01009&uId=1000&token=8790*/@RequestMapping(value = "login", method = RequestMethod.GET)public String login(String fingerprint, String uId, String token) {log.info("模拟登录 login fingerprint:{}", fingerprint);return "模拟登录:登录成功 " + uId;}}
1:地址:http://0.0.0.0:5601/app/dev_tools#/console(opens new window)
2:命令:GET _cat/indices - 通过命令检测日志上报
配置日志
创建索引
当你的应用启动后,会上报数据。这个时候在点击 Discover 会提示你有可用的数据。
回到监控
创建索引后,回到 Discover 即可查看监控日志。在这个阶段,你可以访问应用程序接口,查看上报日志信息;http://localhost:8091/api/ratelimiter/login?fingerprint=uljpplllll01009&uId=1000&token=8790
当你不断的访问接口,就可以看到上报的日志数据信息了。
好了 至此 ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana 点点关注不迷路 老铁们!!!!!
相关文章:
ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana
前言 你知道对于一个系统的上线考察,必备的几样东西是什么吗?其实这也是面试中考察求职者,是否真的做过系统开发和上线的必备问题。包括:服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志,如果…...
把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用
将vue项目发布成npm库文件,第三方通过npm依赖安装使用;使用最近公司接了一个项目,这个项目需要集成到第三方页面,在第三方页面点击项目名称,页面变成我们的项目页面;要求以npm库文件提供给他们;…...
遇到复杂的 递归查询sql 需要oracle 转pgsql 可以把数据表结构给ai
遇到复杂的 递归查询sql 需要oracle 转pgsql 可以把数据表结构给ai 并且 建立备份表 把需要的很少的数据放到表里面 这样 ai 可以很好的判断sql 咋写 还可以,让ai解释oracle sql 然后拿到描述和表和字段,给ai让他生成pgsql 的sql,亲测有效...
smell---Paddle-DI
跨模态文档智能大模型–Ernie-Layout 目标:提取文档中无结构或半结构化的知识 github项目地址 Paddle NLP ERNIE-Layout基于Transformer Encode架构,并提出以下trick: 1、OCR工具提取信息 借助OCR工具提取图片中的文字及文字对应的坐标信息…...
【JavaWeb后端学习笔记】MySQL的数据控制语言(Data Control Language,DCL)
MySQL DCL 1、管理用户2、控制权限 DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库访问权限。 1、管理用户 管理用户的操作都需要在MySQL自带的 mysql 数据库中进行。 -- 查询用户 -- 需要先切换到MyS…...
python +tkinter绘制彩虹和云朵
python tkinter绘制彩虹和云朵 彩虹,简称虹,是气象中的一种光学现象,当太阳光照射到半空中的水滴,光线被折射及反射,在天空上形成拱形的七彩光谱,由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…...
【银河麒麟高级服务器操作系统实例】tcp半链接数溢出分析及处理全过程
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://document.kylinos.cn 服务器环境以及配置 系统环境 物理机/虚拟机/云…...
python实现,outlook每接收一封邮件运行检查逻辑,然后发送一封邮件给指定邮箱
以下是一个使用 Python 和 win32com.client 模块实现的示例代码,每当 Outlook 接收到一封新邮件时,执行检查逻辑并发送一封邮件到指定邮箱。这个代码依赖于 Windows 系统和安装了 Microsoft Outlook。 环境准备 确保安装了 pywin32 库:pip …...
HTML——70. 多行文本输入框
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>多行文本输入框</title></head><body><!--单行文本输入框在输入长度超过文本框长度,则超出部分会被隐藏掉(即超出部分看不到&a…...
leetcode题目(3)
目录 1.加一 2.二进制求和 3.x的平方根 4.爬楼梯 5.颜色分类 6.二叉树的中序遍历 1.加一 https://leetcode.cn/problems/plus-one/ class Solution { public:vector<int> plusOne(vector<int>& digits) {int n digits.size();for(int i n -1;i>0;-…...
Spring Security(maven项目) 3.0.2.4版本
前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…...
ArcgisServer过了元旦忽然用不了了?许可过期
昨天过完元旦之后上班发现好多ArcgisServer的站点运行出错了,点击日志发现,说是许可过去,也就是当时安装ArcgisServer时读取的ecp文件过期了,需要重新读取。 解决方法 1.临时方法,修改系统时间,早于2024年…...
Ubuntu22.04配置静态ip
1. 编辑网络配置文件 sudo vim /etc/netplan/00-installer-config.yaml 2.输入下面配置 将静态ip设置为192.168.3.200 ,并设置路由器地址192.168.3.1,以及dns地址 223.5.5.5和223.6.6.6 dhcp4: false 表示取消动态分配ip network:ethernets:e…...
router 动态路由与懒加载
路由的使用 静态路由 静态路由: 引入组件然后挂载到router的component下,这样在页面刷新时,就会直接请求引入, 当项目越来越大时, 初始化的时间就会越来越长,因为它要将所有的页面全部引入后才会去渲染页面. 不管你当前页面有没有用到, 初始化是加载的是项目中所有组件,以及t…...
网络安全 | 信息安全管理体系(ISMS)认证与实施
网络安全 | 信息安全管理体系(ISMS)认证与实施 一、前言二、信息安全管理体系(ISMS)概述2.1 ISMS 的定义与内涵2.2 ISMS 的核心标准 ——ISO/IEC 27001 三、信息安全管理体系(ISMS)认证3.1 认证的意义与价值…...
【机器学习:一、机器学习简介】
机器学习是当前人工智能领域的重要分支,其目标是通过算法从数据中提取模式和知识,并进行预测或决策。以下从 机器学习概述、有监督学习 和 无监督学习 三个方面进行介绍。 机器学习概述 机器学习定义 机器学习(Machine Learning࿰…...
DjangoORM字段参数、常用字段类型及参数、模型和表单验证器详解
由于项目原因必须使用DjangoORM模型,所以今天整理了一下关于DjangoORM模型里的详细内容。包含字段参数、常用字段类型及参数、模型和表单验证器。 一、通用字段参数 这些参数可以应用于多种字段类型: (1)null:如果为 …...
【pyqt】(四)Designer布局
布局 之前我们利用鼠标拖动的控件的时候,发现一些部件很难完成对齐这些工作,pyqt为我们提供的多种布局功能不仅可以让排版更加美观,还能够让界面自适应窗口大小的变化,使得布局美观合理。最常使用的三种布局就是垂直河子布局、水…...
每日一学——自动化工具(Jenkins)
3.2 Jenkins 3.2.1 CI/CD流程设计 嘿,小伙伴们!今天我们来聊聊Jenkins——这个在持续集成(CI)和持续部署(CD)领域里大名鼎鼎的工具。Jenkins不仅可以帮我们自动化构建和测试代码,还能自动部署…...
k8s基础(1)—Kubernetes-Pod
一、Pod简介 Pod是Kubernetes(k8s)系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型。Pod是由一个或多个容器组成的,这些容器共享存储和网络资源,可以看作是一个逻辑的主机。…...
《Java核心技术 卷II》流的创建
流的创建 Collection接口中stream方法可以将任何集合转换为一个流。 用静态Stream.of转化成数组。 Stream words Stream.of(contents.split("\\PL")); of方法具有可变长参数,可以构建具有任意数量的流。 使用Array.stream(array,from,to)可以用数组…...
单片机实物成品-010 智能宠物喂食系统(代码+硬件+论文)
项目介绍 版本1:oled显示定时投喂(舵机模拟)声光报警显示实时时间 ---演示视频: 智能宠物喂食001_哔哩哔哩_bilibili 1. STM32F103C8T6 单片机进行数据处理 2. OLED 液晶显示 3,按键1 在数据显示界面时按下按键1切…...
我用AI学Android Jetpack Compose之开篇
打算写一个系列,我用AI学Android Jetpack Compose,本教程需要有一定Android开发基础的同学,至少能运行成功Hello World!会基本的Java或Kotlin语法,如果不会,先去学习基本的Android应用开发,推荐…...
算法题(24):只出现一次的数字(二)
审题: 数组中除了答案元素只出现一次外,其他元素都会出现三次,我们需要找到并返回答案元素 思路: 由于现在会出现三次,所以利用异或运算符的方法就会失效。而所有数据都在32位二进制范围内,所以我们采用依次…...
计算机网络 (15)宽带接入技术
前言 计算机网络宽带接入技术是指通过高速、大容量的通信信道或网络,实现用户与互联网或其他通信网络之间的高速连接。 一、宽带接入技术的定义与特点 定义:宽带接入技术是指能够传输大量数据的通信信道或网络,其传输速度通常较高,…...
什么是索引
在数据库管理系统中,索引是一种数据结构,用于快速定位数据库表中的特定记录。索引类似于一本书的目录,可以帮助数据库引擎迅速找到所需的数据,而不必扫描整个表。 类型:常见的数据库索引类型包括B树索引、哈希索引、全…...
【数据结构】树链刨分
1 u v k,修改路径上节点权值,将节点 uu 和节点 vv 之间路径上的所有节点(包括这两个节点)的权值增加 kk。2 u k,修改子树上节点权值,将以节点 uu 为根的子树上的所有节点的权值增加 kk。3 u v,询…...
perl包安装的CPAN大坑
先看一个用cpan安装的例子。 $cpan -i App::cpanminus Loading internal logger. Log::Log4perl recommended for better logging Reading /home/wubin/.cpan/MetadataDatabase was generated on Tue, 24 Dec 2024 15:29:01 GMT Running install for module App::cpanminusTry…...
打造三甲医院人工智能矩阵新引擎(四):医疗趋势预测大模型篇 EpiForecast与DeepHealthNet合成应用
一、引言 1.1 研究背景与意义 在当今数字化时代,医疗领域积累了海量的数据,涵盖电子病历、医学影像、基因序列、临床检验结果等多源异构信息。这些数据蕴含着疾病发生发展、治疗反应、疫情传播等规律,为医疗趋势预测提供了数据基础。准确的医疗趋势预测能辅助医疗机构提前…...
RSA e与phi不互质(AMM算法进行有限域开根)
e与phi不互质 这一部分学习来自trup师傅的博客 针对CTFer的e与phi不互素的问题 - 跳跳糖 1:m^t<n from Crypto.Util.number import * from secret import flag flag bflag{*********} m bytes_to_long(flag) p getPrime(1024) q getPrime(1024) n p * q …...
021-spring-springmvc-组件
SpringMVC的handMapping 比较重要的部分 比较重要的部分 比较重要的部分 关于组件的部分 这里以 RequestMappingHandlerMapping 为例子 默认的3个组件是: org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping org.springframework.web.servlet.mvc…...
【Leecode】Leecode刷题之路第99天之恢复二叉搜索树
题目出处 99-恢复二叉搜索树-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 99-恢复二叉搜索树-官方解法 方法1:显式中序遍历 思路: 代码示例:&…...
【从零开始入门unity游戏开发之——C#篇41】C#迭代器(Iterator)——自定义类实现 foreach 操作
文章目录 前言一、什么是迭代器?二、标准迭代器的实现方法1、自定义一个类CustomList2、让CustomList继承IEnumerable接口3、再继承IEnumerator接口4、完善迭代器功能5、**foreach遍历的本质**:6、在Reset方法里把光标复原 三、用yield return语法糖实现…...
运算符重载 - 自定义运算符行为
引言 C 是一种支持面向对象编程(OOP)的编程语言,它允许程序员通过运算符重载来自定义类的行为。运算符重载使得我们可以为自定义类型定义与内置类型相似的操作方式,从而使代码更加直观和易读。 本文将详细介绍 C 中的运算符重载…...
RabbitMQ-基本使用
RabbitMQ: One broker to queue them all | RabbitMQ 官方 安装到Docker中 docker run \-e RABBITMQ_DEFAULT_USERrabbit \-e RABBITMQ_DEFAULT_PASSrabbit \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network mynet\-d \rabbitmq:3…...
sklearn基础教程
sklearn,全称为Scikit-learn,是一个基于Python的开源机器学习库,广泛用于数据挖掘和数据分析。它建立在NumPy、SciPy和matplotlib这些科学计算库之上,提供了简单而高效的工具来解决各种机器学习问题。 安装 首先,确保…...
173. 矩阵距离 acwing -多路BFS
原题链接:173. 矩阵距离 - AcWing题库 给定一个 N行 M 列的 01矩阵 A,A[i][j] 与 A[k][l]]之间的曼哈顿距离定义为: dist(i,j,k,l)|i−k||j−l|| 输出一个 N 行 M 列的整数矩阵 B,其中: B[i][j]min1≤x≤N,1≤y≤M,A…...
【MySQL】--- 内置函数
Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: MySQL 🏠 时间函数 约定:我们在MySQL中说的日期指的是年 月 日,时间指的是时 分 秒。 🧷 now() select n…...
更改element-plus的table样式
表头样式: <el-table :data"props.tableData" style"width: 100%" :header-cell-style"headerCellStyle" :cell-style"cellStyle"> </el-table>样式: // 表头样式 const headerCellStyle {backgro…...
25.Java JUC 引入(进程与线程、线程的状态、并发与并行、管程、用户线程与守护线程)
一、JUC 简介 JUC 是 java.util.concurrent 工具包的简称,这是一个处理线程的工具包,从 JDK1.5 开始出现 二、进程与线程 1、基本介绍 (1)进程 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源…...
双目视觉:reprojectImageTo3D函数
前言 reprojectImageTo3D 是 OpenCV 中用于从视差图生成三维点云的函数。它的原理是利用视差图和相机的校准参数,通过三角测量法,计算每个像素对应的三维坐标。以下内容根据源码分析所写,觉得可以的话,点赞收藏哈!&am…...
深度解析 Kubernetes Service 负载均衡器及其在 Cube Studio 推理服务中的优化选择
目录 一、Kubernetes Service 负载均衡器概述 Service 的核心功能: 二、Kubernetes Service 类型及适用场景 1. ClusterIP(默认类型) 2. NodePort 3. LoadBalancer 4. ExternalName 5. Ingress(增强型 Service)…...
NLP 中文拼写检测纠正论文-07-NLPTEA-2020中文语法错误诊断共享任务概述
拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法,如果提升 100W 倍的性能? NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊! 一个提升英文单词拼…...
快速上手LangChain(三)构建检索增强生成(RAG)应用
文章目录 快速上手LangChain(三)构建检索增强生成(RAG)应用概述索引阿里嵌入模型 Embedding检索和生成RAG应用(demo:根据我的博客主页,分析一下我的技术栈)快速上手LangChain(三)构建检索增强生成(RAG)应用 langchain官方文档:https://python.langchain.ac.cn/do…...
深度学习中的离群值
文章目录 深度学习中有离群值吗?深度学习中的离群值来源:处理离群值的策略:1. 数据预处理阶段:2. 数据增强和鲁棒模型:3. 模型训练阶段:4. 异常检测集成模型: 如何处理对抗样本?总结…...
汽车燃油软件标定测试
油箱测试 确定油箱的参数: 总容积,额定容积,不可用容积等。油泵测试(静态) 分为加油测试,减油测试,1L或者500ml增减; 分别测试油泵的阻值输出,类似: 油量 阻…...
#C02L02P01. C02.L02.一维数组最值问题.知识点1.求最大值
从键盘读入n(1<n<100)个正整数,输出最大值。 算法分析 假设一个最大值 maxx0 ; maxx 依次跟数组中的元素进行比较; 如果该数组元素大于 maxx ,则将该数组元素值赋值给 maxx ; maxx 即…...
pycharm如何拉取一个git项目,然后,修改后再上传到自建的项目中?
以chattts为例 https://github.com/2noise/ChatTTS.git 1.建一个虚拟环境,用于项目使用 2.pycharm新建工程 3.忽略 提示 勾选,新建远程仓库 设置账号和密码 设置git路径,一般是正确的,点测试即可 &…...
【数据库初阶】MySQL中表的约束(上)
🎉博主首页: 有趣的中国人 🎉专栏首页: 数据库初阶 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL…...
smbms超市管理系统
系统测试及实现效果 完整源码已上传资源 登录界面 系统首页 订单管理页面 用户管理页面 供应商管理页面 密码修改 SQL语句分析 存储引擎:InnoDB,支持事务和外键;字符集:utf8,支持多语言字符;排序规则&am…...