Filebeat从入门到实战

news2024/11/19 20:34:51

文章目录

  • Filebeat的概念
    • 简介
    • Filebeat特点
    • Filebeat与Logstash对比
  • Filebeat安装
    • 安装地址
    • Logstash部署安装
  • Filebeat实战
    • 对接Logstash
    • Filebeat模块使用(配置Kafka)
    • 对接ES案例展示
    • 对接Kafka案例展示
  • 总结

Filebeat的概念

简介

Filebeat是一种轻量型日志采集器,内置有多种模块(auditd、Apache、NGINX、System、MySQL 等等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。之所以能实现这一点,是因为它将自动默认路径(因操作系统而异)与 Elasticsearch 采集节点管道的定义和 Kibana 仪表板组合在一起。不仅如此,数个 Filebeat 模块还包括预配置的 Machine Learning 任务。另一点需要声明的是:根据采集的数据形式不同,形成了由多个模块组成的Beats。Beats是开源数据传输程序集,可以将其作为代理安装在服务器上,将操作数据发送给Elasticsearch,或者通过Logstash,在Kibana中可视化数据之前,在Logstash中进一步处理和增强数据。
Beats组成模块如下:

日志格式采集所需组件框架
Audit dataAuditbeat(轻量型审计日志采集器)
Log filesFilebeat(轻量型日志采集器)
AvailabilityHeartbeat(轻量型运行时间监控采集器)
MetricsMetricbeat(轻量型指标采集器)
Network trafficPacketbeat(轻量型网络数据采集器)
Windows event logsWinlogbeat(轻量型 Windows 事件日志采集器)

Beat日志采集流程图:

在这里插入图片描述

Filebeat特点

1)轻量型日志采集器,占用资源更少,对机器配置要求极低。
2)操作简便,可将采集到的日志信息直接发送到ES集群、Logstash、Kafka集群等消息队列中。
3)异常中断重启后会继续上次停止的位置。(通过${filebeat_home}\data\registry文件来记录日志的偏移量)。
4)使用压力敏感协议(backpressure-sensitive)来传输数据,在logstash 忙的时候,Filebeat 会减慢读取-传输速度,一旦 logstash 恢复,则 Filebeat 恢复原来的速度。
5)Filebeat带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。

bin/logstash -e 'input { stdin{} } output { stdout{} }'

Filebeat与Logstash对比

1)Filebeat是轻量级数据托运者,您可以在服务器上将其作为代理安装,以将特定类型的操作数据发送到Elasticsearch。与Logstash相比,其占用空间小,使用的系统资源更少。
2)Logstash具有更大的占用空间,但提供了大量的输入,过滤和输出插件,用于收集,丰富和转换来自各种来源的数据。
3)Logstash是使用Java编写,插件是使用jruby编写,对机器的资源要求会比较高。在采集日志方面,对CPU、内存上都要比Filebeat高很多。

Filebeat安装

Filebeat本身对机器性能要求不高,所以对机器性能无需过多关注。加之,其采集数据后采用的Http请求发送的数据,所以对运行环境也无过多要求,因此在部署Filebeat时,应过多的关注其它组件的部署问题。

安装地址

1)Filebeat官网地址:https://www.elastic.co/cn/products/beats/filebeat
2)安装包下载地址:https://www.elastic.co/cn/downloads/beats/filebeat

在这里插入图片描述

笔者这里用的是8.5.2版本,包括ES,Kibana,Logstash框架等。一律使用的均是8.5.2版本

在这里笔者为了节省主节点资源,不将组件放到主节点了,放到次节点上

[root@hadoop103 ~]# cd /opt/software/
[root@hadoop103 software]# mkdir elk
[root@hadoop103 software]# cd elk/

#将组件放入该目录中

在这里插入图片描述

[root@hadoop103 elk]# tar -zxvf filebeat-8.5.2-linux-x86_64.tar.gz -C /opt/module/

[root@hadoop103 elk]# cd /opt/module/

[root@hadoop103 module]# mv filebeat-8.5.2-linux-x86_64/ filebeat

进入filebeat,指定监控日志的输入输出路径

[root@hadoop103 module]# mkdir log
[root@hadoop103 module]# cd filebeat/
[root@hadoop103 filebeat]# vim filebeat.yml

对图片内容进行修改

在这里插入图片描述

Logstash部署安装

[root@hadoop103 elk]# tar -zxvf logstash-8.5.2-linux-x86_64.tar.gz -C /opt/module/

[root@hadoop103 module]# mv logstash-8.5.2/ logstash

注意:logstash在使用的时候单独配置运行文件。

Filebeat实战

对接Logstash

1)创建文件夹加job编写数据采集文件:filebeat_to_logstash.conf文件

[root@hadoop103 logstash]$ mkdir job
[root@hadoop103 logstash]$ cd job/
[root@hadoop103 job]$ vim filebeat_to_logstash.conf

# 添加内容如下
input {
#对接的是beats
  beats {
  #端口号5044
    port=>5044
    #编码格式GBK
    codec=>plain{
        charset=>"GBK"
    }
  }
}
filter {
        mutate{
        split=>["message","|"]
                add_field => {
                        "field1" => "%{[message][0]}"
                }
                add_field => {
                        "field2" => "%{[message][1]}"
                }
                remove_field => ["message"]
        }
        json{
                source => "field1"
                target => "field2"
        }
}
#输出数据到控制台
output{
       stdout{
               codec=>rubydebug
      }
}

配置filebeat中的output部分(Logstash)

[root@hadoop103 filebeat]# vim filebeat.yml

在这里插入图片描述

启动filebeat 与 logstash

[root@hadoop103 filebeat]$ ./filebeat -e
[root@hadoop103 logstash]$ bin/logstash -f job/filebeat_to_logstash.conf

进入log目录,创建日志文件,并导入如下数据:

[root@hadoop103 logstash]$ cd /opt/module/log
[root@hadoop103 log]$ vim app.log
1562065564549|{"cm":{"ln":"-54.7","sv":"V2.9.8","os":"8.1.0","g":"9NY0AL0L@gmail.com","mid":"m140","nw":"WIFI","l":"pt","vc":"13","hw":"1080*1920","ar":"MX","uid":"u737","t":"1562030978430","la":"-7.4","md":"HTC-14","vn":"1.1.3","ba":"HTC","sr":"M"},"ap":"gmall","et":[{"ett":"1561996979060","en":"display","kv":{"newsid":"n925","action":"1","extend1":"1","place":"4","category":"37"}},{"ett":"1562031053551","en":"newsdetail","kv":{"entry":"3","newsid":"n332","news_staytime":"10","loading_time":"8","action":"4","showtype":"3","category":"11","type1":"433"}},{"ett":"1561986545246","en":"loading","kv":{"extend2":"","loading_time":"7","action":"1","extend1":"","type":"1","type1":"102","loading_way":"1"}},{"ett":"1562053433842","en":"active_foreground","kv":{"access":"1","push_id":"1"}},{"ett":"1562030443443","en":"favorites","kv":{"course_id":2,"id":0,"add_time":"1562049124751","userid":0}}]}

查看结果

Logstash控制台结果如下:

在这里插入图片描述

Filebeat模块使用(配置Kafka)

1)官方提供了封装完整的框架日志监控,拿kafka为例,使用对应的module可以直接实现对kafka日志的监控

2)修改Filebeat配置文件filebeat.yml

[root@hadoop103 filebeat]$ vim filebeat.yml

按照图片方式设置好

在这里插入图片描述
进入modules.d 目录

[root@hadoop103 filebeat]$ cd modules.d

后缀disabled均为不可用状态。

在这里插入图片描述

3)修改kafka对应的module配置文件

[root@hadoop103 modules.d]# cp kafka.yml.disabled kafka.yml
[root@hadoop103 modules.d]# vim kafka.yml

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-kafka.html

在这里插入图片描述

配置文件直接从官方文档获取即可。

注意,官网的path/to是kafka的路径,具体路径要看自己的服务器上kafka的路径。记得修改!

在这里插入图片描述

对接ES案例展示

安装ES:https://blog.csdn.net/weixin_45417821/article/details/117389204

这里安装单机版ES即可,只为测试专用

chown -R luanhao:luanhao /opt/module/es

除了单机配置之外,还需要再加入一个配置文件

ingest.geoip.downloader.enabled: false

#并将xpack.security.enabled设置为false,原因:是因为ES8默认开启了 ssl 认证。
xpack.security.enabled: false

官网:https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html

在这里插入图片描述

1)修改Filebeat配置文件

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["hadoop103:9200"]
  #通过判断数据中包含的字符串 可以分流数据
  #  #通过语法%{}可以调用元数据信息和特殊信息
  #  #error-8.5.2-2022-12-02
  indices:
    - index: "warning"
      when.contains:
        message: "WARN"
    - index: "error-%{[agent.version]}-%{+yyyy.MM.dd}"
      when.contains:
        message: "ERR"
    - index: "info"
      when.contains:
        message: "INFO"

清一色的error日志

在这里插入图片描述

对接Kafka案例展示

Filebeat也可以直接将数据发送到Kafka

官网相关文档如下:https://www.elastic.co/guide/en/beats/filebeat/current/kafka-output.html

在这里插入图片描述

1)修改Filebeat配置文件

[root@hadoop103 filebeat]$ vim filebeat.yml

添加如下内容

在这里插入图片描述
简单些就行

启动zk和kafka,安装目录:https://blog.csdn.net/weixin_45417821/article/details/

[root@hadoop104 ~]# kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic logs

之后拷贝一份log文件进去即可

[root@hadoop103 log]# cd /opt/module/log
[root@hadoop103 log]# cp app.log appbak.log

查看kafka消费者内容

在这里插入图片描述

总结

对于大数据从业者人员来讲,我们只需要关注,日志文件 -> Filebeat -> Kafka 这样的工程,其他的均可交给Spark ,Flink等计算框架计算即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GP学习笔记三】锁与死锁

锁 一、概述 在GP中,定义了三种锁 自旋锁(Spinlocks)轻量级锁(LWLocks)普通锁(Regular locks,也叫重量级锁) 自旋锁 与互斥锁有点类似。针对某一项资源,在任何时刻&…

《Dubbo源码剖析与实战》学习笔记 Day6

问题引出,从dubbo2升级到了dubbo3版本,出现了一些消费方调用超时的现象,通过日志发现异常信息中的timeout竟然是1000ms,明明在暴漏接口的时候指定了超时时间,为什么没有生效。 经过debug分析调试后,找到了…

基础2-用卷积神经网络进行颅内和头皮脑电图数据分析的广义癫痫预测

A Generalised Seizure Prediction with Convolutional Neural Networks for Intracranial and Scalp Electroencephalogram Data Analysis 为了改善耐药癫痫和强直性癫痫患者的生活,癫痫预测作为最具挑战性的预测数据分析工作之一已引起越来越多的关注。许多杰出的…

excel图表整形:如何提升条形图的颜值

提交给老板的报告总少不了要用到图表,比如下面这个业务员销售增长率的报表,老板要求用条形图来呈现出每个人的增长率:直接用Excel自带的图表模板做出来是这样的效果:这个图看起来总有点别扭,如果能做成下面这个样子就好…

《HTML简单入门》

目录 前言 HTML基本知识 简单示例 HTML标签 单标签 HTML元素 HTML属性 HTML入门知识 HTML头部 title style meta link script noscript base HTML标题 h HTML段落 p HTML文本格式化 加粗 加重 倾斜 强调 下划线 删除线 小号字体 下标 上标 水…

Android组件——Service

一、多任务实现的基本原理 默认情况下,同一个应用程序的所有组件都运行在同一个进程中,大部分应用程序是按这种方式运行的在具体应用中需要通过设置mainifest文件中组件的android:process属性,是该组件运行在不同的进程中元素也支持android:…

strapi系列-如何创建一个定时任务-Cron Jobs

Cron 是什么? Cron 有多种用途。 Cron Jobs 用于安排服务器上的任务运行。它们最常用于自动化系统管理或维护。然而,它们也与 Web 应用程序的构建相关。 Web 应用程序可能需要在各种情况下定期执行特定操作。 为什么使用 Cron ? 定期进行的计划活动,C…

【SpringMVC】异常处理

目录 一、基本介绍 二、局部异常 三、全局异常 四、自定义异常 五、统一处理异常 六、异常处理流程 相关文章(可以关注我的SpringMVC专栏) SpingMVC专栏SpingMVC专栏一、基本介绍如果我们对异常不做任何处理的话,那么他就会返回500错误&…

list底层实现

目录 引言 结构形式 整体框架 插入删除接口实现 析构函数、拷贝构造、赋值重载 const迭代器实现 取得链表长度的方式 迭代器前置\后置operator -- 以及operator-> 引言 list是非常常用的一个容器,数据结构是链表,数据空间是以链式结构存储的…

QT中控件不满足要求那么为你的控件做“提升”吧

我们在VisualStudio中例如VC或者C#中写一些个性化比较强的项目都会对控件有更高的要求,那么当我们的要求得不到满足时就需要考虑用到自定义控件了,其中自定义控件有两种方式,一种是完全重写,另一种简单的方法是继承自现有的控件。…

指针深度解剖,从内存详细了解指针

目录 🚕第一组:一维数组 🚌第二组:字符数组 🚐字符数组1.0 🚎字符数组1.1 🚑字符数组2 🚚字符数组3 🚜第三组:二维数组 🚗在上次的博客之中我们…

INVS里的DanglingWire的自动化清理实战

在上一讲中一起了解了INVS里的DanglingWire(innovus中的DanglingWire(悬垂线)的理解和处理),常言道理论联系实际,在理解原理的基础上,那一定是要服务项目的,这篇后续火速跟进&#x…

中国第一个 Apache 顶级开源项目的突围之路!

【CSDN 编者按】近些年开源大热,开源创业之风随之四起。作为近两年特别火的商业方向,开源创业者如何才能在一片红海中乘风破浪,在行业中占据一席之地?第一个由中国人主导贡献到 ASF 的顶级开源项目 Apache Kylin 做出了有效探索&a…

字节序,主机字节序与网络字节序

📌————本章重点————📌 🔗了解字节序的概念; 🔗了解大小端的概念;🔗了解主机字节序和网络字节序的区别;🔗学习主机字节序和网络字节序相机转化的接口; ✨————————————✨字节序 概念&am…

人工智能助力古彝文识别,推动传统文化传承

人工智能助力古彝文识别,推动传统文化传承0. 前言1. 古彝文1.1 古彝文介绍1.2 古彝文识别的重要意义1.3 古彝文识别的挑战2. 古彝文识别国内外研究进展3. 基于深度学习的古彝文识别3.1 深度学习简介3.2 基于深度学习的古彝文识别模型架构4. 古彝文识别进展与展望小结…

HTML小游戏19 —— html5版开心斗地主小游戏(附完整源码)

💂 网站推荐:【神级源码资源网】【摸鱼小游戏】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】本节教程我会带大家使用 HTML…

【练习】Day05

努力经营当下,直至未来明朗! 文章目录一、选择二、编程1. 跳跃游戏[贪心算法]2. 寻找重复数[注意思路!]答案1. 选择2. 编程普通小孩也要热爱生活! 一、选择 HASH 函数冲突处理方式不包括以下哪一项:(&…

YOLOv5源码详解——项目目录

YOLOv5 目录 .github .github相关,不重要 datasets 存放数据集,刚下载下来的源码是不包含这个文件夹的 classify 图像分类模块,包含以下4个文件 predict.py —— 图像分类预测脚本train.py ——图像分类训练脚本val.py —— 图像分类验证脚本tutorial.…

Java开发学习(四十一)----MyBatisPlus标准数据层(增删查改分页)开发

一、标准CRUD使用 对于标准的CRUD功能都有哪些以及MyBatisPlus都提供了哪些方法可以使用呢? 我们先来看张图: 1.1 环境准备 这里用的环境就是Java开发学习(四十)----MyBatisPlus入门案例与简介中使用的环境 二、新增 在进行新增之前,我们可以分析下新增的方法…

马蹄集 公式计算

公式计算 难度&#xff1a;青铜 01 时间限制&#xff1a;1秒巴占用内存&#xff1a;64M 计算公式 (1/2)*(a*xc(ac)/(4*a)》 格式 输入格式&#xff1a;输入为整型x,a,空格分隔 #include <bits/stdc.h> using namespace std; int main() {int x, a;cin >> x >&g…