当前位置: 首页 > article >正文

一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (二)

📄 本地 Windows 部署 Logstash 连接本地 Elasticsearch 指南

✅ 目标

  • 在本地 Windows 上安装并运行 Logstash
  • 配置 Logstash 将数据发送至本地 Elasticsearch
  • 测试数据采集与 ES 存储流程

🧰 前提条件

软件版本要求安装说明
Java17+Oracle JDK 下载 或 OpenJDK
Elasticsearch8.x / 7.xElasticsearch 下载
Logstash与 ES 版本一致Logstash 下载

💡 确保 Elasticsearch 已成功启动,并监听 http://localhost:9200


📦 步骤一:下载与解压

  1. 下载 Logstash:
  • 访问 Logstash 下载页面
  • 选择 ZIP 包(如 logstash-8.x.x.zip
  1. 解压到本地路径,例如:
    C:\elk\logstash-8.x.x
    

⚙️ 步骤二:配置 Logstash

1. 创建配置文件

C:\elk\logstash-8.x.x\config 目录下新建一个配置文件 logstash-to-es.conf,内容如下:

input {beats {port => 5044}
}filter {grok {match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} \[%{DATA:thread}\] %{LOGLEVEL:level} %{DATA:logger} - %{GREEDYDATA:message}" }}
}output {elasticsearch {hosts => ["https://localhost:9200"]index => "springboot-logs-%{+YYYY.MM.dd}"ssl_enabled => truessl_verification_mode => "full"ssl_certificate_authorities => ["D:/dev/dev2025/EC0601/elasticsearch-9.0.1/config/certs/http_ca.crt"]# 使用 API Key 认证 id:api_keyapi_key => "V6VUSpcBUPesLBBNVAlH:O7l1zeyOwQFfy9w5Af_JTA"}stdout {codec => rubydebug}
}
  • stdin: 从控制台输入日志
  • elasticsearch: 输出到本地 ES,索引按天分割
  • stdout: 控制台输出处理结果(调试用)

Elasticsearch API Key 权限机制说明

Elasticsearch 的 API key 可以绑定一组权限(privileges),这些权限可以包括:

  • 集群权限(Cluster privileges)
  • 索引权限(Index privileges)
  • 应用程序权限(Application privileges)

API key 的权限不能直接继承用户的角色权限,但可以通过创建带有特定权限的 API key 实现类似效果。


如何给 API key 添加权限

这里通过 REST API 创建带权限的 API Key

你可以使用如下请求来创建一个具有特定权限的 API key:

POST /_security/api_key
{"name": "logstash_api_key","role_descriptors": {"logstash_writer": {"cluster": ["monitor", "manage_index_templates"],"index": [{"names": ["*"],"privileges": ["read", "write", "create_index"]}]}}
}

在这里插入图片描述

🧾 参数说明:
字段含义
nameAPI key 的名称,方便识别
role_descriptors定义该 API key 所拥有的权限描述符
cluster集群级别权限,如 monitor, manage_index_templates
index.names索引模式,如 "logs-*""*"
index.privileges索引级别的权限,如 read, write, create_index

⚠️ 注意:Elasticsearch 7.10+ 支持 role_descriptors 方式创建 API key 权限。

▶️ 步骤三:启动 Logstash

打开命令提示符(CMD),进入 Logstash 根目录并执行:

 bin/logstash.bat -f config/logstash-sample.conf --log.level debug  

logstash-9.0.2/logs/logstash-plain.log 注意以下连接es的日志消息,确认output配置是否有问题

在这里插入图片描述

📄 Windows 本地部署 Filebeat 连接 Logstash 操作指南

✅ 一、目标

本指南旨在帮助用户在 本地 Windows 系统 上完成以下操作:

  • 安装并配置 Filebeat
  • 将 Filebeat 采集的日志发送到 本地运行的 Logstash
  • 实现日志采集 → 发送 → 接收的完整流程

🧰 二、环境要求

组件版本建议下载地址
操作系统Windows 10 / Windows Server(支持 Win7 及以上)-
Logstash与 Filebeat 版本一致(如 9.0.2)Elastic 官网
Filebeat与 Logstash 版本一致(如 9.0.2)Elastic 官网

⚠️ 建议使用相同版本的 Elastic Stack 组件以避免兼容性问题。


🔧 三、部署步骤

安装 Filebeat

  1. 访问 Filebeat 下载页面

  2. 下载适用于 Windows 的 ZIP 包,如:

    filebeat-9.0.2-windows-x86_64.zip
    
  3. 解压到本地目录,如:

    D:\filebeat
    

配置 Filebeat

编辑 D:\filebeat\filebeat.yml 文件,进行如下配置:

📁 设置日志输入路径(inputs)
filebeat.inputs:- type: filestreampaths:- D:/dev/dev2025/EC0601/logs/springboot-ai-rag-demo.logenabled: truefields:log_type: springboot-appapp_name: springboot-ai-rag-demofields_under_root: truemultiline:pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'negate: truematch: afteroutput.logstash:hosts: ["localhost:5044"]
#output.elasticsearch:
#  hosts: [ "localhost:9200" ]
#  username: "elastic"
#  password: "elastic"
# 启用 HTTP 状态接口
http.enabled: true
http.port: 5066
logging.level: debug
logging.selectors: ["*"]

日志内容为spirngboot应用日志:
在这里插入图片描述

可以在项目中配置将日志输出到 D:\dev\dev2025\EC0601\logs\springboot-ai-rag-demo.log 文件中。

logging.file.path=D:/dev/dev2025/EC0601/logs
logging.file.name=${logging.file.path}/springboot-ai-rag-demo.log
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
logging.level.root=INFO
logging.level.com.example.demo=DEBUG 

在这里插入图片描述

启动 Filebeat

.\filebeat.exe -e

🔍 四、验证数据是否到达 Logstash

方法一:查看 Logstash 相关日志, 确认 Filebeat 是否成功连接 Logstash。

在这里插入图片描述


方法二:使用 Kibana 查看索引

在这里插入图片描述

🧪 五、常见问题排查

问题现象可能原因解决方法
Filebeat 报错无法连接 LogstashLogstash 未启动或端口未监听确认 Logstash 是否运行,使用 `netstat -ano
Filebeat 不采集日志路径错误或权限不足检查 paths 配置;尝试以管理员身份运行 Filebeat
Logstash 收不到数据数据格式不匹配检查 Logstash 的 grok 过滤规则是否适配日志格式
Filebeat 卡住不动日志文件过大或编码问题尝试小文件测试;检查日志编码是否为 UTF-8

📌 六、总结

后续可以根据需要扩展功能,例如:

  • 添加多输入源(如 JSON、CSV)
  • 使用 TLS 加密通信
  • 输出到远程 Elasticsearch
  • 配置 为 Windows 服务自启动
  • 把es作为ai-rag服务的向量数据库,使用向量检索等

相关文章:

一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (二)

📄 本地 Windows 部署 Logstash 连接本地 Elasticsearch 指南 ✅ 目标 在本地 Windows 上安装并运行 Logstash配置 Logstash 将数据发送至本地 Elasticsearch测试数据采集与 ES 存储流程 🧰 前提条件 软件版本要求安装说明Java17Oracle JDK 下载 或 O…...

RT-Thread内核组成——内核移植

内核移植就是指将 RT-Thread 内核在不同的芯片架构、不同的板卡上运行起来,能够具备线程管理和调度,内存管理,线程间同步和通信、定时器管理等功能。移植可分为 CPU 架构移植和 BSP(Board support package,板级支持包&…...

Docker_Desktop开启k8s

Docker_Desktop开启k8s 原文地址:在 Docker Desktop 中启用 K8s 服务 - 墨墨墨墨小宇 - 博客园 开启k8s服务 打开docker的设置界面,选择Docker Engine,修改如下: {"debug": false,"experimental": false,…...

MS2691 全频段、多模导航、射频低噪声放大器芯片,应用于导航仪 双频测量仪

MS2691 全频段、多模导航、射频低噪声放大器芯片,应用于导航仪 双频测量仪 产品简述 MS2691 是一款具有 1164MHz  1615MHz 全频段、低功耗的低噪声放大器芯片。该芯片通过对外围电路的简单配置,使得频带具有宽带或窄带特性。支持不同频段的各种导…...

基于Java(SpringBoot、Mybatis、SpringMvc)+MySQL实现(Web)小二结账系统

结账系统 1.引言 1.1.编写目的 此说明书在概要设计的基础上,对小二结账系统的各个模块、程序分别进行了实现层面上的要求和说明。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。在本阶段中,确定应该如何具体的实现所要求的…...

Java泛型中的通配符详解

无界通配符 通配符的必要性 通过WrapperUtil类的示例可以清晰展示通配符的使用场景。假设我们需要为Wrapper类创建一个工具类WrapperUtil,其中包含一个静态方法printDetails(),该方法需要处理任意类型的Wrapper对象。最初的实现尝试如下: …...

Java方法引用深度解析:从匿名内部类到函数式编程的演进

文章目录 前言问题场景第一种:传统的匿名内部类技术解析优缺点分析 第二种:Lambda表达式的革命技术解析Lambda表达式的本质性能优势 第三种:方法引用的极致简洁技术解析 方法引用的四种类型1. 静态方法引用2. 实例方法引用3. 特定类型的任意对…...

三维GIS开发cesium智慧地铁教程(4)城市白模加载与样式控制

一、添加3D瓦片 <!-- 核心依赖引入 --> <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"><!-- 模型数据路径 --> u…...

越狱蒸馏-可再生安全基准测试

大家读完觉得有帮助记得关注&#xff01;&#xff01;&#xff01; 摘要 大型语言模型&#xff08;LLMs&#xff09;正迅速部署在关键应用中&#xff0c;这引发了对稳健安全基准测试的迫切需求。我们提出了越狱提炼&#xff08;JBDISTILL&#xff09;&#xff0c;这是一种新颖…...

64、js 中require和import有何区别?

在 JavaScript 中&#xff0c;require 和 import 都是用于模块导入的语法&#xff0c;但它们属于不同的模块系统&#xff0c;具有显著的区别&#xff1a; 1. 模块系统不同 require 属于 CommonJS 模块系统&#xff08;Node.js 默认使用&#xff09;。 语法&#xff1a;const…...

手机号段数据库与网络安全应用

手机号段数据库的构成与原理 手机号段数据库存储着海量手机号段及其关联信息&#xff0c;包括号段起始与结束号码、运营商归属、地区编码、卡类型等核心数据。这些数据主要来源于通信管理机构的官方分配信息、运营商的业务更新数据以及合法采集的使用数据。经过数据清洗、校验…...

Kafka 入门指南与一键部署

Kafka 介绍 想象一下你正在运营一个大型电商平台&#xff0c;每秒都有成千上万的用户浏览商品、下单、支付&#xff0c;同时后台系统还在记录用户行为、更新库存、处理物流信息。这些海量、持续产生的数据就像奔腾不息的河流&#xff0c;你需要一个强大、可靠且实时的系统来接…...

MATLAB实战:视觉伺服控制实现方案

以下是一个基于MATLAB的视觉伺服控制项目实现方案&#xff0c;结合实时图像处理、目标跟踪和控制系统设计。我们将使用模拟环境进行演示&#xff0c;但代码结构可直接应用于真实硬件。 系统架构 图像采集 → 目标检测 → 误差计算 → PID控制器 → 执行器控制 完整代码实现 …...

Oracle正则表达式学习

目录 一、正则表达简介 二、REGEXP_LIKE(x,匹配项) 三、REGEXP_INSTR 四、REGEXP_SUBSTR 五、REGEXP_REPLACE 一、正则表达简介 相关网址&#xff1a; https://cloud.tencent.com/developer/article/1456428 https://www.cnblogs.com/lxl57610/p/8227599.html https://…...

校招 java 面试基础题目及解析

我将结合常见的校招Java面试基础题目&#xff0c;从概念阐述、代码示例等角度展开&#xff0c;为你提供一份可用于学习的技术方案及应用实例。 校招Java面试基础题目解析与学习指南 在Java校招面试中&#xff0c;扎实掌握基础知识是成功的关键。本文将围绕常见的Java基础面试…...

# STM32F103 SD卡读写程序

下面是一个基于STM32F103系列微控制器的SD卡读写完整程序&#xff0c;使用标准外设库(StdPeriph)和FatFs文件系统。 硬件准备 STM32F103C8T6开发板(或其他F103系列)SD卡模块(SPI接口)连接线缆 硬件连接 SD卡模块 STM32F103 CS -> PA4 (SPI1_NSS) SCK -> PA5 (SPI…...

Spring中循环依赖问题的解决机制总结

一、解决机制 1. 什么是循环依赖 循环依赖是指两个或多个Bean之间相互依赖对方&#xff0c;形成一个闭环的依赖关系。最常见的情况是当Bean A依赖Bean B&#xff0c;而Bean B又依赖Bean A时&#xff0c;就形成了循环依赖。在Spring容器初始化过程中&#xff0c;如果不加以特殊…...

青少年编程与数学 01-011 系统软件简介 04 Linux操作系统

青少年编程与数学 01-011 系统软件简介 04 Linux操作系统 一、Linux 的发展历程&#xff08;一&#xff09;起源&#xff08;二&#xff09;早期发展&#xff08;三&#xff09;成熟与普及&#xff08;四&#xff09;移动与嵌入式领域的拓展 二、Linux 的内核与架构&#xff08…...

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表 Microsoft Power BI 可帮助您通过交互式报表准备数据并对数据进行可视化。 如果您是 Power BI 的新用户&#xff0c;可能很难知道从哪里开始&#xff0c;并且创建报表可能很耗时。 通过适用于 Power BI …...

损坏的RAID5 第十六次CCF-CSP计算机软件能力认证

纯大模拟 提前打好板子 我只通过4个用例点 然后就超时了。 #include<iostream> #include<cstring> #include<algorithm> #include<unordered_map> #include<bits/stdc.h> using namespace std; int n, s, l; unordered_map<int, string>…...

Android USB 通信开发

Android USB 通信开发主要涉及两种模式&#xff1a;主机模式(Host Mode)和配件模式(Accessory Mode)。以下是开发USB通信应用的关键知识点和步骤。 1. 基本概念 主机模式(Host Mode) Android设备作为USB主机&#xff0c;控制连接的USB设备 需要设备支持USB主机功能(通常需要O…...

Prompt提示工程指南#Kontext图像到图像

重要提示&#xff1a;单个prompt的最大token数为512 # 核心能力 Kontext图像编辑系统能够&#xff1a; 理解图像上下文语义实现精准的局部修改保持原始图像风格一致性支持复杂的多步迭代编辑 # 基础对象修改 示例场景&#xff1a;改变汽车颜色 Prompt设计&#xff1a; Change …...

产品经理课程(十一)

&#xff08;一&#xff09;复习 1、用户需求不等于产品需求&#xff0c;挖掘用户的本质需求 2、功能设计的前提&#xff1a;不违背我们的产品的基础定位&#xff08;用一句话阐述我们的产品&#xff1a;工具&#xff1a;产品画布&#xff09; 3、判断设计好坏的标准&#xf…...

Moldflow充填分析设置

1. 如何选择注塑机&#xff1a; 注塑机初选按注射量来选择&#xff1a; 点网格统计;选择三角形, 三角形体积就是产品的体积 47.7304 cm^3 点网格统计;选择柱体, 柱体的体积就是浇注系统的体积2.69 cm^3 所以总体积产品体积浇注系统体积 47.732.69 cm^3 材料的熔体密度与固体…...

Imprompter: Tricking LLM Agents into Improper Tool Use

原文&#xff1a;Imprompter: Tricking LLM Agents into Improper Tool Use 代码&#xff1a;Reapor-Yurnero/imprompter: Codebase of https://arxiv.org/abs/2410.14923 实机演示&#xff1a;Imprompter 摘要&#xff1a; 新兴发展的Agent可以将LLM与外部资源工具相结合&a…...

python asyncio的作用

协程是可以暂停运行和恢复运行的函数。协程函数是用async定义的函数。它与普通的函数最大的区别是&#xff0c;当执行的时候不会真的执行里面的代码&#xff0c;而是返回一个协程对象&#xff0c;在执行协程对象时才执行里面真正的代码。 例如代码&#xff1a; async def cor…...

【大模型:知识图谱】--3.py2neo连接图数据库neo4j

【图数据库】--Neo4j 安装_neo4j安装-CSDN博客 需要打开图数据库Neo4j&#xff0c; neo4j console 目录 1.图数据库--连接 2.图数据库--操作 2.1.创建节点 2.2.删除节点 2.3.增改属性 2.4.建立关系 2.5.查询节点 2.6.查询关系 3.图数据库--实例 1.图数据库--连接 fr…...

如何理解机器人课程的技术壁垒~壁垒和赚钱是两件不同的事情

答疑&#xff1a; 有部分朋友私聊说博客内容&#xff0c;越来越不适合人类阅读习惯…… 可以做这种理解&#xff0c;我从23年之后&#xff0c;博客会不会就是写给机器看的。 或者说我在以黑盒方式测试AI推荐的风格。 主观-客观-主观螺旋式发展过程。 2015最早的一篇博客重…...

如何从零开始建设一个网站?

当你没有建站的基础和建站的知识&#xff0c;那么应该如何开展网站建设和网站管理。而今天的教程是不管你是为自己建站还是为他人建站都适合的。本教程会指导你如何进入建站&#xff0c;将建站的步骤给大家分解&#xff1a; 首先我们了解一下&#xff0c;建站需要那些步骤和流程…...

selinux firewalld

一、selinux 1.说明 SELinux 是 Security-Enhanced Linux 的缩写&#xff0c;意思是安全强化的 linux&#xff1b; SELinux 主要由美国国家安全局&#xff08;NSA&#xff09;开发&#xff0c;当初开发的目的是为了避免资源的误用 DAC&#xff08;Discretionary Access Cont…...