当前位置:   article > 正文

基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)日志框架_logstash 配置连接docker elasticsearch8.x

logstash 配置连接docker elasticsearch8.x

一、引言

随着企业业务的不断增长,日志管理成为了系统运维中不可或缺的一部分。ELK(Elasticsearch、Logstash、Kibana)作为一套开源的日志管理系统,以其高效、灵活、可扩展的特性,成为了众多企业的首选。本文将详细介绍如何搭建一套完整的ELK日志管理系统。

二、环境准备

  1. 准备至少一台Linux服务器(或者虚拟机),用于部署ELK组件。
  2. 确保服务器有足够的磁盘空间和网络带宽。
  3. 确保服务器已经安装好docker容器

三、Elasticsearch部署

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。

1. 版本选择

类型/版本6.x7.x8.x建议
LicenceApache 2.07.0~7.10 Apache 2.07.11++ SSPLSSPL建议选择更友好的Apache2.0版本,SSPL协议对于想要让ES做为PAAS对外提供服务的话,将会面临es厂商的限制
云厂商支持程度腾讯、阿里云均支持,华为不支持腾讯云最高版 7.10.x阿里云7.10.x,7.16.x华为云7.6.x,7.10.x均不支持各云厂商也主要在推广7.x版本,稳定性及占用率更高
发版时间201620192021建议选择7.x版本,经历将近4年,稳定性已经经过验证,6.x和8.x一个太老一个太新
特性差异/集群配置简化,master选举进行了优化,能够避免集群脑裂Q问题;索引创建只 已经去除了type,更加简化;索引查询算法升级,查询性能有优化;提供安全策略;Kibana更轻量化,更易用;ES API进行了升级方便后续升级使用更加安全,es默认开启了一些安全功能;新的搜索API特性比如支持NLP等;7.x基本也能满足目前需求,稳定性也更有保障
SpringBoot兼容2.1~2.2版本对6.x支持2.3~2.7版本对7.x支持/看框架选择

博主这里使用 7.x 版本中的 7.10.1版本做演示

2. ES镜像部署

  1. ES镜像拉取 docker镜像地址

docker pull elasticsearch:7.10.1

  1. 修改JVM堆大小
    默认情况下,Elasticsearch的JVM使用的堆大小为2GB,可以修改ES的jvm默认参数

find /var/lib/docker/overlay2/ -name jvm.options

修改jvm配置,根据服务器配置修改合适大小
在这里插入图片描述
-Xms2g 改为 -Xms1g
-Xmx2g 改为 -Xmx1g

  1. 调整vm.max_map_count大小

这是一个设置内核参数的语法,vm.max_map_count 是内核参数的名称。它用于控制单个进程能够拥有的虚拟内存区域(即映射区域)的最大数量。
Elasticsearch使用了大量的内存映射文件来存储数据索引和缓存。为了保证Elasticsearch正常运行,在某些操作系统中需要增加 vm.max_map_count 的值。
通过将该参数设置为较大的值(例如262144),可以确保操作系统能够提供足够的虚拟内存区域供Elasticsearch使用,从而避免潜在的性能问题或错误。

vim /etc/sysctl.conf

在这里插入图片描述
保存退出,查看配置是否生效

sysctl -p

在这里插入图片描述

  1. 创建es容器挂载目录

mkdir -p data config plugins

[fd@localhost es]$ mkdir -p data config
[fd@localhost es]$ ll
总用量 8.0K
drwxr-xr-x. 2 fd fd 4.0K  6月 14 21:15 config
drwxr-xr-x. 2 fd fd 4.0K  6月 14 21:15 data
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 部署单点es,创建es容器
docker run -d \
--restart=always \
--name elasticsearch \
--network elk-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /home/fd/dockerApp/es/data:/usr/share/elasticsearch/data \
-v /home/fd/dockerApp/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" \
elasticsearch:7.10.1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

命令解释:
-e “cluster.name=es-docker-cluster”:设置集群名称
-e “http.host=0.0.0.0”:监听的地址,可以外网访问
-e “ES_JAVA_OPTS=-Xms512m -Xmx512m”:分配内存大小
-e “discovery.type=single-node”:单节点模式
-v /home/fd/dockerApp/es/data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
-v es-logs:/usr/local/elasticsearch7.12.1/logs:挂载逻辑卷,绑定es的日志目录
-v /home/fd/dockerApp/es/plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
–privileged:授予逻辑卷访问权
–network elk-net :加入一个名为elk-net的网络中
-p 9200:9200:端口映射配置

容器运行后,复制配置文件到服务器

docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml ./config/elasticsearch.yml

修改elasticsearch.yml配置

cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 关闭密码校验
xpack.security.enabled: false
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 关闭密码验证
    文件最后添加xpack.security.enabled: false关闭 密码安全验证
    在这里插入图片描述

  • 设置跨域访问
    当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?

    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/773675
推荐阅读
相关标签