一、简介:
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版本。
7.5版本的es需要java11的支持
安装相关依赖包:
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
注: kibana.index,Kibana 在 Elasticsearch 中使用一个索引来存储保存的搜索、可视化效果和仪表盘。如果该索引不存在,Kibana会创建一个新的索引,默认 .kibana;
启动 kibana:
cd bin
./kibana
后台启动:
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
后台启动 filebeat:
nohup ./filebeat -c filebeat.yml &
到此日志分析系统就已经搭建完成
kibana页面详细配置-更新中~~~~