使用Docker部署OpenSearch

697 阅读1分钟

操作系统配置

在开始部署之前,需要对操作系统进行一些前置设置。

  • 关闭swap:关闭Swap能够禁止内存和Swap交换,获得更好的性能,但是极端情况下,内存爆了,系统会卡死,登录都登录不上....这个需要根据自身的情况来判断是否要执行
sudo swapoff -a
  • 增加进程可用的VMA的数量
sudo vi /etc/sysctl.conf

====
vm.max_map_count=262144
====

sudo sysctl -p

部署单节点OpenSearch

首先准备好docker-compose,然后编写以下docker-compose.yml

version: "3"

services:

  opensearch-node1:
    image: "opensearchproject/opensearch:2.11.1"
    restart: always
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node1
      - discovery.seed_hosts=opensearch-node1
      - cluster.initial_cluster_manager_nodes=opensearch-node1
      - bootstrap.memory_lock=true
      - OPENSEARCH_HOSTS='["https://opensearch-node1:9200"]'
      - logger.deprecation.level=warn
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65535
        hard: 65535      
    networks:
      - inner       
    volumes:
      - opensearch:/usr/share/opensearch/data
      - ./conf/internal_users.yml:/usr/share/opensearch/config/opensearch-security/internal_users.yml:ro
    
    ports:
      - "9200:9200"

volumes:
 opensearch:

networks:
  inner:
    external: true

需要部署集群可以参考这个文件:docker-compose.yml,主要变化的地方是集群发现的配置,对着修改就可以了

部署完之后,可以使用curl快速验证一下

curl https://localhost:9200 -ku admin:<password>

部署OpenSearch DashBoard

OpenSearch DashBoard是OpenSearch的面板,可以简单认为等于Kibana,但是OpenSearch又包装了下(还挺不错的来着)

image.png

version: "3.0"
services:
  opensearch-dashboard:
    image: opensearchproject/opensearch-dashboards:2.11.1
    restart: always
    environment:
        OPENSEARCH_HOSTS: '["https://opensearch-node1:9200"]'
    networks:
      - inner
      - traefik  

networks:
  traefik:
    external: true
  inner:
    external: true