ELK+filebeat

server/2024/9/23 2:05:13/

ELK+filebeat

一、filebeat概述
1、filebeat概念:
filebeat日志收集工具和logstash相同

filebeat是一款轻量级的日志收集工具,可以在非JAVA环境下运行。

因此,filebeat常被用在非JAVAf的服务器上用于替代Logstash,收集日志信息。
实际上,Filebeat几乎可以起到与Logstash相同的作用,
可以将数据转发到Logstash、Redis或者是Elasticsearch中进行直接处理。

为什么要用filebeat来收集日志?为什么不直接使用lohstash收集日志?
因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存
(这就是为什么logstash启动特别慢的原因)。

而filebeat只需要10M左右的内存资源。
常用的ELK日志采集方案中,大部分的做法就是将所有节点的日志内容通过filebeat发送到logstash,
lostash根据配置文件进行过滤,然后将过滤之后的文件传输到elasticsearch中,最后通过kibana展示。

2、filebeat的优缺点
优点:

filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多

filebeat可以运行在非java环境。他可以代替logstash在非Java环境上收集日志

filebeat收集的数据可以发往多个主机。远程收集

缺点:

filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用

logstash 500M firebeat 10M

yml格式严格执行缩进

3、filebeat结合logstash带来的好处?

1、通过logstash,具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,
从而减轻Elasticsearch持续写入数据的压力。

2、从其它数据源(例如数据库,s3对象存储或消息传递队列)中提取

3、将数据发送到多个目的地,例如S3,HDFS(hadoop分部署文件系统)或写入文件

4、使用数据流逻辑组成更复杂的处理管道。

4、工作流程图:

在这里插入图片描述

二、filebeat+ELK实验部署

架构:

ES节点两个:

node1:192.168.183.10

node2:192.168.183.20

日志节点(logstash、kibana、filebeat):192.168.183.30

1.安装 Filebeat

#上传软件包 filebeat-6.7.2-linux-x86_64.tar.gz 到/opt目录

tar zxvf filebeat-6.7.2-linux-x86_64.tar.gz

mv filebeat-6.7.2-linux-x86_64/ /usr/local/filebeat

#时间同步

yum install ntpdate -y

ntpdate ntp.aliyun.com

2.设置 filebeat 的主配置文件

cd /usr/local/filebeat

vim filebeat.yml

filebeat.inputs:

在这里插入图片描述

  • type: log

    enabled: true

    paths:

    • /usr/local/nginx/logs/access.log

    • /usr/local/nginx/logs/error.log

    tags: [“nginx_23”]

    fields:

    service_name: 20.0.0.23_nginx

    log_type: nginx

    from: 20.0.0.23

Elasticsearch output模块全部注释掉

因为filebeat只能收集日志,不能过滤日志,所以需要先发给logstash过滤处理日志,再由logstash发送给elasticsearch。这里不直接发送给elasticsearch

Logstash output

在这里插入图片描述

在这里插入图片描述

配置logsatsh

在这里插入图片描述

input {

beats { port => “5044” }

}

output {

if “nginx_23” in [tags] {

elasticsearch {

hosts => [“20.0.0.21:9200”,“20.0.0.22:9200”]

index =>“%{[fields][service_name]}-%{+YYYY.MM.dd}”

}

}

stdout {

codec => rubydebug

}

}

启动 filebeat:

nohup ./filebeat -e -c filebeat.yml > filebeat.out &

-e:输出到标准输出,禁用syslog/文件输出

-c:指定配置文件

nohup:在系统后台不挂断地运行命令,退出终端不会影响程序的运行

在这里插入图片描述

给所要操作的日志访问权限

chmod 777 access.log error.log

在这里插入图片描述

启动logstash配置:****

logstash -f nginx_23.conf --path.data /opt/test1 &

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

filebeat 远程收集日志

工作过程:

filebeat和logstash不部署在同一节点上

filebeat先在节点上收集日志,在远程发送给logstash。

在节点上安装filebeat

配置filebeat文件:

Filebeat inputs
在这里插入图片描述

Elasticsearch output(全部注释掉)

Logstash output

output.logstash:

The Logstash hosts

hosts: [“20.0.0.23:5045”] #指定 logstash 的 IP 和端口
在这里插入图片描述

配置logstash(去logstash节点)

在这里插入图片描述

启动 filebeat(filebeat节点)

cd /usr/local/filebeat

nohup ./filebeat -e -c filebeat.yml > filebeat.out &

在这里插入图片描述

去logstash节点启动

logstash -f nhm.conf --path.data /opt/test2 &
在这里插入图片描述

logstash可以使用任意端口,只要没被占用都可以使用,推荐1024之后开始

如何对logstash做性能上的优化

logstash启动是在jvm虚拟机上启动的,启动一次至少占500M内存

pipeline.workers: 2

logstash的工作线程,默认值就是cpu数,4核给2, 8核 给4 给一半即可

pipeline.batch.size 125

一次性能够批量处理检索事件的大小默认125。性能好可以给 200

pipline.batch.delay: 50

查询更新的延迟。50毫秒,可以自行调整。生产中15 、10。看机器性能

gstash可以使用任意端口,只要没被占用都可以使用,推荐1024之后开始

如何对logstash做性能上的优化

logstash启动是在jvm虚拟机上启动的,启动一次至少占500M内存

pipeline.workers: 2

logstash的工作线程,默认值就是cpu数,4核给2, 8核 给4 给一半即可

pipeline.batch.size 125

一次性能够批量处理检索事件的大小默认125。性能好可以给 200

pipline.batch.delay: 50

查询更新的延迟。50毫秒,可以自行调整。生产中15 、10。看机器性能


http://www.ppmy.cn/server/94127.html

相关文章

Vue Router 详解

Vue Router 是 Vue.js 生态系统中的一个核心插件,旨在帮助开发者轻松地在单页面应用程序 (SPA) 中实现路由功能。在这篇博客中,我们将深入探讨 Vue Router 的各个方面,包括其基本概念、配置和高级用法。 1. 什么是 Vue Router? …

路由配置修改(五)

一、默认约定式路由 1、umi 会根据 pages 目录自动生成路由配置。 * name umi 的路由配置* description 只支持 path,component,routes,redirect,wrappers,name,icon 的配置* param path path 只支持两种占位符配置,第一种是动态参数 :id 的形式,第二种…

C#知识|XML文件操作

哈喽,你好啊,我是雷工! 之前有朋友在群里聊XML文件操作的问题,今天正好学习相关内容, 以下为学习笔记。 01 XML介绍 ①:XML是eXtensible Markup Language的缩写,即扩展标记语言。 ②:XML是一种可以用来创建自定义的标记语言,由W3C(万维网协会)创建,用来克服HTML的局…

为 Laravel 提供生产模式下的容器化环境:打造现代开发环境的终极指南

为 Laravel 提供生产模式下的容器化环境:打造现代开发环境的终极指南 在现代开发中,容器化已经成为一种趋势。使用 Docker 可以让我们轻松地管理和部署应用程序。本文将带你一步步构建一个高效的 Laravel 容器化环境,确保你的应用程序在开发…

案例分享—国外优秀ui设计作品赏析

国外UI设计创意迭出,融合多元文化元素,以极简风搭配动态交互,打造沉浸式体验,色彩运用大胆前卫,引领界面设计新风尚 同时注重用户体验的深度挖掘,通过个性化定制与智能算法结合,让界面不仅美观且…

C#中多线程编程中的同步、异步、串行、并行及并发及死锁

在C#中,多线程编程是一个强大的功能,它允许程序同时执行多个任务。然而,这也带来了复杂性,特别是在处理同步、异步、串行、并行、并发以及死锁等问题时。下面我将详细解释这些概念,并给出一些C#中的示例和注意事项。 …

分析为什么在 PyTorch 中,训练好深度神经网络后要使用 model.eval()

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 训练模式 VS 评估模式。首先,我们需要明确 PyTorch 中的模型存在两种重要模式:训练模式(training mode)与评估模式(evaluation mode&#xff…

基于SpringBoot+Vue的校园便利平台(带1w+文档)

基于SpringBootVue的校园便利平台(带1w文档) 基于SpringBootVue的校园便利平台(带1w文档) 本平台采用B/S架构、采用的数据库是MySQL,使用JAVA技术开发。该平台的开发方式无论在国内还是国外都比较常见,而且开发完成后使用普遍,可以给平台用户…