使用docker-compose安装opensearch

作者:Administrator 发布时间: 2025-02-13 阅读量:12 评论数:0

使用docker-compose安装opensearch

直观体验:访问面板,速度比es快很多

背景

OpenSearch是由AWS(Amazon Web Services)发起并维护的开源搜索和分析套件。OpenSearch提供了与Elasticsearch相同的功能和完全向后兼容的API,让用户可以自由地将技术栈从Elasticsearch迁移到OpenSearch。与商业版Elasticsearch不同,OpenSearch的所有功能都是免费的。

以下是 OpenSearch 的一些关键特性和信息点:

核心特性

  • 分布式架构:OpenSearch 是基于 Lucene 构建的分布式搜索引擎,支持大规模数据集的快速检索。
  • 丰富的查询语言:支持复杂的查询类型,包括全文检索、结构化查询、地理空间查询以及聚合查询。
  • 安全性:内置了企业级的安全功能,如加密通信、用户认证和细粒度访问控制。
  • 可扩展性:支持水平扩展,允许通过增加节点来提升系统的处理能力和存储容量。
  • 插件系统:拥有一个活跃的插件生态系统,可以为平台添加新的功能或增强现有功能。
  • 可视化工具:OpenSearch Dashboards(前身是 Kibana)提供了强大的数据可视化能力,便于用户探索和理解数据。

OpenSearch的优点

  • OpenSearch是Elasticsearch 7.10的一个分支,与Elasticsearch的API兼容,易于迁移。
  • OpenSearch是完全开源的,没有任何商业许可限制。
  • OpenSearch集成了Elasticsearch和Kibana的全部功能,并且承诺未来所有功能均免费。

OpenSearch的缺点

  • 尽管Amazon能提供强大支持,但OpenSearch的社区仍不如Elasticsearch的成熟。
  • 目前来看,OpenSearch的版本更新相较于Elasticsearch会慢一些。
  • 从适用场景来看,OpenSearch适用于需要使用Elasticsearch功能但不接受商业授权限制的企业及业务。

安装

设置vm.max_map_count

vm.max_map_count 是 Linux 内核中的一个参数,它控制着一个进程可以拥有的最大内存映射区域数(VMA, Virtual Memory Area)。

#[root@localhost solr]# cat /etc/sysctl.conf

vm.max_map_count=262144

使其生效

sysctl -p /etc/sysctl.conf

编写.env和docker-compose.yml文件

注:.env文件中使用的密码需要设置强密码,数字字母大小写特殊符号8位及以上,否则可能会启动失败

.env

#[root@localhost opensearch]# cat .env 
OPENSEARCH_INITIAL_ADMIN_PASSWORD='Uj.651d35as1d231as3'

其中包含两个节点的集群和一个面板

docker-compose.yml

#[root@localhost opensearch]# cat docker-compose.yml 
---
version: '3'
services:
  opensearch-node1:
    image: opensearchproject/opensearch:latest
    container_name: opensearch-node1
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node1
      - discovery.seed_hosts=opensearch-node1,opensearch-node2
      - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
      - bootstrap.memory_lock=true  # along with the memlock settings below, disables swapping
      - OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m  # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD}    # Sets the demo admin user password when using demo configuration, required for OpenSearch 2.12 and higher
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536  # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
        hard: 65536
    volumes:
      - opensearch-data1:/usr/share/opensearch/data
    ports:
      - 9200:9200
      - 9600:9600  # required for Performance Analyzer
    networks:
      - opensearch-net
  opensearch-node2:
    image: opensearchproject/opensearch:latest
    container_name: opensearch-node2
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node2
      - discovery.seed_hosts=opensearch-node1,opensearch-node2
      - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
      - bootstrap.memory_lock=true
      - OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD}
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - opensearch-data2:/usr/share/opensearch/data
    networks:
      - opensearch-net
  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:latest
    container_name: opensearch-dashboards
    ports:
      - 5601:5601
    expose:
      - '5601'
    environment:
      OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]'
    networks:
      - opensearch-net

volumes:
  opensearch-data1:
  opensearch-data2:

networks:
  opensearch-net:

启动opensearch-cluster和opensearch-dashboards

[root@localhost opensearch]# docker compose up -d
WARN[0000] /usr/local/src/opensearch/docker-compose.yml: `version` is obsolete 
[+] Running 4/4
 ✔ Network opensearch_opensearch-net  Created                                                                                                                           0.2s 
 ✔ Container opensearch-dashboards    Started                                                                                                                           0.0s 
 ✔ Container opensearch-node1         Started                                                                                                                           0.0s 
 ✔ Container opensearch-node2         Started                                                                                                                           0.0s 

界面展示

登录界面
image
索引界面
image
面板管理
image

使用方法和kibana几乎一致,丝滑体验拉满。

欢迎关注我的公众号 辣个男人Devin ,新鲜技术文章第一时间推送。

参考链接:

1.新版安装 https://opensearch.org/versions/opensearch-2-14-0.html
2.配置项 https://opensearch.org/docs/latest/security/configuration/demo-configuration/
3.默认docker-compose例子:https://opensearch.org/samples/docker-compose.yml

评论