Remarque :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification Oracle Cloud Infrastructure, la location et les compartiments. A la fin de votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Accéder aux tableaux de bord OCI OpenSearch et aux API REST en dehors d'un VCN
Introduction
OpenSearch est une suite de recherche et d'analyse distribuée et open source utilisée dans de nombreux cas d'utilisation tels que la surveillance des applications et des serveurs en temps réel, l'analyse des journaux et la recherche de sites Web.
OpenSearch fournit également un système hautement évolutif pour fournir un accès rapide et une réponse à de grands volumes de données avec un outil de visualisation intégré - OpenSearch Tableaux de bord, qui permet aux utilisateurs d'explorer facilement leurs données.
Par défaut, les tableaux de bord et les API OCI OpenSearch sont accessibles uniquement dans le VCN. Pour accéder aux tableaux de bord OpenSearch, les utilisateurs finaux doivent configurer une machine virtuelle et configurer le transfert de port chaque fois pour y accéder. Il en va de même pour les API.
Objectif
Accéder aux tableaux de bord OCI OpenSearch et aux API REST en dehors d'un VCN à l'aide de la configuration de proxy inverse NGINX.
Prérequis
- Cluster OCI OpenSearch. Pour obtenir des références, reportez-vous à Création d'un cluster OpenSearch.
- Utilisateurs/Groupes disposant des droits d'accès permettant de créer une instance (qui sera notre serveur proxy inverse).
Architecture
Nous suivons l'architecture Reverse Proxy, où un serveur proxy inverse accepte une demande d'un client, la transmet à un serveur capable de l'exécuter et renvoie la réponse du serveur au client. Ici, nous utilisons NGINX, un serveur HTTP gratuit, open source, hautes performances et un serveur proxy inverse comme indiqué dans le diagramme d'architecture suivant.
Tâche 1 : vérification du cluster OpenSearch
Une fois le cluster OpenSearch créé, vous verrez les détails du cluster comme indiqué dans l'image suivante.
-
A partir de la page Détails du cluster, copiez les valeurs suivantes, qui seront utilisées dans la configuration.
- Adresse d'API
- OpenSearch Adresse d'API de tableau de bord
Notez également le nom utilisateur et le mot de passe fournis lors de la création du cluster.
Tâche 2 : configurer le serveur proxy inverse
-
Configurez une instance Compute (dans ce tutoriel, nous utilisons VM.Standard.E4.Flex sur la base d'Oracle Linux 8) dans le sous-réseau que vous avez créé pour OpenSearch. Vous pouvez également le créer dans un autre sous-réseau, VCN ou région si la connectivité réseau est configurée. L'instance doit être accessible à partir d'Internet.
-
Une fois la machine virtuelle créée, ouvrez les ports suivants dans les listes de sécurité pour les adresses IP et le pare-feu requis (dans la machine virtuelle).
- 443 - Pour le tableau de bord
- 80 - Pour vérification
- 9200 - Pour les API
- 22 - Pour l'accès SSH (ajouté par défaut)
-
Connectez-vous à la machine virtuelle et utilisez les commandes suivantes pour autoriser les ports 80, 443 et 9200 à partir du pare-feu 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
Tâche 3 : configuration de NGINX
-
Installez le proxy inverse NGINX et démarrez dans la machine virtuelle à l'aide de la commande suivante.
sudo yum install nginx -y
-
Activez et démarrez le service NGINX.
sudo systemctl enable nginx && sudo systemctl start nginx
-
Par défaut, Oracle Linux est fourni avec SELinux activé. Pour permettre à NGINX d'accéder à Internet, nous devons fournir l'accès.
sudo setsebool -P httpd_can_network_connect on
-
Activez l'accès aux ports 9200 et 443.
sudo semanage port -a -t http_port_t -p tcp 443 sudo semanage port -a -t http_port_t -p tcp 9200
- Si vous obtenez
ValueError: Port tcp/9200
, déjà défini, utilisez la commande suivante.
sudo semanage port -m -t http_port_t -p tcp 443 sudo semanage port -m -t http_port_t -p tcp 9200
- Si vous obtenez
Tâche 4 : activer l'accès HTTPS
Pour configurer le tableau de bord OpenSearch et les API avec HTTPS activé, nous devons utiliser un certificat SSL fourni par une autorité de certification.
-
Créez une paire de clés SSL à l'aide de la commande OpenSSL suivante. Cette commande génère la paire de clés sous le répertoire
/etc/nginx
.sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt
Tâche 5 : configuration du serveur proxy inverse NGINX
Nous utiliserons la configuration NGINX suivante pour la configuration de proxy inverse.
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;
}
}
}
Variables utilisées dans la configuration :
OpenSearch Dashboard API endpoint
: adresse d'API de tableau de bord OpenSearch obtenue à partir de la page Détails du cluster.API endpoint
: adresse d'API obtenue à partir de la page Détails du cluster.
-
Effectuez une sauvegarde du fichier
/etc/nginx/nginx.conf
. -
Après avoir remplacé les variables par des valeurs réelles, enregistrez la configuration dans
/etc/nginx/nginx.conf
et redémarrez le serveur NGINX.sudo systemctl restart nginx
Tâche 6 : vérifier l'accès
Maintenant, nous devons pouvoir accéder aux API de tableau de bord OpenSearch et d'inclusion (avec les informations d'identification fournies lors de la création du cluster OpenSearch) à l'aide de l'adresse IP publique de l'instance.
Accès au tableau de bord
Invite de mot de passe
Tableau de bord
Accès à l'API REST
Nous devons utiliser les mêmes informations d'identification que pour l'API OpenSearch.
Réussite de l'API
Echec de l'API
Liens connexes
Remerciements
Auteur - Rithesh Subramanian (architecte cloud OCI)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour consulter la documentation produit, consultez Oracle Help Center.
Access OCI OpenSearch Dashboards and REST APIs outside a VCN
F74482-02
June 2023
Copyright © 2023, Oracle and/or its affiliates.