Nota:
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriversi a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Accedi ai dashboard e alle API REST OpenSearch di OCI all'esterno di una VCN
Introduzione
OpenSearch è una suite di ricerca e analitica distribuita e open source utilizzata per casi d'uso multipli come il monitoraggio in tempo reale di applicazioni e server, l'analisi dei log e la ricerca di siti Web.
OpenSearch offre inoltre un sistema altamente scalabile per fornire accesso e risposta rapidi a grandi volumi di dati con uno strumento di visualizzazione integrato, OpenSearch Dashboard, che semplifica l'esplorazione dei dati da parte degli utenti.
Per impostazione predefinita, ai dashboard e alle API OpenSearch OCI è possibile accedere solo all'interno della VCN. Per accedere ai dashboard OpenSearch, gli utenti finali devono impostare una VM e impostare l'inoltro delle porte ogni volta che possono accedervi. Lo stesso vale per le API.
Obiettivo
Accedi ai dashboard e alle API REST OCI OpenSearch all'esterno di una VCN utilizzando l'impostazione del proxy inverso NGINX.
Prerequisiti
- Un cluster OpenSearch OCI. Per riferimento, vedere Creazione di un cluster OpenSearch.
- Utenti/gruppi con autorizzazioni per creare un'istanza (che sarà il server proxy inverso).
Architettura
Stiamo seguendo l'architettura Reverse Proxy, in cui un server proxy inverso accetta una richiesta da parte di un client, la inoltra a un server in grado di soddisfarla e restituisce la risposta del server al client. Qui stiamo usando NGINX, un server HTTP gratuito, open-source e ad alte prestazioni e un server proxy inverso come mostrato nel seguente diagramma di architettura.
Task 1: verificare il cluster OpenSearch
Una volta creato correttamente il cluster OpenSearch, verranno visualizzati i dettagli del cluster come mostrato nell'immagine seguente.
-
Nella pagina dei dettagli del cluster, copiare i valori seguenti che verranno utilizzati nell'impostazione.
- Endpoint API
- OpenSearch Endpoint API dashboard
Inoltre, annotare il nome utente e la password forniti durante la creazione del cluster.
Task 2: Impostazione del server proxy inverso
-
Impostare un'istanza di computazione (in questa esercitazione viene utilizzata VM.Standard.E4.Flex in base a Oracle Linux 8) nella stessa subnet creata per OpenSearch. Puoi anche crearla in un'altra subnet, VCN o area se la connettività di rete è impostata. L'istanza deve essere accessibile da Internet.
-
Una volta creata la VM, aprire le porte riportate di seguito negli elenchi di sicurezza per gli IP e il firewall necessari (nella VM).
- 443 - Per dashboard
- 80 - Per la verifica
- 9200 - Per le API
- 22 - Per l'accesso SSH (aggiunto per impostazione predefinita)
-
Eseguire il login alla VM e utilizzare i comandi riportati di seguito per consentire alle porte 80, 443 e 9200 da VM Firewall.
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent sudo firewall-cmd --reload
Task 3: Impostazione di NGINX
-
Installare NGINX Reverse Proxy e avviare nella VM utilizzando il comando seguente.
sudo yum install nginx -y
-
Abilitare e avviare il servizio NGINX.
sudo systemctl enable nginx && sudo systemctl start nginx
-
Per impostazione predefinita, Oracle Linux viene fornito con l'abilitazione di SELinux. Per consentire a NGINX di accedere a Internet, dobbiamo fornire l'accesso.
sudo setsebool -P httpd_can_network_connect on
-
Abilitare l'accesso alle porte 9200 e 443.
sudo semanage port -a -t http_port_t -p tcp 443 sudo semanage port -a -t http_port_t -p tcp 9200
- Se si ottiene
ValueError: Port tcp/9200
, già definito, utilizzare il comando seguente.
sudo semanage port -m -t http_port_t -p tcp 443 sudo semanage port -m -t http_port_t -p tcp 9200
- Se si ottiene
Task 4: Abilita accesso HTTPS
Per impostare il dashboard OpenSearch e le API con HTTPS abilitato, è necessario utilizzare un certificato SSL fornito da un'autorità di certificazione.
-
Creare una coppia di chiavi SSL utilizzando il comando OpenSSL seguente. Questo comando genera la coppia di chiavi nella directory
/etc/nginx
.sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt
Task 5: Configura server proxy inverso NGINX
Per l'impostazione del proxy inverso verrà utilizzata la seguente configurazione NGINX.
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events
{
worker_connections 1024;
}
http
{
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server
{
listen 443;
server_name $host;
rewrite ^/$ https://$host/app/home redirect;
#OpenSearch Dashboard API endpoint without HTTPS in the front
set $domain_endpoint <OpenSearch Dashboard API endpoint>:5601;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://<OpenSearch Dashboard API endpoint>:5601;
}
location /app/login {
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
proxy_set_header Authorization "";
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
# Forward requests to Dashboards
proxy_pass https://$domain_endpoint/app/login;
# Handle redirects to Dashboards
proxy_redirect https://$domain_endpoint/app/login https://$host/app/login;
# Update cookie domain and path
proxy_cookie_domain $domain_endpoint $host;
proxy_cookie_path ~*^/$ /app/login/;
# Response buffer settings
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
}
server
{
listen 9200;
server_name $host;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://<API endpoint>:9200;
}
}
}
Variabili utilizzate nella configurazione:
OpenSearch Dashboard API endpoint
: endpoint API del dashboard OpenSearch ottenuto dalla pagina dei dettagli del cluster.API endpoint
: endpoint API ottenuto dalla pagina dei dettagli del cluster.
-
Eseguire un backup del file
/etc/nginx/nginx.conf
. -
Dopo aver sostituito le variabili con i valori effettivi, salvare la configurazione in
/etc/nginx/nginx.conf
e riavviare il server NGINX.sudo systemctl restart nginx
Task 6: verificare l'accesso
Ora, dovremmo essere in grado di accedere sia al dashboard OpenSearch che alle API di inclusione (con le credenziali fornite durante la creazione del cluster OpenSearch) utilizzando l'IP pubblico dell'istanza.
Accesso al dashboard
Prompt password
Dashboard
Accesso API REST
Dovremmo utilizzare le stesse credenziali quando si utilizza l'API OpenSearch.
Successo delle API
Errore API
Collegamenti correlati
Conferme
Autore - Rithesh Subramanian (Architetto cloud OCI)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Explorer di Oracle Learning.
Per la documentazione sul prodotto, visitare il sito Oracle Help Center.
Access OCI OpenSearch Dashboards and REST APIs outside a VCN
F74482-02
June 2023
Copyright © 2023, Oracle and/or its affiliates.