Logstash 使用指南

news2025/3/22 3:17:43

Logstash 是一个开源的数据收集引擎,能够从多种数据源收集数据,进行转换和过滤,并将数据发送到指定的目的地(如 Elasticsearch、文件、数据库等)。它是 Elastic Stack(ELK Stack)的重要组成部分,通常与 Elasticsearch 和 Kibana 配合使用。

本指南将介绍 Logstash 的基本概念、安装配置、常用插件以及如何编写配置文件。

目录

  1. Logstash 简介
  2. 安装 Logstash
  3. Logstash 配置文件结构
  4. 常用输入插件
  5. 常用过滤插件
  6. 常用输出插件
  7. Logstash 运行与调试
  8. 常见问题与解决方案

Logstash 简介

Logstash 是一个数据管道工具,主要用于日志和事件数据的收集、处理和转发。它支持多种数据源和目的地,能够通过插件扩展功能。Logstash 的核心功能包括:

  • 输入(Input):从各种数据源(如文件、数据库、消息队列等)收集数据。
  • 过滤(Filter):对数据进行解析、转换和过滤。
  • 输出(Output):将处理后的数据发送到指定的目的地(如 Elasticsearch、文件、数据库等)。

Logstash 的灵活性和强大的插件生态系统使其成为处理复杂数据流的理想工具。


安装 Logstash

1. 下载 Logstash

Logstash 可以从 Elastic 官方网站下载:

  • Logstash 下载页面

选择适合你操作系统的版本进行下载。

2. 安装 Logstash

Linux / macOS
# 解压下载的压缩包
tar -xzf logstash-7.10.0.tar.gz

# 进入解压后的目录
cd logstash-7.10.0
Windows

解压下载的 ZIP 文件,并进入解压后的目录。

3. 验证安装

运行以下命令验证 Logstash 是否安装成功:

bin/logstash -e 'input { stdin { } } output { stdout {} }'

在终端输入一些文本,Logstash 会将输入的内容输出到终端。如果看到输出,说明 Logstash 安装成功。


Logstash 配置文件结构

Logstash 的配置文件通常包含三个部分:inputfilteroutput。每个部分定义了数据的来源、处理方式和输出目的地。

input {
  # 输入插件配置
}

filter {
  # 过滤插件配置
}

output {
  # 输出插件配置
}

示例配置文件

input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "nginx-access-logs-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}

常用输入插件

1. file 插件

从文件中读取数据,常用于日志文件的收集。

input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"  # 禁用 sincedb,每次从头读取
  }
}

2. beats 插件

接收来自 Filebeat 的数据。

input {
  beats {
    port => 5044
  }
}

3. stdin 插件

从标准输入读取数据,常用于测试。

input {
  stdin {}
}

常用过滤插件

1. grok 插件

用于解析非结构化日志数据并将其转换为结构化数据。

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

2. date 插件

解析日期字段并将其设置为事件的时间戳。

filter {
  date {
    match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

3. mutate 插件

用于修改字段,例如重命名、删除、替换等。

filter {
  mutate {
    rename => { "old_field" => "new_field" }
    remove_field => [ "unwanted_field" ]
  }
}

常用输出插件

1. elasticsearch 插件

将数据发送到 Elasticsearch。

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "my-logs-%{+YYYY.MM.dd}"
  }
}

2. stdout 插件

将数据输出到标准输出,常用于调试。

output {
  stdout { codec => rubydebug }
}

3. file 插件

将数据写入文件。

output {
  file {
    path => "/path/to/output.log"
  }
}

Logstash 运行与调试

1. 运行 Logstash

使用以下命令运行 Logstash,并指定配置文件:

bin/logstash -f /path/to/your-config.conf

2. 调试 Logstash

  • 日志文件:Logstash 的日志文件通常位于 logs/ 目录下,查看日志可以帮助排查问题。
  • 调试模式:可以通过增加 --debug 参数来启用调试模式,输出更详细的日志信息。
bin/logstash -f /path/to/your-config.conf --debug

常见问题与解决方案

1. Logstash 启动失败

  • 问题:Logstash 启动时提示端口被占用。
  • 解决方案:检查是否有其他进程占用了 Logstash 的端口(如 5044),并终止该进程。

2. Grok 解析失败

  • 问题:Grok 插件无法正确解析日志。
  • 解决方案:使用 Grok Debugger 调试 Grok 表达式,确保表达式与日志格式匹配。

3. 数据未发送到 Elasticsearch

  • 问题:Logstash 运行正常,但数据未出现在 Elasticsearch 中。
  • 解决方案:检查 Elasticsearch 是否正常运行,并确保 Logstash 配置中的 Elasticsearch 主机和端口正确。

总结

Logstash 是一个功能强大的数据收集和处理工具,能够帮助你将各种来源的数据进行集中管理和分析。通过合理配置输入、过滤和输出插件,你可以轻松构建复杂的数据处理管道。希望本指南能帮助你快速上手 Logstash,并在实际项目中发挥其强大的功能。

如果你有更多问题,可以参考 Logstash 官方文档 或社区资源。

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

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

相关文章

MATLAB 调用arduino uno

为了授课,必须重新把arduino用上。 采用MATLAB编码,可以简化相关程序授课部分 1 安装包 MATLAB Support Package for Arduino Hardware - File Exchange - MATLAB Central (mathworks.com) 需要这个插件。 当然也可下载simulink的模块,但…

Git——分布式版本控制工具使用教程

本文主要介绍两种版本控制工具——SVN和Git的概念,接着会讲到Git的安装,Git常用的命令,以及怎么在Vscode中使用Git。帮助新手小白快速上手Git。如果想直接上手用Vscode操作远程仓库则直接看7和9即可! 目录 1. SVN和Git介绍 1.1 …

【数据分析】数据筛选与访问行列元素3

访问元素 .loc属性可以通过传入index的值访问行数据。 .loc属性允许传入两个参数,分别是index的值和columns的值,参数间用“逗号”隔开,这样便可以访问数据中的元素。 1. 访问单个元素 访问单个元素比较简单,只需要通过它的in…

爬虫——playwright获取亚马逊数据

目录 playwright简介使用playwright初窥亚马逊安装playwright打开亚马逊页面 搞数据搜索修改bug数据获取翻页优化结构 简单保存 playwright简介 playwright是微软新出的一个测试工具,与selenium类似,不过与selenium比起来还是有其自身的优势的&#xff…

大数据学习(77)-Hive详解

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…

汽车一键启动PKE无钥匙系统

移动管家汽车一键启动PKE舒适无钥匙遥控远程系统是一种集成了多项先进功能的汽车电子系统,主要目的是提高驾驶便利性和安全性。 以下是该系统的具体功能: 功能类别 功能描述 无钥匙进入 感应无钥匙进入(自动感应开关门) 一…

Postman 新手入门指南:从零开始掌握 API 测试

Postman 新手入门指南:从零开始掌握 API 测试 一、Postman 是什么? Postman 是一款功能强大的 API 开发与测试工具,支持 HTTP 请求调试、自动化测试、团队协作等功能。无论是开发人员还是测试工程师,都可以用它快速验证接口的正确…

猿大师中间件:如何在最新Chrome浏览器Web网页内嵌本地OCX控件?

OCX控件是ActiveX控件的一种,主要用于在网页中嵌入复杂的功能,如图形渲染、多媒体播放等,可是随着谷歌Chrome等主流浏览器升级,目前已经不支持微软调用ActiveX控件了,如果想调用OCX控件用IE浏览器或者国产双擎浏览器&a…

[数据结构]排序之 归并排序(有详细的递归图解)

一、非递归 基本思想: 归并排序( MERGE-SORT )是建立在归并操作上的一种有效的排序算法 , 该算法是采用分治法( Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列&#x…

构建第二个Django的应用程序

构建第二个应用程序 文章目录 构建第二个应用程序1.打开Visual Studio code 左上角 点击fike 点击open folder2.打开上次的Django项目 并按图示点击进入终端3.在下方终端输入创建app01项目的命令 接着在左上方会出现一个app01的项目4.接着在Hellodjango的项目里settings.py中定…

图像分割的mask有空洞怎么修补

分享一个对实例分割mask修补的方法,希望对大家有所帮助。 1. 这是我准备分割的图片 2 分割结果 可以看到衣服部分有一些没分割出来,二值化图片能清晰看到衣服部分有些黑色未分出的地方。 3 补全mask区域 import cv2 import numpy as npdef fill_mask_h…

HarmonyOS NEXT 组件状态管理的对比

在HarmonyOS NEXT开发中,组件状态管理是构建动态用户界面的核心。本文将深入探讨State、Prop、Link和ObjectLink这四种常见的状态管理装饰器,并通过示例代码进行对比分析,以帮助同学们更好地理解和选择合适的状态管理方式。 一、装饰器概述 …

C#通过API接口返回流式响应内容---SignalR方式

1、背景 在上两篇《C#通过API接口返回流式响应内容—分块编码方式》和《C#通过API接口返回流式响应内容—SSE方式》实现了流式响应的内容。 上面的这两个主要是通过HTTP的一些功能,除了这些之外,还有WebSocket的方式。C#中的WebSocket的有比较多的方案&…

vulhub靶机----基于docker的初探索,环境搭建

环境搭建 首先就是搭建docker环境,这里暂且写一下 #在kali apt update apt install docker.io配置docker源,位置在/etc/docker/daemon.json {"registry-mirrors": ["https://5tqw56kt.mirror.aliyuncs.com","https://docker…

AI对话框实现

请注意,功能正在开发中,代码和注释不全 场景:AI对话框实现,后端调用AI大模型。前端发送请求后端返回流式数据,进行一问一答的对话功能(场景和现在市面上多个AI模型差不多,但是没人家功能健全&a…

可视化图解算法:删除链表中倒数第n个节点

1. 题目 描述 给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针 例如, 给出的链表为: 1→2→3→4→5, n 2. 删除了链表的倒数第 n 个节点之后,链表变为1→2→3→5. 数据范围: 链表长度 0≤n≤1000,链表中任意节点的…

智能汽车图像及视频处理方案,支持视频智能拍摄能力

美摄科技,作为智能汽车图像及视频处理领域的先行者,凭借其卓越的技术实力和前瞻性的设计理念,为全球智能汽车制造商带来了一场视觉盛宴的革新。我们自豪地推出——美摄科技智能汽车图像及视频处理方案,一个集高效性、智能化、画质…

微信小程序的业务域名配置(通过ingress网关的注解)

一、背景 微信小程序的业务域名配置(通过kong网关的pre-function配置)是依靠kong实现,本文将通过ingress网关实现。 而我们的服务是部署于阿里云K8S容器,当然内核与ingress无异。 找到k8s–>网络–>路由 二、ingress注解 …

Matlab 舰载机自动着舰控制系统研究

1、内容简介 Matlab 188-舰载机自动着舰控制系统研究 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略

WindowsAD域服务权限提升漏洞

WindowsAD 域服务权限提升漏洞(CVE-2021-42287, CVE-2021-42278) 1.漏洞描述 Windows域服务权限提升漏洞(CVE-2021-42287, CVE-2021-42278)是由于Active Directory 域服务没有进行适当的安全限制,导致可绕过安…