ToB企服应用市场:ToB评测及商务社交产业平台
标题:
基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)日志框架
[打印本页]
作者:
愛在花開的季節
时间:
2024-8-12 19:08
标题:
基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)日志框架
一、引言
随着企业业务的不停增长,日志管理成为了体系运维中不可或缺的一部分。ELK(Elasticsearch、Logstash、Kibana)作为一套开源的日志管理体系,以其高效、机动、可扩展的特性,成为了众多企业的首选。本文将详细介绍怎样搭建一套完备的ELK日志管理体系。
二、环境准备
准备至少一台Linux服务器(或者虚拟机),用于部署ELK组件。
确保服务器有充足的磁盘空间和网络带宽。
确保服务器已经安装好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镜像部署
ES镜像拉取 docker镜像地址
docker pull elasticsearch:7.10.1
修改JVM堆巨细
默认环境下,Elasticsearch的JVM使用的堆巨细为2GB,可以修改ES的jvm默认参数
find /var/lib/docker/overlay2/ -name jvm.options
修改jvm配置,根据服务器配置修改符合巨细
-Xms2g 改为 -Xms1g
-Xmx2g 改为 -Xmx1g
调整vm.max_map_count巨细
这是一个设置内核参数的语法,vm.max_map_count 是内核参数的名称。它用于控制单个进程能够拥有的虚拟内存区域(即映射区域)的最大数量。
Elasticsearch使用了大量的内存映射文件来存储数据索引和缓存。为了保证Elasticsearch正常运行,在某些操纵体系中须要增加 vm.max_map_count 的值。
通过将该参数设置为较大的值(比方262144),可以确保操纵体系能够提供充足的虚拟内存区域供Elasticsearch使用,从而制止潜伏的性能题目或错误。
vim /etc/sysctl.conf
保存退出,检察配置是否见效
sysctl -p
创建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
复制代码
部署单点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
复制代码
命令解释:
-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: "*"
复制代码
关闭暗码验证
文件最后添加xpack.security.enabled: false关闭 暗码安全验证
设置跨域访问
当设置允许跨域,默认为*,表现支持全部域名,假如我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4