大数据-185 Elasticsearch - ELK 家族 Logstash 安装配置 Input 插件-stdin stdout

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(正在更新…)

章节内容

上节我们完成了如下的内容:

  • Elasticsearch DocValues 机制原理
  • Elasticsearch DocValues 压缩与禁用

在这里插入图片描述

简要介绍

Logstash 是一个开源的服务器端数据处理管道工具,主要用于实时收集、过滤、转换和输出数据。它可以从多种数据源(如日志文件、数据库、消息队列等)中收集数据,并经过自定义的过滤处理后,输出到目标系统(如 Elasticsearch、数据库或文件等)。作为 Elastic Stack(也称为 ELK Stack)的一部分,Logstash 通常与 Elasticsearch 和 Kibana 配合使用,用于实时日志处理、分析和可视化。

Logstash 的架构

Logstash 由三大核心组件组成:

  • 输入(Inputs): 输入插件用于收集数据,它能够从各种不同的数据源获取信息。支持的数据源包括日志文件、数据库、Kafka、HTTP API、消息队列(如 RabbitMQ)、系统标准输入等。

  • 过滤(Filters): 过滤器是数据处理和转换的关键部分。Logstash 使用过滤插件对输入的数据进行过滤和修改。常用的过滤插件有 grok、mutate、date、json、csv 等。你可以利用这些插件对数据进行解析、字段提取、格式化等处理。

  • 输出(Outputs): 输出插件将处理后的数据发送到指定的目标位置。常用的输出插件包括 Elasticsearch、文件系统、Kafka、数据库、标准输出等。

此外,Logstash 还支持编码器(Encoders)和解码器(Decoders),用于将数据编码或解码成特定格式,例如 JSON、XML、CSV 等。

Logstash 的工作流程

Logstash 的工作流程如下:

  • 数据输入(Input): Logstash 从数据源中收集原始数据,如应用程序日志、系统日志或网络流量日志等。
  • 数据过滤(Filter): 收集到的数据通过配置的过滤器进行处理。这一步可以解析日志、过滤无用数据、格式化字段、添加或删除字段、进-行数据聚合等操作。
  • 数据输出(Output): 最终经过处理的数据被输出到一个或多个目标系统,如 Elasticsearch 用于存储和搜索,或者输出到文件用于归档。

Logstash 的功能特性

  • 多种输入插件支持: Logstash 支持多种输入源,几乎可以从任何类型的系统或文件中收集数据。这些输入源可以是本地的日志文件、数据库、HTTP、TCP、UDP 连接等。
  • 强大的数据处理能力: Logstash 提供了丰富的过滤插件,可以对数据进行复杂的操作。通过 grok 插件,用户可以解析复杂的日志格式,提取关键信息。Logstash 还支持条件语句,可以根据条件对不同的数据进行不同的处理。
  • 灵活的输出机制: Logstash 支持多种输出方式,可以将数据发送到多个目标系统。常见的输出包括 Elasticsearch、文件系统、标准输出、Kafka 等。
  • 扩展性: Logstash 通过插件架构设计,用户可以根据需要开发和使用自定义插件,从而满足各种特殊需求。
  • 实时性: Logstash 可以实时处理大量数据,适合于实时日志分析、事件响应、监控告警等场景。
  • 错误处理和重试机制: Logstash 支持对处理失败的数据进行重试和错误处理,确保数据不丢失,并提供可靠的传输保障。

官方网站

https://www.elastic.co/logstash

对应的页面截图如下:
在这里插入图片描述
Logstash就是一个具备实时数据传输能力的管道,负责将数据信息从管道的输入传出到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。是一个 input | filter | output 的数据流。

项目下载

下载指定版本的Logstash,我这里适配着ES的版本,7.3版本:

https://www.elastic.co/downloads/past-releases#logstash

这里放一个直达链接,7.3 版本的:

https://www.elastic.co/downloads/past-releases/logstash-7-3-0

我这里直接下载到服务器上 h121.wzk.icu 节点。

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.tar.gz

对应的截图如下图所示:
在这里插入图片描述

解压配置

cd /opt/software
mv logstash-7.3.0 ../servers/
cd /opt/servers/logstash-7.3.0/

对应的截图如下所示:
在这里插入图片描述

Input插件

stdin与stdout

标准输入和标准输出,实现我们的数据从控制台输入,从控制台输出。

cd /opt/servers/logstash-7.3.0/
bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
{
  "@version" => "1",
  "host" => "h121.wzk.icu",
  "@timestamp" => 2024-08-16T08:33:13.126Z,
  "message" => "hello"
}

运行之后,可以看到控制台对应的输出为如下的内容:
在这里插入图片描述

监控日志文件变化

修改配置

Logstash 使用一个名叫 FileWatch 的 Ruby Gem 库来监听文件变化,这个库支持glob展开路径,而且会记录一个叫 .sincedb 的数据库文件来跟踪被监听的日志文件的当前读取位置。所以,不要担心 Logstash 会漏掉你的数据。

cd /opt/servers/logstash-7.3.0/config
vim monitor_file.conf

向其中写入对应的内容,并退出保存:

input{
  file{
    path => "/opt/servers/es/logs/wzkicu-es.log"
    type => "log"
    start_position => "beginning"
  }
}
output{
  stdout{
    codec=>rubydebug
  }
}

写入的内容如下图所示:
在这里插入图片描述
补充一下:start_positon => beginning 或者是 end

检查配置

通过下面的指令进行检查:

cd /opt/servers/logstash-7.3.0
bin/logstash -f /opt/servers/logstash-7.3.0/config/monitor_file.conf -t

如果成功会出现如下的内容:

root@h121:/opt/servers/logstash-7.3.0# bin/logstash -f /opt/servers/logstash-7.3.0/config/monitor_file.conf -t
Thread.exclusive is deprecated, use Thread::Mutex
Sending Logstash logs to /opt/servers/logstash-7.3.0/logs which is now configured via log4j2.properties
[2024-08-16T10:54:39,712][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2024-08-16T10:54:40,796][INFO ][org.reflections.Reflections] Reflections took 43 ms to scan 1 urls, producing 19 keys and 39 values 
Configuration OK
[2024-08-16T10:54:41,914][INFO ][logstash.runner          ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash
root@h121:/opt/servers/logstash-7.3.0# 

对应的截图如下图所示:
在这里插入图片描述
可以看到:“Configuration OK”,说明我们的配置文件是正确的。

启动服务

cd /opt/servers/logstash-7.3.0
bin/logstash -f /opt/servers/logstash-7.3.0/config/monitor_file.conf

启动结果如下图所示:
在这里插入图片描述

发送数据

我们监听到是ES的日志,只要你进行一些操作,就会看到日志被解析了:
在这里插入图片描述

其他参数

  • Path => 表示监控的文件路径Type=>给类型打标记,用来区分不同的文件类型。
  • Start_position=>从哪里开始记录文件,默认是从结尾开始标记,要是你从头导入一个文件就改成 beginning
  • discover_interval=>多久去监听path下是否有文件,默认是15s exclude =>排除什么
  • close_older=>一个已经监听中的文件,如果超过这个值的事件内没有更新内容,就关闭监听它的文件句柄。默认是3600秒,即1个小时。
  • sincedb=>path监控库存放位置(默认的读取文件信息记录在哪个文件中),默认在:/data/plugins/inputs/file。
  • sincedb_write_interval=>Logstash每隔多久写一次sincedb文件,默认是15秒
  • start_interval=>Logstash每隔多久检查一次被监听文件状态(是否有更新),默认是1秒。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「C/C++」C++ STL容器库 之 std::string 字符串类

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

vue使用jquery的ajax,页面跳转

一、引入jquery依赖 打开终端更新npm npm install -g npm 更新完后引入输入npm install jquery 加载完后 在最外层的package.json文件中加入以下代码 配置好后导入jquery 设置变量用于接收服务器传输的数据 定义ajax申请数据 服务器的Controller层传输数据 (…

linux介绍与基本指令

前言 本次博客将会讲解linux的来源历史、linux操作系统的理解以及它的一些基本指令。 1.linux的介绍 linux的来源 linux的来源最初还是要说到unix操作系统的。 1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作…

C++ 基于自主实现的红黑树封装Map和Set (下)

C 基于自主实现的红黑树封装Map和Set (上)-CSDN博客 本文针对上文中没有完成的迭代器接口进行一个补充。 1. 箭头访问 在map的测试中使用箭头访问测试,我们可以复习到: 测试刚才重载的-> , 出现了经典双箭头问题 按理来说应该是像下图一样…

uniapp-components(封装组件)

<myitem></myitem> 在其他类里面这样调用。

Python数值计算(28)——理查森外推法

1. 基础知识 理查森外推法( Richardson extrapolation)是一种提高某些数值过程精度的简单方法&#xff0c;在数值方法中广泛应用。 理查森外推法的基本思想是通过对原函数进行多次求导&#xff0c;并在每一步求导的基础上进行线性组合&#xff0c;得到一个新的函数&#xff0c…

智能时代摩托车一键启动无钥匙进入感受科技前线

向智能化与高性能迈进,技术创新与绿色转型引领摩托车行业智能化出行。 摩托车一键启动无钥匙进入功能是一种先进的车辆控制系统&#xff0c;它允许驾驶员在不使用传统机械钥匙的情况下&#xff0c;通过智能感应技术自动解锁和启动摩托车。这种系统通常包括一个智能钥匙&#x…

从零开始学习 YOLOv8:目标检测与车牌识别实例

1. 引言 什么是目标检测&#xff1f; 目标检测就像是在寻找隐藏的宝藏。想象一下&#xff0c;你在一个巨大的图画里&#xff0c;里面藏着无数的物体&#xff0c;而你的任务是迅速找到其中的几样&#xff0c;比如说&#xff0c;一只流浪的小猫和一辆红色的小轿车。目标检测就是…

HTML作业

作业 复现下面的图片 复现结果 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><form action"#"method"get"enctype"text/plain"><…

【实验六】基于前馈神经网络的二类任务

1 数据集构建 2 模型构建 2.1 线性层算子 2.2 Logistic算子 2.3 层次串行组合 3 损失函数 4 模型优化 4.1 反向传播算法 4.2 损失函数 4.3 Logistic算子 4.4 线性层 4.5 整个网络 4.6 优化器 5 完善Runner类&#xff1a;RunnerV2_1 6 模型训练 7 性能评价 8 完…

Java应用程序的测试覆盖率之设计与实现(二)-- jacoco agent

说在前面的话 要想获得测试覆盖率报告&#xff0c;第一步要做的是&#xff0c;采集覆盖率数据&#xff0c;并输入到tcp。 而本文便是介绍一种java应用程序部署下的推荐方式。 作为一种通用方案&#xff0c;首先不想对应用程序有所侵入&#xff0c;其次运维和管理方便。 正好…

高级的SQL查询技巧有哪些?

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于高级SQL查询技巧方面的相关内容&#xf…

协程必知必会-系列4-协程本地变量

文章目录 协程本地变量相关结构体实现原理代码实现代码示例思考题 协程本地变量 在上一篇文章中&#xff0c;我们介绍了如何通过协程来实现批量并发执行&#xff0c;本篇文章将向大家介绍如何在协程的基础之上&#xff0c;实现协程本地变量。 注意&#xff1a;「为了减轻大家…

Docker基础部署

一、安装Ubuntu系统 1.1 新建虚拟机 打开VMware Workstation&#xff0c;选择文件->新建虚拟机->典型&#xff08;推荐T&#xff09;->安装程序光盘映像文件->输入虚拟的名字->一直下一步即可 安装程序光盘映像文件 注意&#xff1a;选择CentOS-7-x86_64-DVD-…

Springboot 使用EasyExcel导出Excel文件

Springboot 使用EasyExcel导出Excel文件 Excel导出系列目录&#xff1a;引入依赖创建导出模板类创建图片转化器 逻辑处理controllerservice 导出效果遗留问题 Excel导出系列目录&#xff1a; 【Springboot 使用EasyExcel导出Excel文件】 【Springboot 使用POI导出Excel文件】 …

大模型带来新安全机遇

当前网络空间安全面临攻击隐蔽难发现、数据泄露风险高和违法信息审核难等挑战。大模型展现出强大的信息理解、知识抽取、意图和任务编排等能力&#xff0c;为网络空间安全瓶颈问题提供了新的解决思路和方法。与此同时&#xff0c;大模型发展也催生了恶意软件自动生成、深度伪造…

vue 项目i18n国际化,快速抽离中文,快速翻译

国际化大家都知道vue-i18n 实现的&#xff0c;但是有个问题&#xff0c;就是繁杂的抽离中文字符的过程&#xff0c;以及翻译中文字符的过程&#xff0c;关于这个有些小工具可以希望可以帮到大家 1.安装vue-i18n npm i vue-i18n8.22.22.ElementUI多语言配置 在src目录下创建…

《Python基础教程》笔记(ch0-1)

前言 在Python生态系统中&#xff0c;各种包轮番登场&#xff0c;各种编码实践大行其道后又日渐式微。 引言 Python是什么&#xff1f;为何要使用它&#xff1f;官方宣传说&#xff1a;Python是一种面向对象的解释性高级编程语言&#xff0c;具有动态语义。 这句话的要点在…

Java网络编程-简单的API调用

Get请求 - 无参数 安装依赖库 首先需要安装一个库&#xff1a; Okhttp3&#xff0c;这是一个非常流行的 HTTP 库&#xff0c;可以简单、快速的实现 HTTP 调用。 安装 Okhttp3 的方式是在 pom.xml 文件中增加依赖&#xff1a; <!-- https://mvnrepository.com/artifact/c…

08 实战:色彩空间展示(本程序以视频为主)

程序效果如下: 我在这里讲解RGB和YCbCr的原理: 一、RGB颜色空间 1.1 基本概念 RGB颜色空间是一种最基础和常用的颜色表示方式,它基于人眼感知色彩的三原色原理。RGB分别代表: R(Red):红色G(Green):绿色B(Blue):蓝色通过这三种基本颜色的不同组合,可以产生人眼…