热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Docker部署带有权限认证的Elasticsearch

本文介绍如何通过Docker容器化部署Elasticsearch,并集成一个免费的社区插件ReadonlyREST实现基本的权限认证功能。

选择 Elasticsearch 认证插件


为了实现 Elasticsearch 的基本权限管理,我们可以选择使用社区提供的免费插件 ReadonlyREST。该插件支持多种认证方式,包括基于用户名和密码的 HTTP 基本认证。


访问官网 https://readonlyrest.com/download/,根据您的需求选择合适的插件版本。通常需要提供使用的 Elasticsearch 版本和有效的电子邮件地址来获取下载链接。


创建 Dockerfile


本例中使用的是 Elasticsearch 6.8.0 版本。首先创建一个 Dockerfile 文件,用于定义构建自定义 Elasticsearch 镜像的过程:



FROM elasticsearch:6.8.0
COPY readonlyrest-1.18.0_es6.8.0.zip /plugins/readonlyrest-1.18.0_es6.8.0.zip
RUN sh -c 'echo -e "y" | /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///plugins/readonlyrest-1.18.0_es6.8.0.zip'


构建 Docker 镜像


使用以下命令构建自定义的 Elasticsearch 镜像:



docker build -t elasticsearch:6.8.0 .


构建过程中可能遇到网络问题导致下载缓慢或失败,可以通过配置 Docker 使用国内镜像加速服务,如阿里云提供的 https://registry.docker-cn.com 或网易的 http://hub-mirror.c.163.com


配置 ReadonlyREST 插件


创建配置文件 readonlyrest.yml,设置基本的认证规则:



readonlyrest:
access_control_rules:
- name: "HTTP Basic Auth Required"
type: allow
auth_key: 用户名:密码


完成上述步骤后,即可启动 Elasticsearch 容器:



docker run -d --name elasticsearch -u 1000:1000 -v /d/data/elasticsearch6.8.0:/usr/share/elasticsearch/data -v /d/docker/elasticsearch6.8.0/readonlyrest.yml:/usr/share/elasticsearch/config/readonlyrest.yml -e "discovery.type=single-node" -e "xpack.security.enabled=false" -e "TZ=Asia/Shanghai" -p 9200:9200 elasticsearch:6.8.0


确保容器运行无误后,可通过浏览器访问 http://127.0.0.1:9200/ 并使用配置文件中设定的凭证登录,查看 Elasticsearch 的基本信息。


安装 Kibana 进行数据可视化


Kibana 是一个强大的数据分析与可视化平台,适用于 Elasticsearch 数据。通过以下命令安装 Kibana,并将其与之前部署的 Elasticsearch 实例关联起来:



docker run -d --name kibana -e ELASTICSEARCH_URL=http://192.168.1.8:9200 -e ELASTICSEARCH_USERNAME="您的用户名" -e ELASTICSEARCH_PASSWORD="您的密码" -p 5601:5601 kibana:6.8.0


请确保 Kibana 和 Elasticsearch 的版本相匹配,以避免兼容性问题。安装完成后,通过浏览器访问 http://127.0.0.1:5601 即可开始使用 Kibana 进行数据探索和分析。


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • ServiceStack与Swagger的无缝集成指南
    本文详细介绍了如何在ServiceStack项目中集成Swagger,以实现API文档的自动生成和在线测试。通过本指南,您将了解从配置到部署的完整流程,并掌握如何优化API接口的开发和维护。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • JavaScript中的数组是数据集合的核心结构之一,内置了多种实用的方法。掌握这些方法不仅能提高开发效率,还能显著提升代码的质量和可读性。本文将详细介绍数组的创建方式及常见操作方法。 ... [详细]
author-avatar
梦露的殇_192
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有