【云原生 • Docker】 ELK 8.4.3 docker 保姆级安装部署详细步骤

文章目录

ELK简介

之前我们已经使用过软件进行过安装了,不知道的可以看我之前写的文章ELK日志系统搭建完整详细步骤

  • ELK主要由ElasticSearch、Logstash和Kibana三个开源工具组成,还有其他专门由于收集数据的轻量型数据采集器Beats。
  • Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 是用Java 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。在elasticsearch中,所有节点的数据是均等的。
  • Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。
  • Kibana :可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。
  • Filebeat:轻量级数据收集引擎。相对于Logstash所占用的系统资源来说,Filebeat 所占用的系统资源几乎是微乎及微。它是基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。

二、版本说明

  • Elasticsearch、Logstash、Kibana、Filebeat安装的版本号必须全部一致,不然会出现kibana无法显示web页面。

ELK常见的几种架构:

  1. Elasticsearch + Logstash + Kibana

这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。

  1. Elasticsearch + Logstash + filebeat + Kibana

与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,用来部署在客户端,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。

  1. Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如Kafka) + Kibana

这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。

本次安装ELK根据自身需求选择了Elasticsearch + Logstash + filebeat + Kibana架构

三、安装部署

3.1 创建docker网络

docker network create -d bridge elastic

3.2 Elasticsearch

拉取docker镜像,版本:8.4.3

docker pull elasticsearch:8.4.3

第一次执行docker脚本

docker run -it \
    -p 9200:9200 \
    -p 9300:9300 \
    --name elasticsearch \
    --net elastic \
    -e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
    -e "discovery.type=single-node" \
    -e LANG=C.UTF-8 \
    -e LC_ALL=C.UTF-8 \
    elasticsearch:8.4.3

注意第一次执行脚本不要加-d这个参数,否则看不到服务首次运行时生成的随机密码和随机enrollment token

可以看到控制台的信息,找到这个信息并保存下来

在这里插入图片描述

创建Elasticsearch挂载目录

mkdir -p /dhx/elk8.4.3/elasticsearch

给创建的文件夹授权

chmod -R 777 /dhx/elk8.4.3/elasticsearch

将容器内的文件复制到主机上

docker cp elasticsearch:/usr/share/elasticsearch/config /dhx/elk8.4.3/elasticsearch/        
docker cp elasticsearch:/usr/share/elasticsearch/data /dhx/elk8.4.3/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/plugins /dhx/elk8.4.3/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/logs /dhx/elk8.4.3/elasticsearch/

删除容器

docker rm -f elasticsearch

修改docker脚本,增加-v挂载目录和-d参数

docker run -it \
    -d \
    -p 9200:9200 \
    -p 9300:9300 \
    --name elasticsearch \
    --net elastic \
    -e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
    -e "discovery.type=single-node" \
    -e LANG=C.UTF-8 \
    -e LC_ALL=C.UTF-8 \
    -v /dhx/elk8.4.3/elasticsearch/config:/usr/share/elasticsearch/config \
    -v /dhx/elk8.4.3/elasticsearch/data:/usr/share/elasticsearch/data \
    -v /dhx/elk8.4.3/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -v /dhx/elk8.4.3/elasticsearch/logs:/usr/share/elasticsearch/logs \
    elasticsearch:8.4.3

修改配置/dhx/elk8.4.3/elasticsearch/config/elasticsearch.yml:

vi /dhx/elk8.4.3/elasticsearch/config/elasticsearch.yml
#根据自己的配置内容进行修改
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#跨域设置
http.cors.enabled:    true
http.cors.allow-origin:  "*"
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 16-12-2022 08:21:56
#
# --------------------------------------------------------------------------------
#****此处是否开启密码校验模式 true是开启密码校验模式,否则不用密码校验
xpack.security.enabled: false
#****启动会报错not all primary shards of [.geoip_databases] index are active at 则将该配置改为false
ingest.geoip.downloader.enabled: false
#添加这个配置以后在kibana中才会显示联机状态,否则会显示脱机状态
xpack.monitoring.collection.enabled: true
#xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
#xpack.security.http.ssl:
#  enabled: true
#  keystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
#xpack.security.transport.ssl:
#  enabled: true
#  verification_mode: certificate
#  keystore.path: certs/transport.p12
#  truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
  • 增加:xpack.monitoring.collection.enabled: true
  • 说明:添加这个配置以后在kibana中才会显示联机状态,否则会显示脱机状态
  • 参考配置:

在这里插入图片描述

  • 重启容器
docker restart elasticsearch

Elasticsearch8以上默认开启了X-Pack 安全功能

  • 说明:请求Elasticsearch必须使用https
  • 测试:https://ip:9200

在这里插入图片描述

  • 用户名就是:elastic
  • 密码在第一次启动时保存下来的信息中查找
  • 然后看到这种信息说明启动成功了

在这里插入图片描述

自定义修改密码

# 重置下面两个密码,注意:需等待es启动
# docker exec -it elas
  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值