安装logstash-7.9.3和filebeat-7.9.3

软件来自上篇文章: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  进程号

成功!

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 logback-spring.xml 配置 filebeat,需要进行以下步骤: 首先,确保已经在系统中安装并配置好了 filebeat,可以通过下载官方网站提供的 filebeat 安装包并按照提示进行安装,然后在 filebeat.yml 文件中配置好需要收集的日志文件路径和目标 Logstash 或 Elasticsearch 服务器的地址等信息。 接下来,在 logback-spring.xml 文件中进行如下配置。 1. 导入 logstash-logback-encoder 包,可以通过 Maven 或其他方式引入依赖。例如: ```xml <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.6</version> </dependency> ``` 2. 在 logback-spring.xml 文件中添加 Appender,配置 filebeat 作为输出目标。例如: ```xml <appender name="FILEBEAT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/path/to/log/file.log</file> <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>/path/to/log/file.log.%d{yyyy-MM-dd}.gz</fileNamePattern> </rollingPolicy> </appender> ``` 3. 将 Appender 添加到适当的 Logger 中,例如: ```xml <logger name="com.example.myLogger" level="info"> <appender-ref ref="FILEBEAT" /> </logger> ``` 4. 最后,确保在 logback-spring.xml 文件的配置末尾添加 `<root>` 元素,将级别设置为 `info`,并引用 filebeat appender,以便所有的日志都被发送到 filebeat。例如: ```xml <root level="info"> <appender-ref ref="FILEBEAT" /> </root> ``` 完成上述步骤后,重新启动应用程序,日志将会通过 logback 的配置写入到指定的日志文件中,然后由 filebeat 负责将日志发送到配置的目标服务器。 ### 回答2: logback是一个流行的Java日志组件,而filebeat是一个开源的日志收集工具,可以将日志发送到指定的目标。 在logback-spring.xml中配置filebeat可以实现将应用程序的日志文件发送到filebeat所在的服务器,然后由filebeat将这些日志发送到配置的目标。 首先,在logback-spring.xml中添加以下的appender配置: <appender name="filebeat" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/path/to/log/file.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 配置日志文件的滚动策略,可以按照文件大小或时间进行滚动 --> <fileNamePattern>/path/to/log/file-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>10MB</maxFileSize> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> 然后,在logback-spring.xml中添加以下的logger配置: <logger name="com.example" level="DEBUG" additivity="false"> <!-- 绑定之前定义的appender --> <appender-ref ref="filebeat"/> </logger> 这样配置之后,将会将com.example包下的日志输出到filebeat所指定的日志文件中。 最后,确保filebeat的配置文件中指定了相应的输入和输出,以正确地收集和发送日志文件的内容。 需要注意的是,配置的路径和文件名需要根据实际情况进行修改。配置完成后,重新启动应用程序,就可以开始将日志发送到filebeat了。 ### 回答3: 在使用logback-spring.xml配置filebeat时,我们需要确保以下几点: 1. 首先,我们需要确定filebeat安装路径,并在logback-spring.xml文件中配置相应的appender。可以通过以下示例配置一个appender: ```xml <appender name="FILEBEAT" class="ch.qos.logback.core.FileAppender"> <file>/path/to/log/file.log</file> <append>true</append> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> ``` 在上述示例中,我们配置了一个名为FILEBEAT的appender,并指定了日志文件的路径。我们还可以根据需求设置是否追加内容以及日志的格式。 2. 之后,我们需要在logback-spring.xml中添加一个root logger,并将appender与root logger关联起来。以下是一个示例配置: ```xml <root level="info"> <appender-ref ref="FILEBEAT"/> </root> ``` 在上述示例中,我们设置root logger的日志级别为info,并将之前配置的FILEBEAT appender与root logger关联起来,以确保日志会被发送到filebeat。 3. 最后,我们需要将filebeat配置文件指向logback-spring.xml。我们可以通过在filebeat配置文件中使用如下示例配置来实现: ```yaml filebeat.inputs: - type: log enabled: true paths: - /path/to/log/file.log output.logstash: hosts: ["localhost:5044"] index: "logback" logging.level: debug logging.to_files: true logging.files: path: /var/log/filebeat name: filebeat keepfiles: 7 ``` 在上述示例配置中,我们将filebeat的输入类型设置为log,并指定需要监控的日志文件路径。同时,我们还指定了logback作为输出类型,并指定了logstash的主机和索引名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值