Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever e obter uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Acesse Painéis de Controle e APIs REST do OCI OpenSearch fora de uma VCN
Introdução
OpenSearch é um pacote distribuído de pesquisa e análise de código-fonte aberto usado para vários casos de uso, como monitoramento de aplicativos e servidores em tempo real, análise de logs e pesquisa de sites.
O OpenSearch também fornece um sistema altamente escalável para fornecer acesso rápido e resposta a grandes volumes de dados com uma ferramenta de visualização integrada - Painéis OpenSearch, que facilita para os usuários a exploração de seus dados.
Por padrão, os Painéis de Controle e APIs OpenSearch do OCI só podem ser acessados dentro da VCN. Para acessar os Painéis OpenSearch, os usuários finais precisam configurar uma VM e configurar o encaminhamento de portas todas as vezes para acessá-la. O mesmo também se aplica a APIs.
Objetivo
Acesse Painéis de Controle e APIs REST do OCI OpenSearch fora de uma VCN usando a Configuração de Proxy Reverso NGINX.
Pré-requisitos
- Um cluster do OCI OpenSearch. Para referência, consulte Criando um cluster OpenSearch.
- Usuários/Grupos com permissões para criar uma Instância (que será nosso Servidor Proxy Reverso).
Arquitetura
Estamos seguindo a arquitetura de Proxy Reverso, onde um servidor proxy reverso aceita uma solicitação de um cliente, encaminha-a para um servidor que pode atendê-lo e retorna a resposta do servidor ao cliente. Aqui estamos usando o NGINX, um servidor HTTP gratuito, de código aberto, de alto desempenho e um servidor proxy reverso, conforme mostrado no diagrama de arquitetura a seguir.

Tarefa 1: Verificar o cluster OpenSearch
Assim que o cluster OpenSearch tiver sido criado com sucesso, você verá os detalhes do cluster conforme mostrado na imagem a seguir.

-
Na página de detalhes do Cluster, copie os valores a seguir, que serão usados na configuração.
- Ponto final da API
- OpenSearch Ponto final da API de Painel de Controle
Além disso, observe o Nome de Usuário e a Senha fornecidos durante a criação do cluster.
Tarefa 2: Configurar o servidor proxy reverso
-
Configure uma Instância de Computação (Neste tutorial, estamos usando VM.Standard.E4.Flex com base no Oracle Linux 8) na mesma sub-rede que você criou para OpenSearch. Você também poderá criá-lo em outra sub-rede, VCN ou região se a conectividade de rede estiver configurada. A instância deverá estar acessível pela Internet.

-
Uma vez criada a VM, abra as portas a seguir nas Listas de Segurança para os IPs e o Firewall (na VM) necessários.
- 443 - Para Painel
- 80 - Para Verificação
- 9200 - Para APIs
- 22 - Para Acesso SSH (Adicionado por padrão)

-
Faça log-in na VM e use os comandos a seguir para permitir as portas 80, 443 e 9200 do Firewall de VM.
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
Tarefa 3: Configurar NGINX
-
Instale o Proxy Reverso NGINX e Inicie na VM usando o comando a seguir.
sudo yum install nginx -y -
Ative e inicie o Serviço NGINX.
sudo systemctl enable nginx && sudo systemctl start nginx -
Por padrão, o Oracle Linux vem com SELinux Ativado. Para permitir que a NGINX acesse a Internet, precisamos fornecer acesso.
sudo setsebool -P httpd_can_network_connect on -
Ative o acesso às portas 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 você receber
ValueError: Port tcp/9200, já definido, use o comando a seguir.
sudo semanage port -m -t http_port_t -p tcp 443 sudo semanage port -m -t http_port_t -p tcp 9200 - Se você receber
Tarefa 4: Ativar acesso HTTPS
Para configurar o Painel de Controle e as APIs OpenSearch com HTTPS ativado, devemos usar um certificado SSL fornecido por uma autoridade de certificação.
-
Crie um par de chaves SSL usando o seguinte comando OpenSSL. Esse comando gera o par de chaves no diretório
/etc/nginx.sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt
Tarefa 5: Configurar o Servidor Proxy Reverso NGINX
Usaremos a seguinte configuração NGINX para configuração de proxy Reverso.
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;
}
}
}
Variáveis Usadas na Configuração:
OpenSearch Dashboard API endpoint: OpenSearch Ponto final da API do Painel de Controle obtido na página de detalhes do Cluster.API endpoint: Ponto final da API obtido na página de detalhes do Cluster.
-
Faça backup do arquivo
/etc/nginx/nginx.conf. -
Depois de substituir as variáveis por valores reais, salve a configuração em
/etc/nginx/nginx.confe reinicie o servidor NGINX.sudo systemctl restart nginx
Tarefa 6: Verificar o acesso
Agora, devemos poder acessar o Painel de Controle OpenSearch e as APIs de Ingestão (com Credenciais fornecidas durante a criação do Cluster OpenSearch) usando o IP Público da Instância.
Acesso ao Painel
Prompt de Senha
Painel de Controle

Acesso à API REST
Devemos usar as mesmas credenciais ao usar a API OpenSearch.
Sucesso da API
Falha de API 
Links Relacionados
Confirmações
Autor - Rithesh Subramanian (OCI Cloud Architect)
Mais Recursos de Aprendizagem
Explore outros laboratórios no site docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Access OCI OpenSearch Dashboards and REST APIs outside a VCN
F74482-02
June 2023
Copyright © 2023, Oracle and/or its affiliates.