ELK(九)—logstash

目录

  • 简介
  • 安装部署
      • 测试
  • 配置详解
  • 编写配置文件
    • 连接elasticsearch
    • 将数据推送到elasticsearch中。

简介

Logstash 是一个开源的服务器端数据处理管道,由 Elastic 公司维护和开发。它被设计用于从不同来源收集、处理和转发数据,以供 Elasticsearch 进行存储和检索。

以下是 Logstash 的主要特点和功能:

  1. 数据收集:Logstash 支持从各种来源收集数据,包括日志文件、数据库、消息队列、网络流量等。它具有丰富的插件生态系统,可以轻松地集成到多种数据源。

  2. 数据处理:Logstash 允许用户对收集到的数据进行处理和转换。通过配置不同的过滤器,可以执行各种任务,如解析结构化数据、过滤不需要的信息、标准化字段等。

  3. 数据输出:处理后的数据可以发送到各种目标,其中最常见的目标是 Elasticsearch,用于存储和检索数据。此外,Logstash 还支持输出到其他存储后端,如文件、消息队列、关系型数据库等。

  4. 插件生态系统:Logstash 的强大之处在于其插件生态系统。用户可以根据需要选择合适的输入、过滤器和输出插件,以满足特定的数据处理和集成需求。

  5. 可扩展性:Logstash 是可扩展的,可以通过添加自定义插件或使用现有的插件进行扩展。这使得 Logstash 适用于不同规模和类型的数据处理工作负载。

  6. 配置简单:Logstash 的配置文件采用简单的文本格式,易于理解和维护。用户可以根据需要编写配置文件,定义数据流的输入、过滤和输出。

  7. 日志监控和管理:Logstash 提供了用于监控和管理的工具和接口。用户可以使用 Kibana 可视化工具对 Logstash 进行监控,并查看其性能指标和运行状态。

整个 ELK(Elasticsearch、Logstash、Kibana)堆栈通常一起使用,以实现从数据收集到存储、分析和可视化的完整数据处理流程。Logstash 在这个堆栈中的角色是作为数据处理引擎,负责处理和传递数据到 Elasticsearch,而 Kibana 提供了强大的可视化和查询工具。

安装部署

下载安装包

wget https://artifacts.elastic.co/downloads/logstash/logstash-8.11.1-linux-x86_64.tar.gz

解压

tar -xvf logstash-8.11.1-linux-x86_64.tar.gz

重命名

mv logstash-8.11.1/ logstash

测试

简单示例

./logstash -e 'input { stdin { } } output { stdout {} }'
  • ./logstash:这是启动 Logstash 的命令。前提是你在 Logstash 的安装目录中,这个命令会在当前目录下寻找 logstash 可执行文件。

  • -e:这个参数允许你在命令行中直接指定 Logstash 的配置,而不必使用配置文件。后面跟着的是包含 Logstash 配置的字符串。

  • 'input { stdin { } } output { stdout {} }':这个字符串是 Logstash 的配置,分为三个部分:

    • input { stdin { } }:定义了一个输入插件,使用 stdin 插件从标准输入接收数据。

    • filter { }:这里没有定义过滤器,表示不对输入数据进行过滤。

    • output { stdout {} }:定义了一个输出插件,使用 stdout 插件将处理后的数据输出到标准输出。

所以,这个 Logstash 配置的作用是从标准输入接收数据,不对数据进行过滤,然后将处理后的数据输出到标准输出。这对于在命令行中手动输入数据、测试 Logstash 配置或查看处理结果非常有用。

​ 我们在控制台输入 你好,程序猿,马上就能看到它的输出信息

image-20231208174520513

配置详解

Logstash 的配置文件主要由三个部分组成:input、filter 和 output。每个部分负责不同的任务,用于定义数据的输入、处理和输出。

input { #输入
stdin { ... } #标准输入
}
filter { #过滤,对数据进行分割、截取等处理
...
}
output { #输出
stdout { ... } #标准输出
}

以下是对 Logstash 配置文件中 input、filter 和 output 部分的简要详解:

  1. Input(输入)

    input {stdin {# 配置参数}
    }
    
    • stdin:此输入插件从标准输入接收数据。这对于在命令行中手动输入数据进行测试非常有用。

    • 配置参数:stdin 插件本身不需要太多的配置参数。它主要用于从标准输入读取数据。

  2. Filter(过滤)

    filter {# 过滤器插件
    }
    
    • 过滤器插件:在 filter 部分,可以配置一个或多个过滤器插件,用于对输入的数据进行处理和转换。这些过滤器可以执行各种任务,如解析结构化数据、截取字段、添加标签等。

    • 例子:例如,可以使用 grok 过滤器解析日志中的特定字段,使用 mutate 过滤器修改字段值,或者使用其他过滤器执行数据转换操作。

  3. Output(输出)

    output {stdout {# 配置参数}
    }
    
    • stdout:此输出插件将处理后的数据输出到标准输出。这对于在命令行中查看 Logstash 处理后的数据非常有用,用于调试和测试。

    • 配置参数:stdout 插件通常不需要太多的配置参数。它用于在控制台上显示处理后的数据。

配置文件中还可以包含其他的 input、filter 和 output 部分,以根据需求定义多个输入来源、多个过滤器和多个输出目标。整个配置文件定义了数据的整个处理流程。

编写配置文件

在“/opt/elk/logstash”下创建hmiyuan-pipeline.conf

input {file {path => "/opt/elk/logs/test.log"start_position => "beginning"}
}
filter {mutate {split => {"message"=>"|"}}
}
output {stdout { codec => rubydebug }
}

启动

./bin/logstash -f ./hmiyuan-pipeline.conf

插入数据

echo "2023-12-13 16:28:24|ERROR|读取数据出错|参  :i=1002" >> //opt/elk/logs/test.log

然后我们就可以看到logstash就会捕获到刚刚我们插入的数据,同时我们的数据也被分割了

image-20231213162915144

连接elasticsearch

更改配置文件,将我们日志记录输出到Elasticsearch中。

image-20231213163049823

向配置文件中的日志追加数据

echo "2023-12-13 16:30:24|ERROR|读取数据出错|参  :i=1002" >> //opt/elk/logs/test.logecho "2023-12-13 16:31:24|ERROR|读取数据出错|参  :i=1002" >> //opt/elk/logs/test.log

最后登录elasticsearch-head界面查看,如果成功的话,就可以查看到插入的数据了。

image-20231213163522927

将数据推送到elasticsearch中。

input {file {path => "/opt/logs/*.log"start_position => "beginning"sincedb_path => "/dev/null"exclude => "*.gz"}
}filter {mutate {split => {"message"=>"|"}}
}output {elasticsearch {hosts => ["192.168.150.190:9200"]index => "logs_index"}
}

​ 配置文件说明:

​ input: 指定输入源,logstash会从输入源读取数据。

​ file:输入源为文件。

​ path:文件路径,* 是通配符,用于匹配文件路径中的任意字符序列。

​ start_position: 设定为 “beginning”,表示从文件的开头开始读取数据。

​ sincedb_path: 指定了 sincedb 文件的路径,但这里设置为 /dev/null,意味着不使用 sincedb 文件来跟踪已读取的文件位置。

​ exclude:排除以 .gz 结尾的文件。

​ output:指定输出源,logstash会把数据处理成elasticsearch识别的数据发送给elasticsearch。

​ hosts:elasticsearch 应用地址

​ index:指定索引,会在elasticsearch中创建

启动

./bin/logstash -f ./hmiyuan-pipeline.conf

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux发行版比较:Ubuntu、CentOS、Red Hat与其他系统的优劣分析

导言 Linux作为开源操作系统,有众多不同的发行版,每个发行版都有其独特的特性和适用场景。本文将聚焦于比较Ubuntu、CentOS、Red Hat和其他系统,深入分析它们的优势、用途以及在不同领域的应用。Linux操作系统的生态系统中,Ubuntu…

cesium学习笔记(问题记录)——(三)

一、根据点跟角度计算另一点坐标(三维球体) export const getAnotherPoint (lon: number, lat: number, angle: number, distance: number) > {// WGS84坐标系var a 6378137; // 赤道半径var b 6356752.3142; // 短半径var f 1 / 298.257223563;…

redis:六、数据过期删除策略(惰性删除、定期删除)和基于redisson实现的分布式锁(看门狗机制、主从一致性)和面试模板

数据过期删除策略 Redis的过期删除策略:惰性删除 定期删除两种策略进行配合使用 惰性删除 惰性删除:设置该key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就…

MySQL数据库,触发器、窗口函数、公用表表达式

触发器 触发器是由事件来触发某个操作(也包含INSERT、UPDATE、DELECT事件),如果定义了触发程序,当数据库执行这些语句时,就相当于事件发生了,就会自动激发触发器执行相应的操作。 当对数据表中的数据执行…

Redis——多级缓存

JVM进程缓存 为了演示多级缓存,这里先导入一个商品管理的案例,其中包含商品的CRUD功能。将来会给查询商品添加多级缓存。 导入Demo数据 1.安装mysql 后期做数据同步需要用到MySQL的主从功能,所以需要在虚拟机中,利用Docker来运…

任务十六:主备备份型防火墙双机热备

目录 目的 器材 拓扑 步骤 一、基本配置 配置各路由器接口的IP地址【省略】 1、配置BGP协议实现Internet路由器之间互联 2、防火墙FW1和FW2接口IP配置与区域划分 3、配置区域间转发策略 4、配置NAPT和默认路由 5、配置VRRP组,并加入Active/standby VGMP管…

图片转excel:二种合并方式,有何区别?

图片怎么转为可编辑的excel,并且将转换结果合并为一个表?打开眼精星表格文字识别电脑客户端,我们可以看到顶部有一个功能,名为“表格合并”,而在表格识别模块提交选项里,我们会发现有“合并”选项&#xff…

什么是关键词排名蚂蚁SEO

关键词排名是指通过搜索引擎优化(SEO)技术,将特定的关键词与网站相关联,从而提高网站在搜索引擎中的排名。关键词排名对于网站的流量和用户转化率具有至关重要的影响,因此它是SEO工作中最核心的部分之一。 如何联系蚂…

C# WPF上位机开发(usb设备访问)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前很多嵌入式设备都支持usb访问,特别是很多mcu都支持高速usb访问。和232、485下个比较,usb的访问速度和它们基本不在一个…

微软近日推出了Phi-2,这是一款小型语言模型,但其性能却十分强大

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

redis各种数据类型的应用场景

String应用场景 单值缓存 SET key value GET key 对象缓存 SET user:1 value(json格式数据)MSET user:1:name zhuge user:1:balance 1888 MGET user:1:name user:1:balance 分布式锁 SETNX product:10001 true //返回1代表获取锁成功 …

iPhone 17Pro/Max或升级4800万像素长焦镜头,配备自研Wi-Fi 7芯片。

iPhone 16未至,关于iPhone 17系列的相关消息就已经放出,到底是谁走漏了风声。 海通国际证券技术分析师Jeff Pu近日发布报告称,苹果将为2025年推出的iPhone 17ProMax配备4800万像素的长焦镜头。经调查,该分析师认为提升iPhone拍摄方…