ELFK——ELK结合filebeat日志分析系统(2)

464 阅读2分钟

一、filebeat

Filebeat,轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中。

filebeat 结合 logstash 带来好处

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

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

3)将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件

4)使用条件数据流逻辑组成更复杂的处理管道

二、ELFK

1.原理简介

在ELK中,Logstash 负责收集日志,将日志格式化并输出到 Elasticsearch 群集中;Elasticsearch 对格式化后的数据进行索引和存储;Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

而在ELFK中,filebeat替代logstash收集日志,而logstash负责格式化日志和输出到es集群。

微信截图_20221128153307.png

2.在ELK基础上部署filebeat

nginx服务器部署filebeat:192.168.116.40

logstash+kibana服务器:192.168.116.50

es节点1: 192.168.116.60

es节点2: 192.168.116.70

关闭防火墙和selinux

微信截图_20221128154729.png

下载nginx,添加测试页面

#配置nginx官方源
cd /etc/yum.repos.d/
vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

#下载并启动
yum -y install nginx
systemctl enable --now nginx

#添加测试页面
cd /usr/share/nginx/html/
echo '<h1>this is nginxlog test1 webpage</h1>' > test1.html
echo '<h1>this is nginxlog test2 webpage</h1>' > test2.html

准备filebeat安装包,解压安装

微信截图_20221128154909.png

tar xf filebeat-6.7.2-linux-x86_64.tar.gz
mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat

修改filebeat配置文件 /usr/local/filebeat/filebeat.yml

微信截图_20221128155000.png

微信截图_20221128155026.png

启动filebeat

nohup ./filebeat -e -c filebeat.yml        nohup后台启动(不会因为退出终端而终端)

-e        同时输出到屏幕(便于实验),也可以使用重定向到文件中

-c        指定配置文件

微信截图_20221128155130.png

修改logstash配置文件

微信截图_20221128155152.png

启动logstash

微信截图_20221128155209.png

微信截图_20221128155258.png

测试索引收集日志

微信截图_20221128155321.png

微信截图_20221128155335.png

微信截图_20221128155350.png

但是此索引包含了nginx的access.log和error.log,我们可以在配置文件中添加条件判断分割日志,然后重启服务测试

微信截图_20221128155420.png

微信截图_20221128155438.png

在客户端访问nginx测试页面,然后刷新es,出现了分割的索引

微信截图_20221128155505.png

在kibana中创建对应索引

微信截图_20221128155534.png

之后就可以查看了

微信截图_20221128155604.png