一、基本介绍

1、ElestaicSearch

为开源搜索引擎,负责数据的存储及搜索

2、kibana

为开源工具,提供界面给用户进行搜索操作

3、fileBeat

为开源工具,是文件数据收集器

4、EFK工作基本原理

在部署服务的服务器节点安装fileBeat,通过路径配置使得fileBeat对指定服务日志文件的数据进行收集->收集的数据会传输到ElestaticSearch进行存储->用户通过浏览器访问kibana->然后kibana从ElestaticSearch获取数据

 

二、搭建过程

1、搭建

//EFK日志搜索平台搭建
下载地址:https://www.elastic.co/cn/downloads/   //进入可挑选想要下载的版本(几个工具的版本号要一致!!!!)
安装配置参考地址:
https://blog.csdn.net/cloud_xy/article/details/103228810?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2

https://blog.csdn.net/javageektech/article/details/100036929


1、ElestaicSearch安装与配置
//解压
//配置
//执行
后台执行命令:
./bin/elastatic -d
后台进程取消命令:
(1)ps -ef | grep Elastic            
(2)kill -15 pid

2、kibana安装与配置
//解压
//配置
//执行
准确的后台执行命令:./bin/kibana &
后台启动命令:(优先)
nohup ./bin/kibana >> logs/kibana.log 2>&1 &
后台进程取消命令:
(1)ps -ef | grep '.*node/bin/node.*src/cli'        //查找kibana进程pid
(2)kill -15 ${kibana_pid}           //杀死进程

3、FileBeat安装与配置
//解压
//配置
//执行
后台启动进程:
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
杀死进程:
ps -ef | grep filebeat
kill -15 pid
测试配置是否正确:
./filebeat test config -e

2、成果

//ElasticSearch

elk的搭建 elk平台搭建_elk的搭建

 

 

//Kibana

elk的搭建 elk平台搭建_elk的搭建_02

 

 

//FileBeat

如图所示、FileBeat已生效,将指定路径的日志内容进行采集并传输给了指定机器的ElasticSearch收集

elk的搭建 elk平台搭建_Elastic_03

 

 

//efk搭建运行成功

(1)filebeat运行成功后,会采集指定Log文件给Elastic,然后Elastic会传输给Kibana,此时重新访问Kibana时,页面会发生变化,提示已有数据

elk的搭建 elk平台搭建_Elastic_04

 

 (2)索引创建成功

elk的搭建 elk平台搭建_elk的搭建_05

 

 (3)日志搜索成功

elk的搭建 elk平台搭建_Elastic_06

 

 

elk的搭建 elk平台搭建_数据_07

 

 

三、FAQ问题集锦

1、启动kibana出现错误?

elk的搭建 elk平台搭建_数据_08

 


 原因:glibc工具以及glibcxx工具未安装或版本过旧

解决方法:https://www.freesion.com/article/4734514761/https://tech1024.com/original/3021

效果:

elk的搭建 elk平台搭建_数据_09

 

 

elk的搭建 elk平台搭建_Elastic_10

 

 

2、在浏览器里访问Kibana失败?

elk的搭建 elk平台搭建_Elastic_11

 

原因:在config/kibana.yml里需要把server.host配置为0.0.0.0,才代表所有ip都能访问该机器kibana的服务;把elastic.url配置为http://localhost:9200,才能使得kibana服务连接elstaic服务。

 

3、遇到问题2如果还未能解决或是遇到问题“server is not ready yet”?

解决方法:

(1)先在Elasticsearch中删除kibana索引curl -XDELETE http://localhost:9200/.kibana*

(2)再重新启动kibana服务

 

4、启动fileBeat服务提升“Exiting: error loading config file: yaml: line 110: did not find expected key”?

elk的搭建 elk平台搭建_Elastic_12

 

 原因:配置文件有语法错误,根据提示的行数进行语法修正即可

 

5、创建索引时,发生错误?

elk的搭建 elk平台搭建_搜索_13

 

 

解决方法:

(1)先执行以下更改ES对应fileData的缓存命令

curl -H "Content-Type: application/json" -XPUT '[http://localhost:9200/\_cluster/settings](http://localhost:9200/_cluster/settings)' -d '{"persistent":{"indices.breaker.fielddata.limit":"40%"}}'

elk的搭建 elk平台搭建_elk的搭建_14

 

 

(2)重启服务

(3)重新访问kibana,创建索引成功

elk的搭建 elk平台搭建_数据_15

 

 

6、索引创建成功,但是搜索不到日志数据?

原因:搜索的时间点不对,kibana搜索框的查询时间对应的是服务器的时间即fileBeat采集日志这个动作的时间,不是日志文件内容里的时间。

elk的搭建 elk平台搭建_数据_16