ELK日志文件分析系统——L(Logstash)

Logstash原理介绍及应用 目录 1、Logstash安装 2、Logstash原理 2.1 输入、过滤器和输出 2.2 采集各种样式、大小和来源的数据 2.3 实时解析和转换数据 2.4 导出数据 3、 LogStash入门使用 3.1 Input插件 4、Logstash高级使用 4.1 jdbc插件 4.2 syslog插件 4.3 filter插件 4.4 Output插件 logstash是一种分布式日志收集框架,开发语言是JRuby,当然是为了与Java平台对接,不过与Ruby语法兼容良好. 阅读详情

目录

基本概念

‌一、架构设计‌

‌二、核心原理‌

‌三、关键特性‌

‌四、应用意义‌

基本部署 

‌一、环境准备‌

‌二、安装Logstash‌

‌三、配置文件解析‌

‌四、服务管理命令‌

‌五、生产环境调优‌

‌六、验证流程‌

‌附:与Elasticsearch版本对照表‌

命令解析 

‌一、基础运行框架‌

‌二、核心命令参数解析‌

‌三、管道(Pipeline)控制参数‌

‌四、配置文件加载模式‌

‌五、调试与监控命令‌

‌六、生产环境关键命令示例‌

‌附:与Filebeat联用命令‌


基本概念

‌一、架构设计‌

  1. ‌三层管道模型‌

    • ‌Input插件‌:数据采集层(如Filebeat/Kafka/JDBC),支持200+数据源接入
    • ‌Filter插件‌:数据处理层(Grok解析、字段脱敏、GeoIP转换)
    • ‌Output插件‌:数据输出层(ES/Kafka/S3等),支持多目的地分发
  2. ‌线程模型‌

    • 每个管道(Pipeline)独立运行,采用pipeline.workers配置并发线程数
    • 队列机制:内存队列(默认)或持久化队列(防止数据丢失)

‌二、核心原理‌

  1. ‌事件处理流程‌

    输入数据 → 解码为Event对象 → Filter链式处理 → 序列化输出 
    • ‌Event对象‌:包含原始数据、字段(@metadata)和时间戳
  2. ‌Grok正则引擎‌

    • 内置120+模式(如IP/EMAIL),支持自定义规则匹配复杂日志
    %{IP:client} %{WORD:method} %{URIPATHPARAM:request} # 解析Nginx日志 
  3. ‌持久化队列‌

    • 启用后数据先写入磁盘队列(queue.type: persisted),保障At-Least-Once投递

‌三、关键特性‌

  1. ‌插件化生态‌

    • 官方/社区插件超500个,可通过bin/logstash-plugin管理
  2. ‌数据处理能力‌

    • 支持JSON解析、CSV转换、字段条件判断(if-else)
  3. ‌资源监控‌

    • HTTP API提供实时指标(GET /_node/stats)
  4. ‌跨平台性‌

    • 支持容器化部署(Docker/K8s),资源占用可控(JVM堆可调)

‌四、应用意义‌

  1. ‌日志统一治理‌

    • 将分散的Nginx/应用日志标准化为JSON格式,便于ES分析
  2. ‌实时数据管道‌

    • 同步数据库变更到ES(通过JDBC输入插件)
  3. ‌安全合规‌

    • 敏感字段脱敏(如filter { mutate { gsub => "[card]", "\\d", "*" } })
  4. ‌成本优化‌

    • 替代商业ETL工具(如Informatica),降低数据处理成本

Logstash作为ELK栈的核心组件,通过灵活的插件体系实现了数据采集、转换和分发的全流程自动化。其价值在日志分析、实时数仓等场景尤为突出。

基本部署 

‌一、环境准备‌

  1. ‌安装JDK 17+‌

    sudo apt update && sudo apt install openjdk-17-jdk -y # Ubuntu/Debian系统安装:ml-citation{ref="10" data="citationList"} 
    java -version # 验证版本需显示"17.x.x" 
  2. ‌系统优化‌

    echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf # 提升内存映射限制:ml-citation{ref="8" data="citationList"} 
    sudo sysctl -p # 立即生效 

‌二、安装Logstash‌

  1. ‌通过APT仓库安装(推荐)‌

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - # 添加密钥:ml-citation{ref="10" data="citationList"} 
    echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic.list # 添加仓库:ml-citation{ref="11" data="citationList"} 
    sudo apt update && sudo apt install logstash # 自动安装服务:ml-citation{ref="10" data="citationList"} 
  2. ‌手动安装(自定义路径)‌

    wget https://artifacts.elastic.co/downloads/logstash/logstash-8.13.4-linux-x86_64.tar.gz # 下载包:ml-citation{ref="3" data="citationList"} 
    tar -zxvf logstash-8.13.4-linux-x86_64.tar.gz -C /usr/local/ # 解压到指定目录:ml-citation{ref="3" data="citationList"} 

‌三、配置文件解析‌

  1. ‌核心配置结构‌

    input {
     file {
         path => "/var/log/nginx/*.log" # 监控日志路径:ml-citation{ref="3" data="citationList"}
         start_position => "beginning" # 从文件开头读取:ml-citation{ref="3" data="citationList"}
         }
     }
     filter {
     grok {
         match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request}" } # 日志解析:ml-citation{ref="5" data="citationList"}
         }
     }
     output {
         elasticsearch {
             hosts => ["http://es-node:9200"] # ES集群地址:ml-citation{ref="3" data="citationList"}
             index => "nginx-%{+YYYY.MM.dd}" # 按日期分索引:ml-citation{ref="3" data="citationList"}
         }
     } 
  2. ‌配置文件存放路径‌

    • 默认位置:/etc/logstash/conf.d/(APT安装)
    • 自定义位置:/usr/local/logstash/config/(手动安装)

‌四、服务管理命令‌

命令作用示例输出关键字段
sudo systemctl start logstash启动服务Active: active (running)
sudo journalctl -u logstash -f查看实时日志过滤Pipeline started成功消息
curl -XGET 'localhost:9600/_node/stats'获取运行指标pipelines.workers线程数

‌五、生产环境调优‌

  1. ‌JVM堆内存设置‌

    # 修改/etc/logstash/jvm.options
     -Xms4g # 初始堆大小(建议不超过物理内存50%):ml-citation{ref="8" data="citationList"}
     -Xmx4g # 最大堆大小 
  2. ‌启用持久化队列‌

    # 在logstash.yml中添加 
    queue.type: persisted # 防止数据丢失:ml-citation{ref="4" data="citationList"} 
    path.queue: /var/lib/logstash/queue # 队列存储路径:ml-citation{ref="4" data="citationList"} 

‌六、验证流程‌

  1. ‌测试配置文件语法‌

    /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf --config.test_and_exit # 仅检查语法:ml-citation{ref="8" data="citationList"} 
  2. ‌临时运行测试‌

    /usr/share/logstash/bin/logstash -e 'input { stdin {} } output { stdout { codec => rubydebug } }' # 控制台交互测试:ml-citation{ref="1" data="citationList"} 

    输入任意文本后应返回结构化输出(如"message" => "输入内容")


‌附:与Elasticsearch版本对照表‌

Logstash版本ES兼容版本备注
8.x8.x必须严格版本匹配
7.17.x7.17.x跨小版本可能不兼容

部署时需特别注意组件版本一致性,避免出现协议不兼容问题。

命令解析 

‌一、基础运行框架‌

bin/logstash [选项] # 所有平台通用启动命令:ml-citation{ref="2,3" data="citationList"} 
  • ‌Unix/Linux‌:bin/logstash
  • ‌Windows‌:bin/logstash.bat

‌二、核心命令参数解析‌

参数作用示例默认值
-e直接执行字符串配置-e 'input { stdin {} } output { stdout {} }'无
-f加载配置文件/目录-f /etc/logstash/conf.d/无
-n指定实例名称-n "prod-logstash-01"主机名
--config.test_and_exit仅验证配置文件语法-f test.conf --config.test_and_exit无

‌三、管道(Pipeline)控制参数‌

--pipeline.workers 4 # 处理线程数(建议=CPU核心数):ml-citation{ref="2,4" data="citationList"} 
--pipeline.batch.size 125 # 每批处理事件数:ml-citation{ref="2,4" data="citationList"} 
--pipeline.batch.delay 50 # 批次等待时间(ms):ml-citation{ref="2,4" data="citationList"} 

‌四、配置文件加载模式‌

  1. ‌单文件模式‌

    bin/logstash -f nginx.conf # 加载单个配置文件:ml-citation{ref="2,3" data="citationList"} 
  2. ‌目录模式‌

    bin/logstash -f /etc/logstash/conf.d/ # 加载目录下所有.conf文件(按字母顺序合并):ml-citation{ref="2,3" data="citationList"} 

‌五、调试与监控命令‌

  1. ‌实时日志跟踪‌

    tail -f /var/log/logstash/logstash-plain.log # 查看运行日志:ml-citation{ref="6" data="citationList"} 
  2. ‌API获取指标‌

    curl -XGET 'localhost:9600/_node/stats' | jq # 查看线程/队列状态:ml-citation{ref="6" data="citationList"} 

‌六、生产环境关键命令示例‌

bin/logstash \
 -n "logstash-web-tier" \ # 实例命名:ml-citation{ref="3" data="citationList"}
 -f /etc/logstash/web.conf \ # 加载配置:ml-citation{ref="2" data="citationList"}
 --path.data /mnt/logstash_data \ # 自定义数据目录:ml-citation{ref="4" data="citationList"}
 --config.reload.automatic # 启用配置热更新:ml-citation{ref="4" data="citationList"} 

‌附:与Filebeat联用命令‌

input {
 beats {
     port => 5044 # 监听5044端口接收Filebeat数据:ml-citation{ref="1,6" data="citationList"}
     ssl => false # 测试环境禁用SSL:ml-citation{ref="6" data="citationList"}
     } 
} 

通过合理组合这些命令参数,可实现从开发测试到生产部署的全流程控制。

Logstash配置语法 文章目录Logstash基本语法组成Logstash输入插件(Input)Logstash编码插件(Codec)Logstash过滤器插件(Filter插件)Logstash输出插件(output) Logstash基本语法组成 logstash之所以功能强大和流行,还与其丰富的过滤器插件是分不开的,过滤器提供的并不单单是过滤的功能,还可以对进入过滤器的原始数据进行复杂的逻辑处理,甚至添加独特的事件到后续流程中。 Logstash配置文件有如下三部分组成,其中input、output部分是必须配置,filt 阅读详情

相关推荐

logstash简介及架构(一篇精通直接上手)

1、logstash介绍 数据收集处理引擎 ETL工具 2、logstash架构简介 Logstash Event是一个java object,它对外暴露了获取内部字段以及修改内部字段值的一些api。 下面举例讲解: stdin:标准输入 codec是line,这个codec的作用就是按照每一行切割数据,就是说把每一行都转换成logstash event stdout:标准输出 codec是json,这个codec的作用就是把每一个logstash event转换

Null的博客 9151

LogStash 简介

目录1. 概述2. 体系结构2.1 插件2.2 事件2.2.1 访问事件属性2.2.2 事件 API2.3 队列2.3.1 持久化队列2.3.2 死信队列3. 管道配置3.1 主管道配置3.2 单管道配置3.3 多管道配置4. 编解码器插件4.1 plain 插件4.2 line 编解码器4.3 json 编解码器4.4 序列化编解码器5. 输入输出插件5.1 stdin 输入插件和 stdout 插件5.2 elasticsearch 插件5.3 文件插件5.3.1 事件属性5.3.2 读取模式5.3.3

Fisher3652的博客 1万+

Springboot(五十五)SpringBoot整合ELK实现日志可视化

这里需要注意一下,将文件中“你的ip”换成你服务器的ip,并且端口号5044要与Logstash服务器配置的监听端口一致。要先部署elasticsearch,在部署logstash,部署logstash需要用到es的账号和密码。我的es是有用户名密码的,如果你的es没有,那就不需要。到这里,Springboot就配置完成了,启动项目。ELK部署完成之后,下边我记录一下我在Springboot框架中集成的全过程。这里需要注意一下,ELK的版本需要一致,我这里使用的事7.17.3版本。关于他们的部署,请移步。

camellia的博客 2820

Logstash:Logstash 入门教程 (一)

Logstash是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据。 如果你的数据需要Beats中没有的其他处理,则需要将Logstash添加到部署中。 Logstash是Elastic栈非常重要的一部分,但是它不仅仅为Elasticsearch所使用。它可以介绍广泛的各种数据源。Logstash可以帮利用它自己的Filter帮我们对......

Elastic 中国社区官方博客 8万+

Elasticsearch、Kibana和Logstash:ELK堆栈实战资料整理

Elasticsearch 使用分布式的文档存储机制,每个文档都存储在分片中,并且可以跨多个节点分布。Elasticsearch 采用无中心化的对等网络架构,确保了系统的高可用性和容错性。每个分片都可以有零个或多个副本,副本可以提高查询性能并提供数据冗余。Kibana 的数据可视化与交互式分析功能为数据探索提供了一个强大的平台。通过其直观的界面和丰富的功能,用户可以快速创建和管理可视化仪表板,进行时间序列分析,并执行各种高级搜索操作。

weixin_31869917的博客 837

Aspose Java 25.10 版本深度破解:基于字节码修改的实战指南

本文提供了Aspose Java 25.10版本基于字节码修改的实战指南。详细介绍了如何通过Javassist工具逆向分析并修改Aspose Cells、Words、Slides及PDF组件的许可证验证逻辑,从而实现绕过限制,并完成最终的打包与功能验证。

stone的博客 1351

ELK 日志文件分析系统

ELK日志分析一、概述二、ELK的组件1.1 Elasticsearch1.2 Logstash1.3 Kibana三、日志处理步骤四、Elasticsearch 介绍面试题五、Logstash 介绍1.1 Logstash 主要组件1.2 Shipper 日志收集者1.3 Indexer 日志存储1.4 Broker 日志Hub1.5 Search and Storage1.6 Web Interface六、Kibana 介绍七、搭建部署ELK1.1 拓扑图1.2 配置步骤1.2.1 配置节点名1.2.1

serendipity_cat的博客 1006

基于SHIS凝视型短波红外高光谱相机(900-1700nm)区分不同宝石的差异性和可分性(宝石分选)

SHIS系列凝视型高光谱相机基于液晶可调谐滤波器(LCTF),通过电控LCTF进行连续细分窄波段分光,对每个波段进行高分辨率的二维面阵成像,进行图像处理后,获得完整的高光谱高清图像序列。具有低功耗、小型化、使用方便和易于扩展的优势。其工作波段覆盖400nm至1000nm,能够捕捉宝石在不同波长下的光谱特征,为宝石鉴定提供了新的工具。

wayho的博客 707

ELK 企业级日志分析系统

上次分享了关于zookeeper基础概念以及集群的搭建部署,今天主要是讲一下关于ELK企业级日志分析系统的相关概念和部署。今天主要是给读者们讲解了一下关于ELK企业级日志分析系统的一个整体作用的讲解以及详细的部署操作,希望对读者们有所帮助!

m0_48877765的博客 1292

BQ40Z50R2循环学习实战:量产文件生成与关键状态位解析

本文详细解析了TI BQ40Z50R2电量计循环学习(Golden Learning)的实战流程与量产文件生成方法。重点剖析了updateStatus状态位在充放电静置阶段的常见异常(如卡在0x04或跳至0x0E)及其根本原因,并提供了从环境控制、命令顺序到文件处理的完整避坑指南,帮助工程师高效完成量产配置。

weixin_29170327的博客 214

一文看懂分布式存储架构

目录一、集中存储结构二、分布式存储1 、分布式存储的兴起2 、分布式存储的重要性3 、分布式存储的种类和比较三、分布式理论浅析1 、一致性和可用性2 、数据分布3 、复制4 、分布式协议5、跨机房部署四、分布式文件系统1、 Google 文件系统( GFS )2、 Taobao 文件系统( TFS )3、 Fackbook Haystack 文件系统4、 CDN 内容分发网络五、分布式键值系统1、 Amazon Dynamo2、 Taobao Tiar3、 ETCD4 、产品选型比较( Etcd , Zoo

weixin_70730532的博客 2万+

ELK 日志分析系统

目录 一、ELK日志分析系统 1、日志服务器 2、日志处理步骤 二、Elasticsearch概述 1、Elasticsearch特性 三、LogStash概述 1、LogStash主要组件 四、Kibana概述 1、Kibana主要功能 五、部署ELK日志分析系统 1、实验需求 2、环境配置 3、配置elasticsearch环境(node1、node2) 1、此时客户机访问,查看节点信息 2、检测集群健康、查看集群状态 3、 安装elasticsearch-head插件.

Liangheng32的博客 2788

逆向拆解dy接口a_bogus 1.0.1.19版本核心算法(纯算版)第二部分

本文深入解析了dy接口a_bogus 1.0.1.19版本的核心算法,重点介绍了逆向分析的基础方法论、魔改Base64编码识别与还原、随机数生成与位运算解析等关键技术。通过详细的代码示例和实用技巧,帮助开发者掌握逆向工程中的关键步骤,特别是针对a_bogus参数的生成逻辑和混淆处理。

weixin_29288313的博客 406

【ElasticSearch】springboot整合搭建ELK日志分析系统

ELK 是三个开源软件的缩写,分别表示:(1)E:Elasticsearch - 一个分布式搜索和分析引擎,提供存储和搜索功能。(2)L:Logstash - 一个服务器端数据处理管道,用于从多个来源采集数据,转换数据,然后将数据发送到存储库(如Elasticsearch)。(3)K:Kibana - 一个数据可视化和管理工具,用于操作Elasticsearch中的数据,提供图表、表格、地图等可视化方式。作用:(1)日志管理:集中式日志收集、分析和展示。

weixin_44823875的博客 771

全志平台camera驱动开发(3)MIPI接口camera驱动开发

详细沟通: 请加video_D 目前开发过的allwinner平台: V5/V3/V3S/V40/T3/T7/A64等 开发过的mipi sensor: sony:imx317、imx477、imx274、imx258、imx286、imx307、imx385等 ov:ov2718、ov12895、ov2710等 ar: ar0238等 国产:gc1024、gc1034...

jzwjzw19900922的博客 9027

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

ELK企业级日志分析系统以及多种部署

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。一款强大的数据处理工具。

2301_81307988的博客 997

(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)

(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

第 20 篇 : 日志文件到ELK

ELK

qiezi__的博客 1847

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ELK日志分析系统

ELK日志分析系统ELK日志分析系统概述ELK日志分析系统简介日志处理步骤Elasticsearch介绍Elasticsearch的概述Elasticsearch核心概念Logstash介绍Logstash的概述Logstash主要组件Kibana介绍Kibana的概述Kibana主要功能部署ELK日志分析系统 ELK日志分析系统概述 ELK日志分析系统简介 E:Elasticsearch——索引数据库 L:Logstash——收集、输出(日志) K:Kibana——展示工具 日志处理步骤 1、将日志进行集

Nipengliang的博客 370

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Docker搭建 ELK日志分析系统

ELK docker搭建 一、安装elasticsearch 1.下载elasticsearch镜像 docker pull elasticsearch:7.1.1 2.创建自定义网络 elk-net docker network create elk-net 3.运行elasticsearch docker run -d --name elasticsearch --net elk-net -p 9200:9200 -p 9300:9300 -e “discovery.type=single-n

代码小白的博客 1327

ELK系列-(二)LogStash-数据处理的瑞士军刀

本章对Logstash( ELK 中的数据处理工具)进行介绍,包括数据采集、解析和输出。它支持多种输入方式,通过过滤器进行数据转换,并将处理后的数据发送到指定目标,如 Elasticsearch。Logstash 是数据处理的多面手。

LIUCHUAN01的博客 974

ELK环境搭建(elasticsearch,logstash,kibana)

一   ELK是什么?           在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4j就够了,随着应用的越来越多,日志散落在各个服务器的logs文件夹下,确实有点不大方便。 当我们需要日志分析的时候你大概会这么做:直接在日志文件中 grep、awk 就可以获得自己想要的信息。 那你们想过这种方式的问题吗? 1.日志量太大如何归档、文...

冬阳 383

ELK日志收集

目前,各个微服务系统的日志都保存在各自指定的目录中,如果这些微服务部署在不同的服务器上,那么日志文件也是分散在各自的服务器上。分散的日志不利于我们快速通过日志定位问题,我们可以借助ELK来收集各个微服务系统的日志并集中展示。ELK即Elasticsearch、Logstash和Kibana首字母缩写。Elasticsearch用于存储日志信息,Logstash用于收集日志,Kibana用于图形化展示。

echola_mendes的博客 1176
上一篇: ELK日志文件分析系统——E(Elasticsearch)
下一篇: ELK日志文件分析系统——K(Kibana)
霖檬ing
博客等级 码龄2年 701粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值