ELK日志分析系统+Filebeat

目录

一、Filebeat介绍

1、Filebeat简介

2、Filebeat的工作方式

3、filebeat工作流程

4、Filebeat的作用

5、filebeat的用途

1.为什么要用filebeat来收集日志?为什么不直接用logstash收集日志?

2.filebeat和logstash的区别

二、部署(ELFK)Filebeat+ELK

1、环境准备

2、安装Filebeat

3、设置filebeat的主配置文件

4、在Logstash组件所在节点新建一个Logstash配置文件

5、启动filebeat

6、启动Logstash

7、浏览器访问


一、Filebeat介绍

1、Filebeat简介

Filebeat由两个主要组成部分组成:prospector(探勘者)和 harvesters(矿车)。这些组件一起工作来读取文件并将事件数据发送到指定的output。

  • prospector: 负责找到所有需要进行读取的数据源
  • harvesters:负责读取单个文件的内容,并将内容发送到output中,负责文件的打开和关闭。

2、Filebeat的工作方式

Filebeat可以保持每个文件的状态,并且频繁地把文件状态从注册表里更新到磁盘。这里所说的文件状态是用来记录上一次Harvster读取文件时读取到的位置,以保证能把全部的日志数据都读取出来,然后发送给output。如果在某一时刻,作为output的ElasticSearch或者Logstash变成了不可用,Filebeat将会把最后的文件读取位置保存下来,直到output重新可用的时候,快速地恢复文件数据的读取。在Filebaet运行过程中,每个Prospector的状态信息都会保存在内存里。如果Filebeat出行了重启,完成重启之后,会从注册表文件里恢复重启之前的状态信息,让Filebeat继续从之前已知的位置开始进行数据读取。

3、filebeat工作流程

  • filebeat 将日志收集后交由 logstash 处理
  • logstash 进行过滤、格式化等操作,满足过滤条件的数据将发送给 ES
  • ES 对数据进行分片存储,并提供索引功能
  • Kibana 对数据进行图形化的 web 展示,并提供索引接口

4、Filebeat的作用

  • 由于 logstash 会大量占用系统的内存资源,一般我们会使用 filebeat 替换 logstash 收集日志的功能,组成 ELFK 架构
  • 或用 fluentd 替代 logstash 组成 EFK(elasticsearch/fluentd/kibana),由于 fluentd 是由 Go 语言开发的,一般在 K8s 环境中使用较多

5、filebeat的用途

适用于集群环境下,服务多,且部署在不同的机器。

1.为什么要用filebeat来收集日志?为什么不直接用logstash收集日志?

因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存(这就是为什么logstash启动特别慢的原因),而filebeat只需要10来M内存资源。常用的ELK日志采集方案中,大部分的做法就是将所有节点的日志内容通过filebeat发送到logstash,logstash根据配置文件进行过滤。然后将过滤之后的文件输送到elasticsearch中,通过kibana去展示。

2.filebeat和logstash的区别

logstash Filebeat
内存

CPU

插件

功能从多种输入端采集并实时解析和转换数据并输出到多种输出端传输
过滤能力强大的过滤能力有过滤能力但是弱
轻重相对较重轻量级二进制文件
进程 一台服务器只允许一个logstash进程,挂掉之后需要手动启动  
集群单节点单节点
原理Logstash使用管道的方式进行日志的搜集和输出,分为输入input处理filter(不是必须的)输出output,每个阶段都有不同的替代方式

开启进程后会启动一个或多个探测器(prospectors)去检测指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester) ,每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定的

二、部署(ELFK)Filebeat+ELK

1、环境准备

在 ELK 的服务配置的基础上,增加一台 Filebeat 服务器,其余不变

服务器类型系统和IP地址需要安装的组件
node1节点192.168.10.100Elasticsearch 、 Kibana
node2节点192.168.10.101Elasticsearch
Logstash节点192.168.10.102Logstash、Apache
Filebeat节点192.168.10.103Filebeat

更改filebeat节点的主机名

[root@localhost ~]#hostnamectl set-hostname filebeat
[root@localhost ~]#bash

2、安装Filebeat

[root@filebeat ~]#cd /opt/
[root@filebeat opt]#rz -E
rz waiting to receive.
[root@filebeat opt]#ls
filebeat-6.6.1-x86_64.rpm  rh
[root@filebeat opt]#rpm -ivh filebeat-6.6.1-x86_64.rpm 
警告:filebeat-6.6.1-x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:filebeat-6.6.1-1                 ################################# [100%]
[root@filebeat opt]#ls
filebeat-6.6.1-x86_64.rpm  rh

3、设置filebeat的主配置文件

[root@filebeat opt]#cd /etc/filebeat/
[root@filebeat filebeat]#ls
fields.yml  filebeat.reference.yml  filebeat.yml  modules.d
[root@filebeat filebeat]#cp filebeat.yml filebeat.yml.bak[root@filebeat filebeat]#vim filebeat.ymlfilebeat.inputs:                         ##15行
- type: log                              ##21行
enabled: true                            ##24行
paths:                                   ##27行- /var/log/messages                 ##28行- /var/log/*.log                    ##29行
fields:                                  ##46行service_name: filebeat              ##47行log_type: log                       ##48行service_id: 192.168.10.103          ##49行
#output.elasticsearch:                   ##152行,注释起来
#  hosts: ["localhost:9200"]             ##154行,注释起来
output.logstash:                         ##165行,取消注释
hosts: ["192.168.10.102:5044"]           ##167行,取消注释,然后将localhost改为Logstash的IP地址

4、在Logstash组件所在节点新建一个Logstash配置文件

[root@logstash ~]#cd /etc/logstash/conf.d/
[root@logstash conf.d]#vim fb_logstash.confinput {beats {port => "5044"}
}output {elasticsearch {hosts => ["192.168.10.100"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
}

[root@filebeat filebeat]#systemctl start filebeat.service 
[root@filebeat filebeat]#systemctl enable filebeat.service
[root@filebeat filebeat]#systemctl status filebeat.service 

5、启动filebeat

 如果使用tar包安装使用它启动  /usr/local/filebeat/filebeat -e -c filebeat.yml 或 ./filebeat -e -c filebeat.yml

 如果使用rpm包安装使用systemctl start filebeat.service启动filebeat

[root@filebeat filebeat]#systemctl start filebeat.service 
[root@filebeat filebeat]#systemctl enable filebeat.service
[root@filebeat filebeat]#systemctl status filebeat.service 

6、启动Logstash

[root@logstash conf.d]#ls
apache_log.conf  fb_logstash.conf  system.conf
[root@logstash conf.d]#logstash -f fb_logstash.conf

稍等片刻,还会出来数据

7、浏览器访问

http://192.168.10.100:9100

8、浏览器访问 http://192.168.10.100:5601 登录 Kibana

单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息

总结:

1、一般用什么来代替logstash?为什么?

一般使用Filebeat代替logstash
因为logstash是由Java开发的,需要运行在JVM上,耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患;而filebeat是一款轻量级的开源日志文件数据搜集器,能快速收集数据,并发送给 logstash 进行解析,性能上相比运行于 JVM 上的 logstash 优势明显。

2、feilbeat +Logstash + Elasticsearch +Kibana模式

这是一种更加完善和灵活的架构,适合处理复杂的日志数据

并将其发送到Elasticsearch进行索引。kibana则可以用来查看和分析日志数据
在这种模式下,filebeat (beats)负责收日志文件,并将其发送到logstash进行处理。logstash可以对日志数据进行更多的过滤、转换和增强的操作,并将其发送到Elasticsearch进行索引。kibana则可以用来查看和分析日志数据

3、feilbeat+缓存/消息队列+Logstash + Elasticsearch + Kibana 模式

这是一种加健壮高效的架构,适合处理海量复杂的日志数据,在这种模式下,filebeat和logstach之间加入缓存或消息队列组件,如redis、kafka或RabbitMQ等 ,这样可以降低对日志源主机的影响 ,提高日志传输的稳定性和可靠性,以及实现负载均衡和高可用

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

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

相关文章

力扣HOT100 - 240. 搜索二维矩阵 II

解题思路&#xff1a; 从左下角开始&#xff0c;根据条件删除行和列。 class Solution {public boolean searchMatrix(int[][] matrix, int target) {int row matrix.length - 1;int col matrix[0].length - 1;int l 0;while (row > 0 && l < col) {if (targ…

AI人工智能讲师简历大模型讲师叶梓大模型技术与应用培训提纲

叶梓&#xff0c;工学博士&#xff0c;高级工程师。现某大型上市企业资深技术专家。 2005年上海交通大学计算机专业博士毕业&#xff0c;在校期间的主研方向为数据挖掘、机器学习、人工智能。毕业后即进入软件行业从事信息化技术相关工作&#xff1b;负责或参与了多项国家级、省…

linux的io的知识大全

C语言的io操作 写文件 #include<stdio.h> #include<string.h>#define FILE_NAME "log.txt" int main() {FILE * fp fopen(FILE_NAME, "w");if(fpNULL){printf("fopen error!\n");}const char* msg "hello zk\n";int c…

使用 Docker 部署 Linux-Command 命令搜索工具

1&#xff09;介绍 Linux-Command GitHub&#xff1a;https://github.com/jaywcjlove/linux-command Linux-Command 仓库搜集了 580 多个 Linux 命令&#xff0c;是一个非盈利性的仓库&#xff0c;生成了一个 Web 网站方便使用&#xff0c;目前网站没有任何广告&#xff0c;内…

阿里云服务器企业租用费用价格表

阿里云服务器企业租用费用价格表&#xff0c;企业专享2核4G5M带宽云服务器优惠价格199元一年&#xff0c;配置为阿里云服务器ECS u1实例&#xff0c;2核4G、5M固定带宽、80G ESSD Entry盘&#xff0c;其他的云服务器配置2核2G3M带宽价格99元一年、4核8G服务器955元一年&#xf…

Springboot+vue的粮仓管理系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的粮仓管理系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&am…

PyCharm Pro 2024:卓越的Python编辑开发工具,适用于Mac与Windows平台

PyCharm Pro 2024是一款专为Python开发者设计的强大编辑开发工具&#xff0c;无论是Mac还是Windows用户&#xff0c;都能从中受益良多。该软件凭借其出色的性能、丰富的功能和卓越的用户体验&#xff0c;成为Python编程界的翘楚。 作为一款高效的Python编辑器&#xff0c;PyCh…

ELK 企业级日志分析 ELFK

一 ELK 简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源 工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 1 ElasticSearch&#xff1a; 是基于Lucene&#xff08;一个全文检索引擎的…

Qt | 信号与槽 原理、连接、断开(面试无忧)

1、信号和槽是用于对象之间的通信的,这是 Qt 的核心。为此 Qt 引入了一些关键字,他们是slots、signals、emit,这些都不是 C++关键字,是 Qt 特有的,这些关键字会被 Qt 的 moc转换为标准的 C++语句。 2、Qt 的部件类中有一些已经定义好了的信号和槽,通常的作法是子类化部件…

每日一题 — 将 x 减到 0 的最小操作数

思路&#xff1a; 题目要求是让我们从数组的最左端和最右端进行操作&#xff0c;这样的话解题的难度大大提升&#xff0c;我们可以用 正难则反 的思想&#xff1a; 题目中要求是减去数组中的数刚好等于X&#xff0c;我们可以转换成 数组中某一段的和等于 数组的总长减去X(sum -…

HarmonyOS实战开发-图片编辑、使用 TextArea 实现多文本输入

介绍 本示例使用 TextArea 实现多文本输入&#xff0c;使用 ohos.app.ability.common 依赖系统的图库引用&#xff0c;实现在相册中获取图片&#xff0c;使用 ohos.multimedia.image 生成pixelMap&#xff0c;使用pixelMap的scale()&#xff0c;crop()&#xff0c;rotate()接口…

rust wasm入门

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列、spring教程等&#xff0c;大家有兴趣的可以看一看 &#x1f4d9;Jav…

连续6年!九州未来获评2024中国边缘计算企业20强

4月9日&#xff0c;由国内中立边缘计算领域研究平台——边缘计算社区策划发起的“2024中国边缘计算企业20强”榜单正式揭晓&#xff0c;九州未来凭借在边缘计算领域的深厚积累以及创新实践&#xff0c;从众多参评企业中脱颖而出&#xff0c;连续6年入选中国边缘计算企业20强&am…

vue3第十八节(diff算法)

引言&#xff1a; 上一节说了key的用途&#xff0c;而这个key属性&#xff0c;在vue的vnode 中至关重要&#xff0c;直接影响了虚拟DOM的更新机制&#xff1b; 什么场景中会用到diff算法 如&#xff1a;修改响应式属性需要重新渲染页面&#xff0c;会重新执行render渲染函数返…

智慧之旅不止步!凌恩生物3月客户文章累计IF>314.8!

2024年3月&#xff0c;凌恩生物助力客户发表文章63篇&#xff0c;累计影响因子314.8分&#xff0c;其中包括Science of the Total Environment、Journal of Hazardous Materials、Carbohydrate Polymers、Genome Biology、Chemical Engineering Journal、Bioresource Technolog…

从 SQLite 3.5.9 迁移到 3.6.0(二十一)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;从 SQLite 3.4.2 迁移到 3.5.0&#xff08;二十&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​SQLite 版本 3.6.0 &#xff08;2008-07-16&#xff09; 包含许多更改。按照惯例 SQLite项目&#xff…

关于centos8自带的apache2.4开启https后,XP系统的IE8无法显示网页的问题

经检验&#xff0c;是因为系统的apache和openssl版本太高导致的。 禁用系统默认的apache2.4&#xff0c;自己重新源码编译安装一套openssl-1.0.1fapache2.2.23php7.1.2即可。跟update-crypto-policies没有关系&#xff0c;可保持默认的DEFAULT状态。 关于centos8自带的apache2…

故障诊断 | 基于LSTM的滚动轴承故障诊断

效果 概述 基于LSTM(长短期记忆网络)的滚动轴承故障诊断是一种利用深度学习技术来预测滚动轴承是否存在故障的方法。下面是一个基本的滚动轴承故障诊断的流程: 数据收集:首先,需要收集与滚动轴承相关的振动信号数据。这些数据可以通过传感器或振动监测系统获取。收集的数…

Redis入门到通关之Redis介绍

文章目录 1.Redis简单介绍1.1 非关系型数据库介绍 2.本文介绍如下内容3.初始Redis3.1.认识NoSQL3.1.3.查询方式3.1.4.事务3.1.5.总结 3.2.认识Redis3.3 安装Redis 1.Redis简单介绍 Redis是一种键值型的 NoSql 数据库&#xff0c;这里有两个关键字&#xff1a; 键值型NoSql 其…

不通过command,通过idea配置启动项

有同学问&#xff0c;不通过npm run dev这几个字母输入在控制台如何运行呢&#xff1f; 哦&#xff0c;还真有&#xff0c;不过原理是一样的&#xff0c;下面来看看叭 点击左上角的编辑配置Edit Configurations 进来之后点击左上角的加号 点击npm&#xff0c;package.json选择…