文章目录

  • 一、Beats:
    • 1. Beats:
      • 1.1 FileBeat简介
      • 1.2 FileBeat的工作原理
    • 3. 下载及安装:
    • 4. 使用fileBeat采集xxx日志到es
      • 4.1 配置FIleBeat
        • 4.1.1 input配置
        • 4.1.2 output配置
      • 4.2 启动FileBeat
      • 4.3 采集到数据
      • 4.4 解决多行的问题:
    • 5. FileBeat是如何工作的
      • 5.1 input和harvesters
        • 5.1.1 inputs(输入)
        • 5.1.2 harvester(收割机)
      • 5.3 FileBeat如何保持文件状态

一、Beats:

1. Beats:

Beats是一个开源代码的数据发送器, 也可以把Beats作为一种代理安装在服务器上, 这样就可以比较方便的将数据发送到ES或者logstash中; Elastic Stack提供了多种类型的Beats组件
官方网站: https://www.elastic.co/cn/downloads/beats/

组件名称 用途
AuditBeat 审计数据
FileBeat 日志文件
FunctionBeat 云数据
HeartBeat 可用性数据
JournalBeat 系统日志
MetricBeat 指标数据
PacketBeat 网络流量数据
WinlogBeat windows事件日志

Beats可以直接将数据发送到ES或者Logstash, 基于Logstash可以进一步地对数据进行处理, 然后将处理后的数据存入ES, 最后使用kibana进行数据可视化;

1.1 FileBeat简介

FileBeat专门用于转发和收集日志的轻量级收集工具; 它可以作为代理安装在服务器上, FileBeat监视指定路径的日志文件, 收集日志数据, 并将收集到的日志转发到ES或者Logstash;

1.2 FileBeat的工作原理

启动FileBaet时, 会启动一个或者多个输入(input), 这些input监控指定的日志数据位置;
FileBeat会针对每一个文件启动一个Harvester(收割机); Harvester读取每一个文件的日志, 将新的日志发送给libbeat, libbeat将数据收集到一起, 并将数据发送给输出(output);

3. 下载及安装:

官方文档: https://www.elastic.co/cn/downloads/beats/filebeat

4. 使用fileBeat采集xxx日志到es

问题:

  • 要指定FileBeat采集哪些日志, 因为FileBeat中必须知道采集存放在那里的日志, 才能进行采集;
  • 采集到这些数据后, 还需要指定FileBeat将采集到的日志输出到指定的ES

4.1 配置FIleBeat

FileBeat配置文件主要分为两个部分:

  • inputs
  • outputs

从名字就能看出来, 一个用来输入数据, 一个用来输出数据;

4.1.1 input配置

filebeat.yml

filebeat.inputs:- type: logenabled: truepaths:- /var/log/*.log#- c:\programdata\elasticsearch\logs\*

在FileBeat中, 可以读取一个或多个数据源

4.1.2 output配置

filebeat.yml

# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:# Array of hosts to connect to.hosts: ["localhost:9200"]# Protocol - either `http` (default) or `https`.#protocol: "https"# Authentication credentials - either API key or username/password.#api_key: "id:api_key"#username: "elastic"#password: "changeme"


默认FileBeat会将日志数据放入到名称为: filebeat-%filebeat版本号&-yyyy.MM.dd的索引中;

4.2 启动FileBeat

./filebeat -c filebeat.yaml -e

4.3 采集到数据

ilm: 索引生命周期管理所需要的索引;
filebeat-7.6.1: 在es中, 可以创建索引的别名, 可以使用别名来指向一个或多个索引, 因为ES中索引创建后是不允许修改的, 很多业务场景下,单一索引无法满足需求; 别名也有利于ILM索引管理生命周期;

4.4 解决多行的问题:

multiline.pattern: "^/["
multiline.negate: true
multiline.match: after
  • pattern: 是一个正则表达式
  • negate: 表示匹配pattern的日志就认为需要追加一行;
  • match: 表示将匹配的日志追加到上一行或下一行;

5. FileBeat是如何工作的

FileBeat主要由input和harvesters组成; 这两个组件协同工作, 并将数据发送到指定的输出

5.1 input和harvesters

5.1.1 inputs(输入)

  • input是负责管理harvesters和查找所有要读取的文件的组件;
  • 如果输入类型是 log, input组件会查找磁盘上与路径描述相符的所有文件, 并为每个文件启动一个harvester, 乜咯输入都独立地运行;

5.1.2 harvester(收割机)

  • harvester负责读取单个文件的内容, 它负责打开/关闭文件, 并逐行读取么偶个文件的内容, 将读到的内容发送给输出;
  • 每个文件都会启动一个harvester;
  • harvester运行时, 文件将处于打开状态; 如果文件在读取时, 被移除或重命名, filebeat将继续读取该文件;

5.3 FileBeat如何保持文件状态

  • FileBeat保存每个文件的状态, 并定时将状态信息保存在磁盘的注册表文件中;
  • 该状态记录harvester读取的最后一个偏移量, 并确保发送所有的日志数据;
  • 如果输出(es或logstash)无法访问, FileBeat会记录成功发送的最后一行, 并在输出可用时, 继续读取文件发送数据;
  • 在运行FileBeat时, 每个input的状态信息也会保存在内存中, 重启FileBeat时, 会从注册表文件中读取数据来重新构建状态;

filebeat-xxx/data目录中有一个Registry文件夹,里面有一个data.json, 该文件中记录了harvester读取日志的offset

ElasticSearcho从入门到放弃:(三)Beats相关推荐

  1. hex editor怎么搜索代码_代码审计从入门到放弃(三) phplimit

    原创: 一叶飘零 合天智汇 前言 接着前面的代码审计从入门到放弃(一) & function.代码审计从入门到放弃(二) & pcrewaf 本次是phplimit这道题,本篇文章提供 ...

  2. tensorflow从入门到放弃(三)

    下面的1.X版本 # tf.random_normal 方法返回形状为(1,4)的张量.它的4个元素符合均值为100.标准差为0.35的正态分布. W = tf.Variable(initial_va ...

  3. keras从入门到放弃(三)逻辑回归 softmax

    逻辑回归 之前写过逻辑回归,是sklearn的方法,基本一样 https://blog.csdn.net/weixin_44510615/article/details/88608831 补充一个概念 ...

  4. 爬虫入门到放弃(三) 爬取格言网并储存到数据库

    代码送上,请各位点下关注,本人也会持续更新各种技术 # -*- coding:utf-8 -*- from bs4 import BeautifulSoup import requests impor ...

  5. [ 数据库 ] MySQL 入门到放弃(三) --- MySQL 数据管理

  6. JavaScript30秒, 从入门到放弃之Array(三)

    原文链接:JavaScript30秒, 从入门到放弃之Array(三) 水平有限,欢迎批评指正 flattenDepth Flattens an array up to the specified d ...

  7. gtk学习总结:GTK从入门到放弃,三天包教包会

    今天花了一些时间复习之前学习过的gtk,感觉东西光学不用忘得好快啊,在这做个之前学过的内容的备份,希望对大家有用,也希望大家不要从入门到放弃.文中有些代码例子可能来自<GTK从入门到精通> ...

  8. Python 从入门到放弃(三)

    Python 从入门到放弃(三) 2011/12/11 Mon 13:58 字典 用名字来引用值的数据结构叫做映射(mapping),python中用字典实现. 创建使用字典 直接创建: phoneb ...

  9. 深聊性能测试,从入门到放弃之: Windows系统性能监控(三)任务管理器介绍及使用。

    任务管理器 1.引言 2.任务管理器 2.1 打开方式 2.2 介绍 2.2.1 定义 2.2.2 进程 2.2.3 性能 2.2.4 应用历史记录 2.2.5 启动 2.2.6 用户 2.2.7 详 ...

最新文章

  1. [UI]抽屉菜单DrawerLayout分析(二)
  2. [转]pthread用于进程间通信
  3. android imageButton 透明图片
  4. uos系统断网怎么安装mysql_【学习笔记】 UOS安装MySQL
  5. 单例模式懒汉、饿汉和登记
  6. 语义分割和实例分割概念
  7. php imagick gif,PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
  8. 基础03 JVM到底在哪里?
  9. 动态在网络图片上写字
  10. 【IDEA】如何修改已创建的文件类型,虽然很无脑,但是也很棘手
  11. python文本框_Python GUI-在文本框中插入文本
  12. NOI 1818:红与黑(C++)
  13. react render相关 【类组件、函数组件 】
  14. Linux系统日志管理(redhat)
  15. 万物皆可AI,狗狗也不例外
  16. 小程序集成网易云通信群聊功能Demo发布
  17. 新嘉华上海会计师事务所为何是业界精英专家
  18. JAVA451小轮好不好,20寸 406 451的通勤代步用途的小轮, 50/39T的齿比比较安逸, 大家觉得呢?...
  19. 【原创】关闭/开启 T470P 的触屏功能
  20. 【U8】固定资产卡片修改已计提月份

热门文章

  1. PCL入门系列 —— NormalEstimation、NormalEstimationOMP 基于邻域的点云法线估计
  2. iphone 6 plus 人気 とまだ、このサイト特にベッドが片側にこのキー事実小さな印刷装置を設定する事に
  3. SpringBoot b2b2c 多用户商城系统
  4. 23王道数据结构代码题全解(三)
  5. 开房不用前台登记 刷脸进门自助入住
  6. webpack打包js内存溢出:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
  7. 增值电信业务经营IDC许可证怎么申请?
  8. 5 精通matlab深入学习结构体看这篇文章就够了
  9. code up练习1153: C语言3.1(error)
  10. 什么是UDS诊断协议