elasticsearcho从入门到放弃:beats(代码片段)

浅弋、璃鱼 浅弋、璃鱼     2022-12-05     407

关键词:

文章目录

一、Beats:

1. Beats:

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

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

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: log
  enabled: true
  paths:
    - /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从入门到放弃:操作,编程,架构原理,essql(代码片段)

文章目录一、操作:1.创建索引1.1创建带有映射的索引:1.2字段类型1.3创建保存"职位"信息的索引1.4查看索引映射1.5查看ES中素有索引1.6删除索引1.7指定使用IK分词器2.使用PUT添加一条数据2.1添加一条职位信息3修改数据3.1执行upd... 查看详情

elasticsearcho从入门到放弃:简介,lucene,概念,安装(代码片段)

文章目录一、ElasticSeach简介1.介绍2.ES可以做什么2.1信息检索2.2企业内部系统搜索2.3数据分析引擎3.ES特点3.1海量数据处理3.2开箱即用3.3作用传统数据库的补充4.ES对比solr:二、Lucene全文检索库1.什么是全文检索1.1结构化数据与非结构... 查看详情

elasticsearcho从入门到放弃:简介,lucene,概念,安装(代码片段)

文章目录一、ElasticSeach简介1.介绍2.ES可以做什么2.1信息检索2.2企业内部系统搜索2.3数据分析引擎3.ES特点3.1海量数据处理3.2开箱即用3.3作用传统数据库的补充4.ES对比solr:二、Lucene全文检索库1.什么是全文检索1.1结构化数据与非结构... 查看详情

elasticsearcho从入门到放弃:操作,编程,架构原理,essql(代码片段)

文章目录一、操作:1.创建索引1.1创建带有映射的索引:1.2字段类型1.3创建保存"职位"信息的索引1.4查看索引映射1.5查看ES中素有索引1.6删除索引1.7指定使用IK分词器2.使用PUT添加一条数据2.1添加一条职位信息3修改数据3.1执行upd... 查看详情

《java从入门到放弃》文章目录

...,等相关内容都写完后,再按学习顺序来整理。《Java从入门到放弃》入门篇:XMLHttpRequest的基本用法《Java从入门到放弃》入门篇:Struts2的基本访问方《Java从入门到放弃》入门篇:Struts2的基本访 查看详情

java从入门到放弃

 (1)Java入门变量与注释 用户输入if语句java中的循环while 查看详情

深度学习:从入门到放弃

https://zhuanlan.zhihu.com/p/22976342 首发于深度学习:从入门到放弃写文章登录 FCN学习:SemanticSegmentation余俊1年前感谢@huangh12 @郑途 @麦田守望者对标签图像生成的研究和讨论,这几天研究了一下,补充如下。-------------------... 查看详情

[资源]深度学习从入门到放弃

Relationship:  MachineLearning---->DeepLearning                           ---->DeepReinforcementLearning[LearningRoadMap]              ReinforcementLearningPapers:  DeepLearningPapersReadin 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

积分从入门到放弃

这部分重新从定积分学了1,lnx的导数就是x^(-1)=1/x那么求∫(1/x)dx=ln|x|+C 2,初值问题.就是求∫f(x)dx=F(x)+C求C.  查看详情

凸优化从入门到放弃(目录)

...课程时候的笔记和心得,其中应用篇没有学习。凸优化从入门到放弃00-凸优化引言01-凸集02-凸函数(暂无)03-凸优化问题(暂无)04-对偶(暂无)05-无约束优化算法(暂无)06-等式约束优化算法(暂无)07-内点法(不等式约束优... 查看详情

visualstudioformac从入门到放弃1

MAC 第一步:从微软官网下载:https://www.visualstudio.com/vs/visual-studio-mac/第二步:安装软件过程出现Itwasnotpossibletocompleteanautomaticinstallation.Thismightbeduetoaproblemwithyournetwork,proxyserversoranunsolvablei 查看详情

kubelet从入门到放弃:拓扑管理(上)

<Kubelet从入门到放弃>系列将对Kubelet组件由基础知识到源码进行深入梳理。上一篇zouyee带各位看了CPU管理的相关内容,其中提及拓扑管理,本文将对此进行详细剖析,拓扑管理在Kubernetes1.18时提升为Beta。TopologyManager功能可实现C... 查看详情

观察者模式(从放弃到入门)

观察者模式(从放弃到入门)观察者模式从放弃到入门需求1错误示范需求2观察者模式认识观察者模式需求3Java中自带的观察者模式思考源码ObservableObserver解析一些体会今天分享第二个模式,观察者模式。相信作Android... 查看详情

webpack从入门到放弃之路

公司的中流砥柱要走啦!!!!我要接手这些摊子啦!!!!!硬着头皮上吧!/(ㄒoㄒ)/~~第一部分:webpack使用部分第二部分:自动化部署部分第三部分:前端视频部分tobecontinue… 查看详情

初识pytorch:从安装到入门,从入门到放弃(代码片段)

目录PyTorch安装配置安装验证PyTorchPyTorch是Facebook团队于2017年1月发布的一个深度学习框架,虽然晚于TensorFlow,也没有TensorFlow火,但目前已经与TensorFlow奇虎相当。而且PyTorch采用了Python语言的接口,可以说它才是Pytho... 查看详情