ELK+filebeat

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 =>"%{fieldsservice_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。看机器性能

相关推荐
Asuicao15 分钟前
centos7.9版本升级ssh OpenSSH 9.8p1 源码 OpenSSL 1.1.1w 源码包以及安装升级回滚文档
运维·ssh
志栋智能1 小时前
超自动化安全中的威胁狩猎
运维·安全·自动化
↘"LYong1 小时前
旧版 CentOS 安装 Docker 完整指南(附国内镜像加速)
linux·运维·docker
Elastic 中国社区官方博客2 小时前
Elastic 在 Everest Group 企业搜索产品 PEAK Matrix® 评估 2026 中被评为领导者
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
程序员在囧途2 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
想你依然心痛3 小时前
Linux用户空间与内核空间通信:netlink、ioctl、mmap 零拷贝与性能对比
linux·运维·服务器
沉静的小伙3 小时前
在微服务中使用领域事件
java·运维·微服务
wenzhangli74 小时前
oodAgent 4.0 Skills分布式调度 — 从Code Agent实战看自主维护的Agent网络
运维·网络·人工智能·自动化
做个文艺程序员4 小时前
Linux第12篇:性能监控与瓶颈分析——CPU/内存/IO/网络全维度
linux·运维·网络
K姐研究社4 小时前
OiiOii 2.0 实测 – 智能画布实现 AI 视频创作自动化
运维·人工智能·自动化