> 文章列表 > 使用docker部署EFK-7.8版本详细教程

使用docker部署EFK-7.8版本详细教程

使用docker部署EFK-7.8版本详细教程

ElasticSearch是一个基于Lucene的开源分布式搜索服务。只搜索和分析日志

特点:分布式,零配置,自动发现,索引自动分片,索引副本机制,多数据源等。它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

Kibana是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮你汇总、分析和搜索重要数据日志。

Filebeat轻量级数据收集引擎。相对于Logstash所占用的系统资源来说,Filebeat 所占用的系统资源几乎是微乎及微。它是基于原先 Logstash-fowarder 的。

系统配置:

192.168.197.136  centos7.9   ES

192.168.197.137  centos7.9   Kibana

192.168.197.137  centos7.9   Filebeat

Es和kibana服务器需要部署docker

部署es单节点7.8版本

docker pull elasticsearch:7.8.0 拉取es镜像

创建挂载数据,配置,日志存储目录

mkdir -p /data/elasticsearch/{data,logs,config}

给挂载目录es用户的权限,容器中有es用户是elasticsearch

chown -R elasticsearch:elasticsearch /data/elasticsearch/  使用es用户名赋权报错

chown -R 1000:1000 /data/elasticsearch/   因为本机上没有这个用户所以,可以直接用es用户的id进行配置

创建配置文件直接映射进容器

vim /data/elasticsearch/config/elasticsearch.yml

cluster.name: "efk"

network.host: 0.0.0.0

http.port: 9200    

为了方便管理编写了一个启动脚本

vim es.sh

#!/bin/bash

img_name='elasticsearch:7.8.0'

path=/data/elasticsearch

name=es-7.8

docker rm -f $name

docker run -d --name "$name" \\

  -e ES_JAVA_OPTS="-Xms2g -Xmx2g" \\

  -e "discovery.type=single-node"  \\

  --net=host            \\

  --restart=always      \\

  -v $path/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  \\

  -v $path/data:/usr/share/elasticsearch/data  \\

  -v $path/logs:/usr/share/elasticsearch/logs  \\

  $img_name

#配置单节点添加的参数single-node 表示该 Elasticsearch 节点为单节点部署,不需要进行节点发现。

bash es.sh   启动

 

来到web访问一下  192.168.197.136:9200

 

到这es单节点就部署好了

部署kibana7.8版本

docker pull kibana:7.8.0   拉取镜像

mkdir   /data/kibana/config   创建配置文件目录

mkdir   /data/kibana/data 创建数据存储目录

chown 1000:1000 -R kibana 给目录赋权不然会报错没有写入权限

vim /data/kibana/config/kibana.yml   编辑kibana配置文件

server.name: kibana

server.host: "0"

elasticsearch.hosts: ["http://192.168.197.136:9200"]  #填写es地址

xpack.monitoring.ui.container.elasticsearch.enabled: true  #这个参数的意思是启用 Kibana 的监控功能,并将监控数据保存到 Elasticsearch 中

为了方便管理编写了一个启动脚本

vim kibana.sh

#!/bin/bash

img_name='kibana:7.8.0'

path=/data/kibana

name=kibana

docker rm -f $name

docker run -d --name "$name" \\

  --restart=always           \\

  --log-opt max-size=100m    \\

  --log-opt max-file=3       \\

  --net=host                 \\

  -v $path/config:/usr/share/kibana/config  \\

  -v $path/data:/usr/share/kibana/data     \\

  $img_name

bash  kibana.sh

 

来到web访问一下  192.168.197.137:5601

 

kibana到这里就部署好了

需要采集日志的机器安装filebeat7.8版本

Download Filebeat • Lightweight Log Analysis | Elastic   访问官网

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.0-linux-x86_64.tar.gz

tar xzvf filebeat-7.8.0-linux-x86_64.tar.gz

mv filebeat-7.8.0-linux-x86_64 filebeat  

cd  filebeat

vim filebeat.yml

filebeat.inputs:

- type: log

  enabled: true

  paths:

- /data/log/error.log

  tags: ["error"]

output.elasticsearch:

  hosts: ["192.168.197.136:9200"]

  indices:

  - index: "login-1-error-%{+yyyy.MM.dd}"

    when.contains:

      tags: "error"

nohup ./filebeat -e -c filebeat.yml > filebeat.log & 运行filebeat

运行起来后看下运行日志是否建立链接

访问kibana查看一下有没有生成索引

 

到这EFK一整套就部署完了。