软件来自上篇文章:cent os7 安装elasticsearch-7.9.3(伪集群)和kibana-7.9.3

上传 logstash-7.9.3和filebeat-7.9.3 到 /usr/local/java下

解压logstash-7.9.3

tar -zxvf logstash-7.9.3.tar.gz

解压filebeat-7.9.3

tar -zxvf filebeat-7.9.3.tar.gz

修改解压后的目录,去掉版本号只留下名字

安装logstash-7.9.3

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。

Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。(当然,我们最喜欢的是Elasticsearch)

输入:采集各种样式、大小和来源的数据

数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

过滤器:实时解析和转换数据

数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响:

  • 利用 Grok 从非结构化数据中派生出结构
  • 从 IP 地址破译出地理坐标
  • 将 PII 数据匿名化,完全排除敏感字段
  • 整体处理不受数据源、格式或架构的影响

输出:选择你的存储,导出你的数据

尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。

Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。

在logstash安装目录下新建一个文件myPipeline.conf

touch myPipeline.conf

编辑文件写个简单的测试

input {stdin {}
}
output {stdout {codec => rubydebug}
}

运行logstash测试

启动检查自定义管道文件   bin/logstash -f myPipeline.conf --config.test_and_exit

启动logstash   输入hello world

logstash   成功!

安装filebeat-7.9.3

首先filebeat是Beats中的一员。
  Beats在是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。
目前Beats包含六种工具:

  • Packetbeat:网络数据(收集网络流量数据)
  • Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)
  • Filebeat:日志文件(收集文件数据)
  • Winlogbeat:windows事件日志(收集Windows事件日志数据)
  • Auditbeat:审计数据(收集审计日志)
  • Heartbeat:运行时间监控(收集系统运行时的数据)

Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。

  Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。

工作的流程图如下:

filebeat的构成

  filebeat结构:由两个组件构成,分别是inputs(输入)和harvesters(收集器),这些组件一起工作来跟踪文件并将事件数据发送到您指定的输出,harvester负责读取单个文件的内容。harvester逐行读取每个文件,并将内容发送到输出。为每个文件启动一个harvester。harvester负责打开和关闭文件,这意味着文件描述符在harvester运行时保持打开状态。如果在收集文件时删除或重命名文件,Filebeat将继续读取该文件。这样做的副作用是,磁盘上的空间一直保留到harvester关闭。默认情况下,Filebeat保持文件打开,直到达到close_inactive

关闭harvester可以会产生的结果:

  • 文件处理程序关闭,如果harvester仍在读取文件时被删除,则释放底层资源。
  • 只有在scan_frequency结束之后,才会再次启动文件的收集。
  • 如果该文件在harvester关闭时被移动或删除,该文件的收集将不会继续

  一个input负责管理harvesters和寻找所有来源读取。如果input类型是log,则input将查找驱动器上与定义的路径匹配的所有文件,并为每个文件启动一个harvester。每个input在它自己的Go进程中运行,Filebeat当前支持多种输入类型。每个输入类型可以定义多次。日志输入检查每个文件,以查看是否需要启动harvester、是否已经在运行harvester或是否可以忽略该文件

filebeat如何保存文件的状态

  Filebeat保留每个文件的状态,并经常将状态刷新到磁盘中的注册表文件中。该状态用于记住harvester读取的最后一个偏移量,并确保发送所有日志行。如果无法访问输出(如Elasticsearch或Logstash),Filebeat将跟踪最后发送的行,并在输出再次可用时继续读取文件。当Filebeat运行时,每个输入的状态信息也保存在内存中。当Filebeat重新启动时,来自注册表文件的数据用于重建状态,Filebeat在最后一个已知位置继续每个harvester。对于每个输入,Filebeat都会保留它找到的每个文件的状态。由于文件可以重命名或移动,文件名和路径不足以标识文件。对于每个文件,Filebeat存储唯一的标识符,以检测文件是否以前被捕获。

filebeat何如保证至少一次数据消费

  Filebeat保证事件将至少传递到配置的输出一次,并且不会丢失数据。是因为它将每个事件的传递状态存储在注册表文件中。在已定义的输出被阻止且未确认所有事件的情况下,Filebeat将继续尝试发送事件,直到输出确认已接收到事件为止。如果Filebeat在发送事件的过程中关闭,它不会等待输出确认所有事件后再关闭。当Filebeat重新启动时,将再次将Filebeat关闭前未确认的所有事件发送到输出。这样可以确保每个事件至少发送一次,但最终可能会有重复的事件发送到输出。通过设置shutdown_timeout选项,可以将Filebeat配置为在关机前等待特定时间

配置Filebeat

定义日志文件路径

定义到/usr/local/java下创建log文件

目前了解到两种模式:

/usr/local/java/log/*.log

获取在/usr/local/java/log/*.log路径下的所有文件作为输入,说明Filebeat将获取/var/log目录下所有以.log结尾的文件

/usr/local/java/log/*/*.log

将抓取/usr/local/java/log/*/*.log的子文件夹下所有的以.log结尾的文件,它不会从/usr/local/java/log文件夹本身抓取。目前,不可能递归地抓取这个目录下的所有子目录下的所有.log文件

我们现在配置Filebeat的配置文件:

上文我们安装了elasticsearch-7.9.3(伪集群)和kibana-7.9.3,接下来我们先不用logstash-7.9.3来验证下Filebeat

发送输出目录到Elasticsearch(Logstash)配置Elasticsearch:

output.elasticsearch:hosts: ["10.108.3.180:9200","10.108.3.180:9300","10.108.3.180:9400"]

配置Kibana端点:

setup.kibana:host: "10.108.3.180:5601"

在Elasticsearch中加载索引模板

在Elasticsearch中,索引模板用于定义设置和映射,以确定如何分析字段。(相当于定义索引文档的数据结构,因为要把采集的数据转成标准格式输出)

Filebeat包已经安装了推荐的索引模板。如果你接受filebeat.yml中的默认配置,那么Filebeat在成功连接到Elasticsearch以后会自动加载模板。如果模板已经存在,不会覆盖,除非你配置了必须这样做。

通过在Filebeat配置文件中配置模板加载选项,你可以禁用自动模板加载,或者自动加载你自己的目标。

在这里我们使用默认的模板

这里贴出我的配置文件:

启动Elasticsearch,启动Kibana参考上个章节

启动Filebeat

./filebeat -e -c filebeat.yml -d "publish"  后台启动  nohup ./filebeat -e -c filebeat.yml >> filebeat-start.log 2>&1 &

-e, --e  记录到stderr并禁用syslog/file输出。
 -c, --c FILE 指定用于Filebeat的配置文件。您在此处指定的文件是相对于path.config。如果-c未指定标志filebeat.yml,则使用默认配置文件。
 -d, --d SELECTORS 启用指定选择器的调试。对于选择器,您可以指定以逗号分隔的组件列表,也可以使用它-d "*"来启用所有组件的调试。例如,-d "publish"显示所有“发布”相关消息。

浏览器访问  http://10.108.3.180:5601/

停止filebeat

ps -ef |grep filebeat    kill -9  进程号

成功!

至于需要使用到具体的项目还需要自己研究配置!这个仅是个搭建过程体验!

安装logstash-7.9.3和filebeat-7.9.3相关推荐

  1. 使用brew安装Logstash(Mac)

    (1)首先,点击Elastic Homebrew存储库 brew tap elastic/tap % brew tap elastic/tap==> Tapping elastic/tap Cl ...

  2. 安装logstash,elasticsearch,kibana三件套

    原文地址:http://www.cnblogs.com/yjf512/p/4194012.html logstash,elasticsearch,kibana三件套 elk是指logstash,ela ...

  3. 从零学ELK系列(六):Docker安装Logstash(超详细图文教程)

    [前言] 为了更加真实的模拟生产部署环境,在上次的Docker环境中(<Docker安装kibana(超详细图文教程)>)中安装了kibana,本次我们将安装日志清洗组件---logsta ...

  4. 安装 Logstash 并配置 ik 分词器

    安装 logstash 安装包下载: 下载地址 注意:需要和 Elasticsearch 版本相对应 上传至服务器并解压 tar -zxvf logstash-6.4.3.tar.gz 移动至安装目录 ...

  5. Linux下安装Logstash

    一.安装Logstash 1.解压tar包 cd /data/app/elk/elk-6.8.5 tar zxvf logstash-6.8.5.tar.gz 2.配置config目录下的logsta ...

  6. logstash zip linux安装,Linux安装Logstash

    本文介绍Linux环境如何安装Logstash 本文环境是在腾讯云服务器CentOS7.2搭建的,JDK1.8,Logstash-5.4.2. 1.下载Logstash 本人是从本地上传到服务器上的, ...

  7. CentOS 7下安装Logstash ELK Stack 日志管理系统(上)

    介绍The Elastic Stack - 它不是一个软件,而是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来源,任何 ...

  8. Logstash 参考指南(使用Filebeat Modules配置示例)

    使用Filebeat Modules配置示例 本节中的示例展示了如何构建用于解析Filebeat模块收集的数据的Logstash管道: Apache 2日志 本例中的Logstash管道配置展示了如何 ...

  9. docker安装logstash及logstash配置

    一.logstash跟es有版本对照关系 了解对照关系,决定要安装的logstash版本 二.ELK出现的原因 三.Logstash工作原理 Logstash事件处理管道有三个阶段:输入→过滤器→输出 ...

  10. 安装Logstash

    1. 将安装包logstash-5.5.1 tar.gz上传到主机root用户家目录. 2. 解压安装包. # tar zxvflogstash-5.5.1.tar.gz -C /usr/local/ ...

最新文章

  1. 避免后台脚本重复启动机制
  2. 如何配置eclipse的安卓SDK下载目录
  3. 福步怎么自定义头像_苹果手机怎么截屏 苹果手机截屏方法有几种?原来还可以这么操作...
  4. 铜陵信息化建设和智慧城市发展成果惠及百姓
  5. linux shell if语句使用方法
  6. OutOfMemoryException异常解析
  7. 洛谷 P1440 求m区间内的最小值
  8. Hive配置文件中配置项的含义详解(收藏版)
  9. PHP字符串部分方法
  10. 单片机c语言三角波采样点,单片机课程设计---信号发生器.doc
  11. 企业邮箱的好处有哪些?企业邮箱使用场景
  12. 【liunxptp协议栈详解第一部分】
  13. 简述计算机程序执行过程,计算机程序的执行过程
  14. 华硕ASUS手机平板官方刷机包raw格式解压修改工具
  15. C++ std::accumulate
  16. MySQL limit 1,1的含义
  17. 如何修改别人的GHO作品
  18. 聊一聊RabbitMQ六种工作模式与应用场景
  19. Open-Falcon安装记录
  20. 苹果手机php怎么更新,Apple Watch固件系统怎么更新升级?

热门文章

  1. Javascript 键盘事件
  2. matplotlib快速画图
  3. html 模板 引用,模板引用说明
  4. Qt---MaintenanceTool
  5. Win10之fastboot devices无反应
  6. LXC源码编译测试(五)
  7. sudo apt-get:command not found报错解决
  8. Adblock Plus无法屏蔽CSDN右下角广告解决
  9. I2S,PCM,IOM-2,I2C,SPI,UART,GPIO
  10. 写给新入职的毕业生们(二)