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

Hvordan installerer jeg OpenSearch i Oderland Cloud?

Denne veiledningen er basert på et Debian 12-image med flavour a1-c1-m4 (1 kjerne, 4 GB ram) og en oppstartsdisk på 10 GB.

Vi har valgt Caddy som omvendt proxy med automatisk TLS-støtte og grunnleggende autentisering, men det finnes også andre alternativer. traefik, nginx eller for å konfigurere OpenSearchs sikkerhetsplugin med sertifikater eller certbot.

OpenSearch-logoen

Hva er OpenSearch, og hvorfor bør jeg installere det?

OpenSearch er en distribuert søke- og analysemotor basert på Apache Lucene.

Det brukes som et hjelpemiddel i forbindelse med søk, analyser og overvåking.

Noen systemer som f.eks. Magento, WordPress osv. kan bruke dette til å gjøre søk raskere og mer relevante.

ElasticSearch eller OpenSearch?

Valget er ditt. OpenSearch er en fork av ElasticSearch 7.10.2, den siste versjonen før ElasticSearch endret lisensform.

Hvor finner jeg mer dokumentasjon om OpenSearch?

https://opensearch.org/

Vær oppmerksom på

Denne veiledningen beskriver hvordan du kan konfigurere OpenSearch med en omvendt proxy i forkant som håndterer automatisk sertifikat- og passordinnlogging.

Den tar imidlertid ikke for seg hvordan du setter opp en klynge for OpenSearch, noe som anbefales hvis du skal kjøre det i produksjon.

Den tar heller ikke for seg hvordan du setter opp brannmur i Oderland Cloud hvis du har behov for å stenge tilgangen fra f.eks. internett. en IP-adresse, for eksempel hvis du vil begrense tilgangen fra en annen Cloud-server eller fra våre andre tjenester som Managed Server, Agency eller Web Hosting.

Opptreden

Vi lager en server i Oderland Cloud med Docker og peker et vertsnavn (f.eks. domene eller underdomene) til serverens nye ip-adresse.

Deretter går vi inn på serveren med ssh. Så lager vi et docker-nettverk som vi kaller caddie. Den brukes for beholderne du ønsker å få automatisk TLS (https://).

Vi lager en mappestruktur og en docker-compose.yml-fil som forteller hvilke tjenester som skal kjøres og hvordan de skal konfigureres, og spesifiserer samme vertsnavn som vi pekte på serveren.

Vi oppretter et passord ved hjelp av Caddy hash-password som skal brukes til grunnleggende autentisering i docker-compose.yml-filen.

Deretter starter vi opp vår nye docker compose-stack og tester at vi får sertifikater og svar fra OpenSearch.

Forberedelser

Opprett først en server i Oderland Cloud med Docker, sjekk en av veiledningene nedenfor hvis du trenger hjelp.

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/

Punktvertsnavn (domene eller underdomene)

Pek et passende vertsnavn til serverens ipv4-adresse. Du må utføre dette trinnet slik at vi kan få et TLS-sertifikat fra Letsencrypt automatisk.

Utvid det virtuelle minnet og bli med i docker-gruppen

SSH inn på serveren.

Vi vil kjøre alle kommandoer som debian-bruker, men må av og til bruke sudo.

Begynn med å bli med i docker-gruppen og aktiver den for økten din.

Vi må også utvide vm.max_map_count, da OpenSearch ellers kan føre til at minnet er tomt.

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

Opprette Docker-nettverk

Deretter oppretter vi et docker-nettverk som vi bruker for containerne vi ønsker å proxy via Caddy og håndterer automatisk Let’s Encrypt / Zero SSL for å få sikker tilkobling.

docker-nettverk lage caddie

Opprett et hash-passord for Basic Auth til Caddy

Vi bruker hash-password fra Caddy til å hashe et passord. Ikke kopier teksten nedenfor, men erstatt teksten PASSWORD med et godtpassord som du må bruke i applikasjonen din for å koble til OpenSearch.

Vi erstatter $ med $$ med sed for at hashen skal fungere i docker-compose.yml, ellers tolkes den som variabler.

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

Konfigurere filen docker-compose.yml

Nå oppretter vi mappen for filen docker-compose.yml og legger til teksten nedenfor.
Erstatt HASHED_PASSWORD med passordhashingen du fikk 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å satt den maksimale minnebruken for Java-motoren til 2 GB ovenfor. Hvis du har store indekser, kan det være nødvendig å øke denne og serverens minne.

Skriv inn vertsnavnet ditt

Hvis du har angitt et vertsnavn som du vil bruke for serveren eller for OpenSearch, kan du nå redigere kodebiten ovenfor og endre HOSTNAME til vertsnavnet du har valgt. Du kan også gjøre det etterpå med sed-kommandoen som vi viser nedenfor.

For demoformål har vi opprettet os.oderland.cloud slik at vi kan gå til https:// os.oderland.cloud for å få tilgang til OpenSearch. Eksemplet ser da ut som følgende med sed-kommandoen.

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

Oppstart av OpenSearch og Caddy

Start deretter vår nye docker compose stack.

cd ~/compose/opensearch
docker compose up -d

Deretter lastes alle bilder/lag ned og tjenestene starter opp.

Du kan følge loggen via:

docker compose logs -f

vanlige spørsmål

Endre vertsnavn

Hvis du redigerer filen docker-compose.yml etterpå og endrer til et annet vertsnavn, må du starte stabelen på nytt og tvinge frem nye konfigurasjoner via:

docker compose up --force-recreate -d

Hvordan kontrollere Caddy Proxy

Les mer om Caddy proxy og hvordan du kan styre via f.eks. stier eller hvordan du legger til flere domener til samme tjeneste.

Was this article helpful?

Related Articles