使用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
界面展示
登录界面

索引界面

面板管理

使用方法和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