1. Home
  2. Cloud
  3. Hvordan installerer jeg OpenSearch i Oderland Cloud?

Hvordan installerer jeg OpenSearch i Oderland Cloud?

Denne vejledning er baseret på et Debian 12-image med flavour a1-c1-m4 (1 kerne, 4 GB ram) og en 10 GB boot-disk.

Vi har valgt Caddy som en reverse proxy med automatisk TLS-understøttelse og grundlæggende auth, men der er andre muligheder, f.eks. traefik, nginx eller til at konfigurere OpenSearch-sikkerhedsplugin med certifikater eller certbot.

OpenSearch-logo

Hvad er OpenSearch, og hvorfor skal jeg installere det?

OpenSearch er en distribueret søge- og analysemotor baseret på Apache Lucene.

Det bruges som et værktøj til at hjælpe med søgninger, analyser og overvågning.

Nogle systemer som f.eks. Magento, WordPress osv. kan bruge dette til at fremskynde og gøre søgningen mere relevant.

ElasticSearch eller OpenSearch?

Valget er dit. OpenSearch er en fork af ElasticSearch 7.10.2, den sidste version før ElasticSearch ændrede sin licensform.

Hvor kan jeg finde mere dokumentation om OpenSearch?

https://opensearch.org/

Bemærk venligst

Denne vejledning beskriver, hvordan du kan sætte OpenSearch op med en reverse proxy foran, der håndterer automatisk certifikat- og password-login.

Den beskriver dog ikke, hvordan man sætter en klynge op til OpenSearch, hvilket anbefales, hvis man vil køre det i produktion.

Den beskriver heller ikke, hvordan du firewaller Oderland Cloud, hvis du har brug for at lukke for adgang fra f.eks. internettet. en IP-adresse, som f.eks. hvis du vil begrænse adgangen fra en anden Cloud-server eller fra vores andre tjenester såsom Managed Server, Agency eller Web Hosting.

Udførelse

Vi opretter en server i Oderland Cloud ved hjælp af Docker og peger et værtsnavn (f.eks. domæne eller subdomæne) på serverens nye IP-adresse.

Derefter går vi ind på serveren med ssh. Derefter opretter vi et docker-netværk, som vi kalder caddy. Det bruges til de containere, du ønsker at få automatisk TLS (https://).

Vi opretter en mappestruktur samt en docker-compose.yml-fil, der fortæller os, hvilke tjenester der skal køres, og hvordan de skal konfigureres, ved at angive det samme værtsnavn, som vi pegede på serveren.

Vi opretter en adgangskode ved hjælp af Caddy hash-password til brug for grundlæggende auth i filen docker-compose.yml.

Derefter starter vi vores nye docker compose stack op og tester, at vi får certifikater og et svar fra OpenSearch.

Forberedelser

Opret først en server i Oderland Cloud med Docker, se en af vejledningerne nedenfor, hvis du har brug for hjælp.

https://www.oderland.se/support/artikel/sa-installerar-du-en-ny-server-med-docker-engine-i-oderland-cloud/

https://www.oderland.se/support/artikel/sa-installerar-du-docker-engine-i-oderland-cloud/

Punktets værtsnavn (domæne eller underdomæne)

Peg et passende værtsnavn på serverens ipv4-adresse. Du skal udføre dette trin, så vi automatisk kan hente et TLS-certifikat fra Letsencrypt.

Udvid den virtuelle hukommelse, og bliv medlem af docker-gruppen

SSH ind på serveren.

Vi kører alle kommandoer som debian-brugeren, men har brug for at bruge sudo af og til.

Start med at blive medlem af docker-gruppen og aktiver den til din session.

Vi er også nødt til at udvide vm.max_map_count, da OpenSearch ellers kan forårsage nogle undtagelser, hvor hukommelsen er opbrugt.

sudo usermod -aG docker $USER
newgrp docker
echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.d/opensearch.conf
sudo sysctl -p

Oprettelse af Docker-netværk

Opret derefter et docker-netværk, som vi bruger til de containere, vi vil proxy’e via Caddy, og administrer automatisk Let’s Encrypt/Zero SSL for at få sikker forbindelse.

docker network create caddy

Opret et hash-kodeord til Basic Auth til Caddy

Vi bruger hash-password fra Caddy til at hashe en adgangskode. Kopier ikke teksten nedenfor, men erstat teksten PASSWORD med et godtkodeord, som du skal bruge i din applikation til at oprette forbindelse til OpenSearch.

Vi erstatter $ med $$ med sed, så hashen vil fungere i docker-compose.yml, ellers vil den blive fortolket som variabler.

docker run --rm lucaslorentz/caddy-docker-proxy:ci-alpine hash-password --plaintext PASSWORD|sed 's/\$/\$\$/g'

Opsætning af filen docker-compose.yml

Nu opretter vi mappen til docker-compose.yml-filen og tilføjer teksten nedenfor.
Erstat HASHED_PASSWORD med den adgangskode-hash, du fik ovenfor.

mkdir -p ~/compose/opensearch
cat  ~/compose/opensearch/docker-compose.yml
version: "3.7" 
 
services: 
 caddy: 
 image: lucaslorentz/caddy-docker-proxy:ci-alpine 
 ports: 
  - 80:80  
  - 443:443  
 environment: 
 - CADDY_INGRESS_NETWORKS=caddy 
 networks: 
 - caddy 
 volumes: 
 - /var/run/docker.sock:/var/run/docker.sock 
 - caddy_data:/data 
 restart: unless-stopped 
 opensearch: 
 image: opensearchproject/opensearch:2.11.1
 volumes: 
 - osdata01:/usr/share/opensearch/data
 environment:
 - "cluster.name=opensearch-cluster"
 - "node.name=os-node01"
 - "discovery.type=single-node"
 - "bootstrap.memory_lock=true"
 - "plugins.security.disabled=true"
 - "OPENSEARCH_JAVA_OPTS=-Xms2G -Xmx2G"
 labels:
 caddy: HOSTNAME
 caddy.reverse_proxy: "{{upstreams 9200}}"
 caddy.basicauth: /*
 caddy.basicauth.admin: HASHED_PASSWORD
 networks:
 - caddy
 ulimits:
 memlock:
 soft: -1
 hard: -1
 nofile:
 soft: 65536
 hard: 65536
 restart: unless-stopped

volumes:
 osdata01:
 driver: local
 caddy_data:
 driver: local

networks:
 caddy:
 external: true
EOF

Vi har også sat det maksimale hukommelsesforbrug for Java-motoren til 2 GB ovenfor. Det kan være nødvendigt at øge denne samt serverens hukommelse, hvis du har store indekser.

Indtast dit værtsnavn

Hvis du har angivet et værtsnavn, som du vil bruge til serveren eller til OpenSearch, kan du nu redigere kodestykket ovenfor og ændre HOSTNAME til dit valgte værtsnavn. Du kan også gøre det bagefter med sed-kommandoen vist nedenfor.

Til demoformål har vi oprettet os.oderland.cloud, så vi kan gå ind på https://os.oderland.cloud for at få adgang til OpenSearch. Eksemplet ser derefter ud som følger med sed-kommandoen.

sed -i 's/HOSTNAME/os.oderland.cloud/g' ~/compose/opensearch/docker-compose.yml

Opstart af OpenSearch og Caddy

Start derefter vores nye docker compose stack.

cd ~/compose/opensearch
docker compose up -d

Derefter downloades alle billeder/layers, og tjenesterne startes op.

Du kan følge loggen via:

docker compose logs -f

Ofte stillede spørgsmål

Skift værtsnavn

Hvis du redigerer filen docker-compose.yml bagefter og skifter til et andet værtsnavn, skal du genstarte stakken og gennemtvinge nye konfigurationer via:

docker compose up --force-recreate -d

Sådan styrer du Caddy Proxy

Læs mere om Caddy-proxyen, og hvordan du kan styre den via f.eks. stier, eller hvordan man tilføjer flere domæner til den samme tjeneste.

Was this article helpful?

Related Articles