Windows基于Docker安装Elasticsearch和 kibana笔记

news2024/11/15 19:58:39

Windows基于Docker安装Elasticsearch和 kibana笔记

  • 一、Windows安装Docker
    • 1、Windows安装Docker要求
    • 2、Docker安装
  • 二、基于Docker安装Elasticsearch
    • 1、安装Elasticsearch
    • 2、Elasticsearch的XPACK验证
      • 2.1、什么是Xpack
      • 2.2、Xpack相关安全配置介绍
      • 2.2.1、xpack.security.enabled
      • 2.2.2 、xpack.security.http.ssl
      • 2.2.3、xpack.security.transport.ssl
    • 2.3、创建证书
      • 1. 进入docker容器
      • 2. 创建证书颁发机构
      • 3. 为节点生成证书和私钥
      • 4. 在elasticsearch/config目录下创建下certs目录
      • 5. 将elastic-certificates.p12文件可剪切到certs目录下
    • 2.4、给keystore和truststore设置密码
      • 2.5、修改elasticsearch.yml配置文件并重启elasticsearch
    • 2.6、重置用户密码
    • 2.7、登录ES
  • 三、基于Docker安装Kibana
    • 1、安装Elasticsearch
    • 2、配置kibana认证

一、Windows安装Docker

1、Windows安装Docker要求

1.1、Windows 版 Docker 需要运行在一个安装了 64 位 Windows 10 操作系统的计算机上,通过启动一个独立的引擎来提供 Docker 环境。

1.2、需要启用 Windows 操作系统中的 Hyper-V 和容器特性。

1) 右键单击 Windows 开始按钮并选择“应用和功能”页面。

2)单击“程序和功能”链接。

3) 单击“启用或关闭Windows功能”。

4)确认Hyper-V和容器复选框已经被勾选,并单击确定按钮。

按上述步骤操作完成后,会安装并开启 Hyper-V 和容器特性,如下图所示。这时需要重启操作系统。
在这里插入图片描述
在这里插入图片描述

2、Docker安装

1)访问docker官网(https://www.docker.com/),选择windows版本, 下载docker desktop。
在这里插入图片描述
2)docker安装完成后以管理员身份运行docker。
在这里插入图片描述
3)打开PowerShell,并尝试执docker version命令。
在这里插入图片描述
4)docker desktop安装完成。

二、基于Docker安装Elasticsearch

1、安装Elasticsearch

1)通过docker hub官网(https://hub.docker.com/)寻找 elasticsearch镜像。
在这里插入图片描述

2)寻找合适的elasticsearch版本
在这里插入图片描述
3)通过Windows的PowerShell命令,下载docker镜像

docker pull elasticsearch:8.7.1

4)查看镜像

docker images elasticsearch 

在这里插入图片描述
5)因为docker和kibana需要共享同一个网络,所以利用docker创建一个共享网络es-net

docker network create es-net

6)查看共享网络

docker network ls

在这里插入图片描述
7)运行elasticsearch(在PowerShell中执行时,需要把"/"移除)

docker run -d --name es \
	-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" \
	-e "discovery.type=single-node" \
	-v C:\Users\14547\Desktop\lyq\elasticsearch\es-data:/usr/share/elasticsearch/data \
	-v C:\Users\14547\Desktop\lyq\elasticsearch\es-plugins:/usr/share/elasticsearch/plugins \
	-v C:\Users\14547\Desktop\lyq\elasticsearch\temp:/usr/temp \
	--privileged \
	--network es-net \
	-p 9200:9200 \
	-p 9300:9300 \
	elasticsearch:8.7.1

8)运行参数详解

-d 										#容器后台运行
--name es 								#容器命名
-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"  	#设置容器最小最大运行内存
-e "discovery.type=single-node" 		#设置es的运行模式是单机运行
-v C:\Users\14547\Desktop\lyq\elasticsearch\es-data:/usr/share/elasticsearch/data  #数据卷,方便容器持久化
-v C:\Users\14547\Desktop\lyq\elasticsearch\es-plugins:/usr/share/elasticsearch/plugins #数据卷,方便容器持久化
-v C:\Users\14547\Desktop\lyq\elasticsearch\temp:/usr/temp #数据卷,方便容器持久化
--privileged 							#以最大权限运行容器
--network es-net 						#执行容器运行网络,与kibana运行保持在同一网络
-p 9200:9200 							#开放端口
-p 9300:9300 							#开放端口
elasticsearch:8.7.1 					#运行镜像和tag

9)查看容器运行情况

docker ps -f name=es

在这里插入图片描述
10)访问es,地址:http://localhost:9200/,需要密码验证
在这里插入图片描述

2、Elasticsearch的XPACK验证

2.1、什么是Xpack

X-Pack是Elastic Stack扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。
自6.8以及7.1+版本之后,基础级安全永久免费。

2.2、Xpack相关安全配置介绍

2.2.1、xpack.security.enabled

默认为true,启用节点上ES的XPACK安全功能,相当于总开关

2.2.2 、xpack.security.http.ssl

这个是用来开启https的,以及对应的设置,整体配置项如下:

xpack.security.http.ssl:
  enabled: false 【开启还是关闭】
  verification_mode: certificate【如下】
   【full:它验证所提供的证书是否由受信任的权威机构(CA)签名,并验证服务器的主机名(或IP地址)是否与证书中识别的名称匹配。】
   【certificate:它验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证。】
   【none:它不执行服务器证书的验证。】
  truststore.path: certs/elastic-certificates.p12 【信任存储库文件的存放位置】
  keystore.path: certs/elastic-certificates.p12【密钥存储库文件的存放位置】

2.2.3、xpack.security.transport.ssl

这个是传输层的认证设置,整体配置项如下:

xpack.security.transport.ssl:
  enabled: true【开启还是关闭】
  verification_mode: certificate【如下】
   【full:它验证所提供的证书是否由受信任的权威机构(CA)签名,并验证服务器的主机名(或IP地址)是否与证书中识别的名称匹配。】
   【certificate:它验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证。】
   【none:它不执行服务器证书的验证。】
  keystore.path: certs/elastic-certificates.p12【信任存储库文件的存放位置】
  truststore.path: certs/elastic-certificates.p12【密钥存储库文件的存放位置】

2.3、创建证书

1. 进入docker容器

进入docker容器的方法有两种:
1)通过PowerShell,执行命令,进入容器内部执行命令

docker exec -it es bash

在这里插入图片描述

2)通过docker desk,查看具体的容器,可以在docker desktop执行相关命令
在这里插入图片描述
在Terminal中可以执行相关的命令。
在这里插入图片描述

2. 创建证书颁发机构

提示命名文件:直接回车,默认文件名elastic-stack-ca.p12文件(建议使用默认文件名)
提示输入密码:输入密码进行设置(也可以直接回车)

./bin/elasticsearch-certutil ca

3. 为节点生成证书和私钥

提示命名文件,直接回车,默认文件名elastic-certificates.p12文件
提示输入密码:输入密码进行设置(也可以直接回车)

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

4. 在elasticsearch/config目录下创建下certs目录

进入docker容器后,默认所处目录为elasticsearch所在目录

mkdir config/certs 

5. 将elastic-certificates.p12文件可剪切到certs目录下

mv elastic-certificates.p12 config/certs/

2.4、给keystore和truststore设置密码

keystore可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息。truststore是放信任的证书的一个store。
truststore和keystore的性质是一样的,都是存放key的一个仓库,区别在于,truststore里存放的是只包含公钥的数字证书,代表了可以信任的证书,而keystore是包含私钥的。

1)执行以下命令。如果在创建证书的过程中加了密码,需要输入这个密码。每个节点都需要。

./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password

2)检查config目录下keystore文件

cd config

在这里插入图片描述

2.5、修改elasticsearch.yml配置文件并重启elasticsearch

1)打开docker desktop,进入到es容器。
在这里插入图片描述
2)在Files目录下找到elasticsearch.yml文件。(容器内文件绝对路径:/usr/share/elasticsearch/config/elasticsearch.yml)
在这里插入图片描述
3)修改配置文件内容,如下:

xpack.security.enabled: true

xpack.security.enrollment.enabled: true
  
xpack.security.http.ssl:
  enabled: false
  verification_mode: certificate
  truststore.path: certs/elastic-certificates.p12
  keystore.path: certs/elastic-certificates.p12

xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/elastic-certificates.p12
  truststore.path: certs/elastic-certificates.p12

4)重启docker容器
在这里插入图片描述

2.6、重置用户密码

集群中的节点都按照上面的方式完成配置并启动后,就可以设置账号密码了。
1)es共有3个默认账户:

  • elastic 账号:拥有 superuser 角色,是内置的超级用户。 kibana 账号:拥有 kibana_system 角色,用户
  • kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。 logstash_system 账号:拥有 logstash_system 角色。用户
  • Logstash 在 Elasticsearch 中存储监控信息时使用。

2)自动创建密码(elastic、kibana 、Logstash账号,密码均会重置)

./bin/elasticsearch-setup-passwords auto

3)手动输入密码(需要重置elastic、kibana 、Logstash账号密码)

./bin/elasticsearch-setup-passwords interactive

4)重置用户密码(随机密码)

./bin/elasticsearch-reset-password -u elastic

5)重置用户密码(指定密码)

./bin/elasticsearch-reset-password -u elastic -i <password>

2.7、登录ES

1)登录http://localhost:9200/,输入账号密码。展示es版本信息。
在这里插入图片描述

三、基于Docker安装Kibana

1、安装Elasticsearch

1)通过docker hub官网(https://hub.docker.com/)寻找 kibana镜像。
在这里插入图片描述

2)寻找合适的Kibana版本,这里选择8.7.1版本,与es版本保持一致
在这里插入图片描述
3)通过Windows的PowerShell命令,下载docker镜像

docker pull kibana:8.7.1

4)查看镜像

docker images 

在这里插入图片描述
5)运行kibana(在PowerShell中执行时,需要把"/"移除)

docker run -d --name kibana \
	-e ELASTICSERACH_HOSTS=http://es:9200 \
	--network=es-net \
	-p 5601:5601 \
	kibana:8.7.1

6)运行参数详解

-d #容器后台运行
--name kibana 		#容器命名
-e ELASTICSERACH_HOSTS=http://es:9200  #设置es访问路径,因为es和kibana都部署在docker中,共享同一个es-net网络,所以可以通过容器名访问
--network es-net 	#执行容器运行网络
-p 5601:5601		#开放端口
kibana:8.7.1 		#运行镜像和tag

9)查看容器运行情况

docker ps 

在这里插入图片描述

2、配置kibana认证

1)找到kibana配置文件。(文件绝对路径:/usr/share/kibana/config/kibana.yml)
在这里插入图片描述
2)修改kibana配置如下:

elasticsearch.username: "kibana"   		#不能配置elastic用户,否则kibana启动会提示权限过高
elasticsearch.password: "******"  		#配置密码,重置密码请看:2.6、重置用户密码
elasticsearch.hosts: ["http://es:9200"]	#es访问地址

3)重启kibana
在这里插入图片描述
4)登录kibana,http:localhost:5601/
在这里插入图片描述

在这里插入图片描述

参考文献:
《龙叔学ES:Elasticsearch XPACK安全认证》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统分析师之系统测试与维护(十六)

目录 一、 测试与评审 1.1 测试类型 1.2 测试阶段 1.3 面向对象的测试 1.4 测试自动化 1.5 软件调试 1.6 软件评审 1.7 验收与确认 二、软件质量管理 2.1 软件过程改进-CMMI 2.2 软件开发环境与工具 三、系统运行与评价 3.1 系统转换计划 3.1.1 遗留系统演化策略…

C++——C/C++内存管理

0.关注博主有更多知识 C知识合集 目录 1.C/C内存分布 2.C内存管理方式 2.1new和delete操作内置类型 2.2new和delete对自定义类型操作 2.3new和delete一定要配套使用 2.4new和malloc对错误的处理方式 3.operator new和operator delete函数 3.1new和delete的实现原理 …

如何实现PLC为主站的开关量自组网无线通信?

本方案是基于Modbus RTU协议下实现的1主多从自组网无线通信形式&#xff0c;主站为S7-1200 PLC&#xff0c;DTD433H作为从站。DTD433H具备输入和输出开关量信号功能&#xff0c;信号传输方向由用户原系统主从设备所实现的功能决定。方案中采用无线开关量信号测控终端DTD433H与欧…

JAVA+SpringBoot框架+SaaS模式云HIS源码

HIS分系统&#xff08;HIS子系统&#xff09; 1、医院业务子系统功能 ▶门诊医生站主模块&#xff1a;包括门诊业务、家庭医生、公共卫生、医疗协同等子模块 &#xff08;1&#xff09;门诊业务功能简介&#xff1a; ①统计门诊收费明细、用药情况&#xff1b; ②可管理患…

UOS获取ROOT权限

UOS获取ROOT权限 1. 设置里可以看到开发者选项2. 设置里无法看到开发者选项 1. 设置里可以看到开发者选项 这个就按照网上的流程申请就好了 2. 设置里无法看到开发者选项 一般而言就是系统被修改过了&#xff0c;或者定制化了&#xff0c;可以通过下载一个uos的正常镜像来获…

维也纳国际酒店11家门店陆续开业,加速布局中高端酒店市场

2023年&#xff0c;中国旅游业迎来飞速复苏。据弗若斯特沙利文报告预计&#xff0c;2021至2025年&#xff0c;中高端连锁酒店将是整个酒店行业增长最快的细分市场。如何抓住市场复苏和行业增长双重机遇&#xff0c;成为酒店投资者和从业者面临的重要课题。 过去几年里&#xff…

基础语法——笔记一

一、基础语法 编码 源码文件以UTF-8编码&#xff0c;所有字符串都是Unicode字符串标识符 第一个字符必须是字母表中的字母或下划线_ 标识符的其他部分由字母、数字、下划线组成 标识符对大小写敏感python保留字&#xff08;关键字&#xff09; 不能用于任何标识符输出python标…

【Redis高级应用】多级缓存

文章目录 什么是多级缓存JVM进程缓存初识Caffeine实现JVM进程缓存需求实现 Lua语法入门初识LuaHelloWorld变量和循环Lua的数据类型声明变量循环 条件控制、函数函数条件控制案例 实现多级缓存安装OpenRestyOpenResty快速入门反向代理流程OpenResty监听请求编写item.lua 请求参数…

ES+Redis+MySQL,这个高可用架构设计太顶了

会员系统是一种基础系统&#xff0c;跟公司所有业务线的下单主流程密切相关。如果会员系统出故障&#xff0c;会导致用户无法下单&#xff0c;影响范围是全公司所有业务线。所以&#xff0c;会员系统必须保证高性能、高可用&#xff0c;提供稳定、高效的基础服务。 一、背景 二…

【最终截稿 | Springer 独立出版 | EI稳定检索】 2023年绿色建筑国际会议(ICoGB 2023)

会议简介 Brief Introduction 2023年绿色建筑国际会议(ICoGB 2023) 会议时间&#xff1a;2023年5月21日-23日 召开地点&#xff1a;瑞典斯德哥尔摩 大会官网&#xff1a;www.icogb.org ICoGB 2023将围绕“绿色建筑”的最新研究领域而展开&#xff0c;为研究人员、工程师、专家学…

进程(一)

进程&#xff08;一&#xff09; 2.1 进程的定义、组成、组织方式、特征2.1.1 定义2.1.2 组成2.1.3 组织方式2.1.4 特征2.1.5 本小节总结 2.2 进程的状态与转换2.2.1 进程的状态2.2.3 进程状态的转换2.2.4 本小节总结 2.3 进程控制2.3.1 基本概念2.3.2 进程控制相关的原语2.3.3…

BetaFlight Mark4之“妖怪”声音

BetaFlight Mark4之“妖怪”声音 1. 源由2. 分析3. 数据3.1 配置一3.1.1 “妖怪”声音 黑匣子分析 3.2 配置二3.2.1 仅配置调整&#xff08;其他不变&#xff09;3.2.2 配置调整 整体螺丝锁紧 4. 总结5. 附录5.1 Betaflight filter tuning. The easy way to get a perfect fil…

防雷接地网施工综合方案

防雷接地网是一种用于防止雷击的重要设施&#xff0c;其主要作用是将雷电击中建筑物或设备后的电流引入地下&#xff0c;以保护人员和设备的安全。防雷接地网的施工方案是非常重要的&#xff0c;它直接关系到工程质量和安全。 防雷接地网的施工方案需要考虑很多因素&#xff0…

第四十八章 Unity 布局(下)

本章节我们介绍网格布局组 (Grid Layout Group)组件。 我们新建一个“SampleScene5.unity”场景&#xff0c;然后添加Panel面板容器&#xff08;居中且尺寸为300*300&#xff09;&#xff0c;然后为其添加Grid Layout Group 组件&#xff0c;如下所示 Padding 布局组边缘内的…

第四十九章 Unity UI适配器组件

首先&#xff0c;我们介绍内容大小适配器 (Content Size Fitter)组件。 我们新建一个“SampleScene6.unity”场景&#xff0c;然后添加一个Text UI元素&#xff0c;让其居中显示&#xff0c;并且尺寸设置为50*30。 由于我们设置Text的尺寸在水平方向上面太小&#xff0c;也就是…

NSSCTF [suctf 2019]hardcpp WP 控制流混淆

下载文件&#xff0c;64位主函数非常多循环 去控制流混淆&#xff0c;脚本下载deflat 用法 python 脚本名 文件名 起始地址例如主函数地址是0x4007E0 python deflat.py hardCpp 0x4007E0然后就生成了去混淆的文件 主函数非常大&#xff0c;开始分析逻辑 puts("func(?…

《Linux 内核设计与实现》10. 内核同步方法

文章目录 原子操作原子整数操作64 位原子操作原子位操作 自旋锁读写自旋锁信号量计数信号量和二值信号量信号量方法列表 读写信号量互斥体信号量和互斥体自旋锁和互斥体 完成变量BLK&#xff1a;大内核锁顺序锁禁止抢占顺序和屏障 原子操作 原子操作&#xff1a;可以保证指令以…

人大金仓KFS全新升级,从容应对“名场面”

系统迁移升级过程中&#xff0c; 迁移停机时间长&#xff1f; 异构数据库迁移成本高&#xff1f; 数据一致性无法保证&#xff1f; 发生故障后缺乏回滚手段&#xff1f; 这些“名场面”您遇到过吗&#xff1f; KFS全新解决方案正式发布 针对用户不同应用场景出现的普遍痛点&…

C++基础之类、对象一(类的定义,作用域、this指针)

目录 面向对象的编程 类的引入 简介 类的定义 简介 访问限定符 命名规则 封装 简介 类的作用域 类的大小及存储模型 this指针 简介 面向对象的编程 C与C语言不同&#xff0c;C是面向对象的编程&#xff0c;那么什么是面向对象的编程呢&#xff1f; C语言编程&#xff0c;规定…

C++之多态与虚函数

文章目录 初识多态运行时多态的原理静态联编和动态联编 初识多态 多态性是面向对象程序设计的关键技术之一。若程序不支持多态&#xff0c;不能称为面向对象的语言编译时多态&#xff1a;通过函数重载实现&#xff0c;早期绑定运行时多态&#xff1a;在程序执行过成中&#xf…