目录
一、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集群。
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
下载nginx,添加测试页面
bash
#配置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安装包,解压安装
bash
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
启动filebeat
nohup ./filebeat -e -c filebeat.yml nohup后台启动(不会因为退出终端而终端)
-e 同时输出到屏幕(便于实验),也可以使用重定向到文件中
-c 指定配置文件
修改logstash配置文件
启动logstash
测试索引收集日志
但是此索引包含了nginx的access.log和error.log,我们可以在配置文件中添加条件判断分割日志,然后重启服务测试
在客户端访问nginx测试页面,然后刷新es,出现了分割的索引
在kibana中创建对应索引
之后就可以查看了