一、简介:

1、总体概要:

1.1、EFK 不是一个软件,而是一套解决方案。EFK 是三个开源软件的缩写,Elasticsearch,FileBeat,Kibana。

ELasticsearch  : 负责日志分析和存储,
FileBeat : 负责日志收集
Kibana : 负责界面展示

它们之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志分析系统解决方案。

1.2、EFK 和 ELK 只有一个区别, 收集日志的组件由 Logstash 替换成了 FileBeat,因为 Filebeat 相对于 Logstash 来说有2个好处

1. 侵入低,无需修改 elasticsearch 和 kibana 的配置;
2. 性能高,IO 占用率比 logstash 小太多;

当然 Logstash 相比于 FileBeat 也有一定的优势,比如 Logstash 对于日志的格式化处理能力,FileBeat 只是将日志从日志文件中读取出来,当然如果收集的日志本身是有一定格式的,FileBeat 也可以格式化,但是相对于Logstash 来说,效果差很多。

2、各组件简介:

- Elasticsearch
是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。

它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等

- Filebeat
隶属于 Beats。目前 Beats 包含六种工具:

Packetbeat(搜集网络流量数据)
Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
Filebeat(搜集文件数据)
Winlogbeat(搜集 Windows 事件日志数据)
Auditbeat( 轻量型审计日志采集器)
Heartbeat(轻量级服务器健康采集器)

- Kibana
可以为 Logstash 、Beats和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志

*另外,EFK 系统下的各个组件都非常吃内存,后期根据业务需要,EFK 的架构可进行扩展,当 FileBeat 收集的日志越来越多时,为防止数据丢失,可引入 Redis,而 ElasticSearch 也可扩展为集群,并使用 Head 插件进行管理, 所以要保证服务器有充足的运行内存和磁盘空间。

二、开始搭建:

环境准备:

在 elasticsearch 官网下载 EFK 安装包,Elasticsearch、Kibana、FileBeat一定要使用相同的版本,本次使用7.5版本。

ef三层架构干嘛用的 efk架构原理_linux

7.5版本的es需要java11的支持

ef三层架构干嘛用的 efk架构原理_Elastic_02

安装相关依赖包:
yum -y install glibc-devel gcc-c++ pcre-devel openssl openssl-devel

安装前关闭防火墙,关闭 selinux

systemctl stop firewalld && systemctl disable firewalld
setenforce 0

安装es:

解压:

tar -zxvf elasticsearch-7.5.0-no-jdk-linux-x86_64.tar.gz
mv elasticsearch-7.5.0 /usr/local/elasticsearch

Elasticsearch 使用 root 用户启动会报错,创建一个普通用户来启动 Elasticsearch:

useradd es

修改 elasticsearch 目录的属主和属组:

cd /usr/local
chown -R elastic.elastic elasticsearch

修改配置文件:
vim elasticsearch/config/elasticsearch.yml

node.name: node-1
network.host: 127.0.0.1
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

切换为普通用户,尝试启动:

su - es
cd /usr/local/elasticsearch/bin
./elasticsearch

设置 elasticsearch 为后台启动,并指定 PID 文件 :

./elasticsearch -p ./elasticsearch-pid -d

部署 kibana:

解压:

tar -zxvf kibana-7.5.0-linux-x86_64.tar.gz
mv kibana-7.5.0 /usr/local/kibana

修改配置文件:

cd /usr/local/kibana/
vim config/kibana.yml

ef三层架构干嘛用的 efk架构原理_linux_03


注: kibana.index,Kibana 在 Elasticsearch 中使用一个索引来存储保存的搜索、可视化效果和仪表盘。如果该索引不存在,Kibana会创建一个新的索引,默认 .kibana;

启动 kibana:

cd bin
./kibana

ef三层架构干嘛用的 efk架构原理_ef三层架构干嘛用的_04


后台启动:

nohup ./kibana &

部署 filebeat:

解压

tar -zxvf filebeat-7.5.0-linux-x86_64.tar.gz
mv filebeat-7.5.0-linux-x86_64 /usr/local/filebeat

编辑配置文件:

cd /usr/local/filebeat

vim filebeat.yml

ef三层架构干嘛用的 efk架构原理_linux_05

后台启动 filebeat:

nohup ./filebeat -c filebeat.yml &

到此日志分析系统就已经搭建完成

kibana页面详细配置-更新中~~~~