私有部署ELK,搭建自己的日志中心(二)-- filebeat的介绍与安装

一、背景

在搭建ELK系统之前,你有必要去了解下,为何大家在agent端普遍青睐filebeat,而把logstash放置于更加靠后端。
轻量级的filebeat,作为agent角色,是安装在每台虚拟机上。

filebeat的学习分为两大部分:

  • 安装(二进制或docker)
  • 配置文件filebeat.yml

二、filebeat的安装

本文主要介绍docker安装方式,对于其二进制安装,请参考其他文章。这类资料比较多。
https://www.elastic.co/cn/beats/filebeat 这是它的官网地址。

下面是它的docker-compose安装:

version: "3"
services:filebeat:container_name: filebeatimage: elastic/filebeat:7.9.3restart: alwaysuser: rootvolumes:- ./filebeat/logs:/usr/share/filebeat/logs- ./filebeat/data:/usr/share/filebeat/data- ./filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml

在这里插入图片描述
建议做持久化的时候,使用相对路径,便于不同机器上的部署。

三、配置

vi filebeat/conf/filebeat.yml

filebeat.inputs:- type: logenabled: truebackoff: "1s"tail_files: falsepaths:- /usr/share/filebeat/logs/*.logmultiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'multiline.negate: truemultiline.match: afterdocument_type: jvmoutput.logstash:enabled: truehosts: ["logstash:5044"]

1、inputs

官网文档地址:https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html

  • 多行的开头匹配规则
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
  • log日志文件的路径
    paths:- /usr/share/filebeat/logs/*.log

注意:如果你是docker安装filebeat的话,需要把宿主机上的路径挂载到容器。
那么,采集宿主机上的相对路径./filebeat/logs/下的所有.log文件。

    volumes:- ./filebeat/logs:/usr/share/filebeat/logs

本文踩过的坑就是:filebeat.yml配置的paths路径,忘记了挂载到容器外,这样的话,filebeat始终读取不到log日志。

观察filebeat容器的日志,自然就采集不到最新的log日志,后台一直在打印下面的日志:

2023-12-27T06:55:04.273Z INFO [monitoring] log/log.go:153 Total non-zero metrics {“monitoring”: {“metrics”: {“beat”:{“cpu”:{“system”:{“ticks”:8670,“time”:{“ms”:8678}},“total”:{“ticks”:16000,“time”:{“ms”:16016},“value”:16000},“user”:{“ticks”:7330,“time”:{“ms”:7338}}},“handles”:{“limit”:{“hard”:1048576,“soft”:1048576},“open”:8},“info”:{“ephemeral_id”:“87e71d20-5d3d-452f-a51e-cc2f47612d45”,“uptime”:{“ms”:16309343}},“memstats”:{“gc_next”:15193216,“memory_alloc”:8772880,“memory_total”:212097656,“rss”:46182400},“runtime”:{“goroutines”:10}},“filebeat”:{“events”:{“added”:1,“done”:1},“harvester”:{“open_files”:0,“running”:0}},“libbeat”:{“config”:{“module”:{“running”:0}},“output”:{“type”:“kafka”},“pipeline”:{“clients”:0,“events”:{“active”:0,“filtered”:1,“total”:1}}},“registrar”:{“states”:{“current”:1,“update”:1},“writes”:{“success”:1,“total”:1}},“system”:{“cpu”:{“cores”:8},“load”:{“1”:0.27,“15”:0.35,“5”:0.3,“norm”:{“1”:0.0338,“15”:0.0438,“5”:0.0375}}}}}}

所以我后面在./filebeat/logs新建sample.log日志文件,此时filebeat才能采集到日志。

2、output

官网文档地址:https://www.elastic.co/guide/en/beats/filebeat/current/logstash-output.html

  • 测试输出
output.file:path: "/tmp"filename: "test_filebeat.txt"

3、模块

filebeat内置有多种模块(auditd、Apache、NGINX、System、MySQL 等等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。
它可以将数据直接发送给Elasticsearch;或者通过Logstash,在Kibana中可视化数据之前,在Logstash中进一步处理和增强数据。

官方文档比较简单,https://www.elastic.co/guide/en/beats/filebeat/current/advanced-settings.html

4、处理

这块比较丰富,你可以进行限流、替换、重命名、丢弃等操作。

详请参考:https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html

四、总结

因为在整个日志中心,我们有logstash组件,所以filebeat不承担多少处理的工作。
filebeat仅采集,配置的时候比较简单,没有用到过多的复杂语句。

下文将讲述logstash。

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

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

相关文章

【Java基础系列】body参数前后端不一致

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

cfa一级考生复习经验分享系列(十六)

写在前面:并不鼓励大家在考前一个月才开始复习,不过,既然已经逼到了绝境,灰心丧气也没有用,不如放手一搏! 首先说一下我的背景,工作金融机构的it,和cfa基本没关系,本硕计…

【理论】STM32定时器时间计算公式 +【实践】TIM中断1s计时一次

前言:定时器TIM的详细知识点见我的博文:11.TIM定时中断-CSDN博客 STM32定时器时间计算公式 公式解释: ARR(TIM_Period):自动重装载值,是定时器溢出前的计数值 PSC(TIM_Prescaler&…

Docker自建文件快递柜系统

Docker自建文件快递柜系统。 软件特色: 轻量简洁:FastapiSqlite3Vue2ElementUI 轻松上传:复制粘贴,拖拽选择 多种类型:文本,文件 防止爆破:错误次数限制 防止滥用:IP限制上传次数…

掌握激活函数(一):深度学习的成功之源

文章目录 引言基本概念常用激活函数举例Sigmoid激活函数公式Sigmoid函数的数学特性示例基于NumPy和PyTorch实现Sigmoid函数将Sigmoid函数应用于二分类任务 Sigmoid激活函数的局限性举例 ReLU激活函数公式ReLU函数的数学特性ReLU函数的特点示例基于NumPy和PyTorch实现ReLU函数搭…

C++第1关:HelloWorld文件

任务描述 题目描述:向文件in.txt中写入字符串HelloWorld。 相关知识(略) 编程要求 根据提示,在右侧编辑器Begin-End处补充代码,完成本关要求。 测试说明 平台会对你编写的代码进行测试,若与预期输出一致&#xf…

【Java集合类不安全示例】

文章目录 一、List二、Set三、Map 提示:以下是本篇文章正文内容,下面案例可供参考 一、List 代码如下(示例): public class ZZZZZZZZZZ {public static void main(String[] args) {// ArrList 非线程安全的集合List&l…

软件测试/测试开发丨学习笔记之Python控制流-分支、循环

分支判断 什么是分支判断 一条一条语句顺序执行叫做顺序结构分支结构就是在某个判断条件后,选择一条分支去执行 1. IF if condition_1:statement_block_1 elif condition_2:statement_block_2 else:statement_block_32. if 嵌套 在嵌套 if 语句中,可…

文件过大放不了U盘?三个方法非常简单~

文件过大放不了U盘我们可以从文件过大这个角度来解决一下这个问题,可以借助一些工具把文件压缩后,体积变小后,再放入U盘,使得u盘得到高效的利用,下面是推荐的一些好用的软件。 一、嗨格式压缩大师 是一款可以压缩多种…

数据结构学习 Leetcode474 一和零

关键词:动态规划 01背包 一个套路: 01背包:空间优化之后dp【target1】,遍历的时候要逆序遍历完全背包:空间优化之后dp【target1】,遍历的时候要正序遍历 目录 题目: 思路: 复杂…

BloombergGPT—金融领域大模型

文章目录 背景BloombergGPT数据集金融领域数据集通用数据集分词 模型模型结构模型相关参数训练配置训练过程 模型评估评估任务分布模型对比金融领域评估通用领域评估 背景 GPT-3的发布证明了训练非常大的自回归语言模型(LLM)的强大优势。GPT-3有1750亿个…

【vtkWidgetRepresentation】第十六期 vtkContourRepresentation(四)

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享vtkContourRepresentation关联的Widget---vtkContourWidget的源码解析,希望对各位小伙伴有所帮助! vtkAbstractWidget中本以为没有什么特别需要注意的地方,就没有分享出来。通常Widget中的操作或参数…

LeetCode 每日一题 Day 26 ||枚举

2735. 收集巧克力 给你一个长度为 n 、下标从 0 开始的整数数组 nums ,表示收集不同巧克力的成本。每个巧克力都对应一个不同的类型,最初,位于下标 i 的巧克力就对应第 i 个类型。 在一步操作中,你可以用成本 x 执行下述行为&am…

《深入理解C++11:C++11新特性解析与应用》笔记四

第四章 新手易学,老兵易用 4.1 右尖括号>的改进 在 C98 中,有一条需要程序员规避的规则:如果在实例化模板的时候出现了连续的两个右尖括号 >,那么它们之间需要一个空格来进行分隔,以避免发生编译时的错误。C98 会将>&g…

ubuntu22下安装minconda

bing 搜索 canda install 找到官方网站 https://docs.conda.io/projects/miniconda/en/latest/ 这里我们安装minconda。 官网有安装方法。 mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh…

makefile快速入门(精简版)

WHAT Makefile 是一种文本文件,由一系列规则(Rules)组成,每个规则描述了一个或多个目标(Target)和相应的依赖关系(Dependencies),以及构建目标所需的命令(Com…

【K8S 二进制部署】部署单Master Kurbernetes集群

目录 一、基本架构和系统初始化 1、集群架构: 2、操作系统初始化配置: 2.1、关闭防火墙和安全机制: 2.2、关闭swap 2.3、根据规划设置主机名 2.4、三台主机全部互相映射 2.5、调整内核参数 3、时间同步(所有节点时间必须同…

Linux系列之不解压直接查看gzip压缩日志

Linux系列之不解压直接查看gzip压缩日志文件 在Linux服务器上,日志文件经常会用gzip格式进行压缩,以节省磁盘,对于这种压缩文件,需要解压?然后再用cat、grep这些命令进行查看?其实不需要,Linux…

Vue解决跨域问错误:has been blocked by CORS policy 后端跨域配置

解决跨域问题后端跨域配置代码: /*** 作者 hua* 描述 跨域配置*/ Configuration public class WebConfiguration implements WebMvcConfigurer {/*** 跨域配置对象* return CorsConfiguration对象*/private CorsConfiguration corsConfig() {CorsConfiguration cor…

考研结束,以下事情要抓紧做了!

Hello,大家好,我是 Sunday。 首先恭喜大家考研结束,也在这里祝各位考研的同学们可以 成功上岸 ✿✿ヽ(▽)ノ✿。 不过,考试结束并不是一个终点,而是另外一个新的起点。摆在大家面前的,还有很多新的问题&a…