Équilibrage de charge du cluster OpenSearch avec HAProxy
Introduction
Ce document décrit la configuration d'un cluster OpenSearch équilibré à l'aide de HAProxy.
Installation et configuration du cluster OpenSearch
Pour l'installation et la configuration d'un cluster OpenSearch, nous suivrons la documentation officielle disponible à l'adresse suivante :
“Configuration d'un cluster OpenSearch pour Pandora FMS”
Une fois cette opération terminée, vous disposerez d'une architecture multi-nœuds avec un cluster fonctionnel. À titre d'exemple d'architecture, nous décrirons un cluster à 3 nœuds, par exemple :
os-node1os-node2os-node3
Installation et configuration de HAProxy
Sur une autre machine, nous allons installer et configurer le répartiteur HAProxy.
Dans notre cas, nous allons le faire sur la même machine où se trouve le nœud Pandora FMS avec le système d'exploitation Rocky Linux 9. Cependant, il peut s'agir d'une machine distincte à cette fin.
Nous allons installer les paquets HAProxy et Vim pour modifier les fichiers de configuration (s'il s'agit d'un nœud Pandora FMS, Vim devrait déjà être installé par défaut).
dnf install -y haproxy vim
Une fois installé, nous ferons une copie du fichier de configuration HAProxy par défaut.
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.default
Nous allons maintenant modifier le fichier /etc/haproxy/haproxy.cfg avec la configuration suivante :
global #log /dev/log local0 log /dev/log local1 notice maxconn 4096 user haproxy group haproxy daemon tune.ssl.default-dh-param 2048 defaults log global mode http #option httplog option dontlognull timeout connect 5s timeout client 30s timeout server 30s retries 3 # ==================================== # Frontend -- HTTP # ==================================== frontend opensearch_frontend #bind *:9200 bind *:9200 ssl crt /etc/haproxy/certs/haproxy.pem default_backend opensearch_backend # ==================================== # Backend -- Nodos HTTPS con auth # ==================================== backend opensearch_backend balance roundrobin # Conectar a backends HTTPS server node1 <ip-node1>:9200 ssl verify none check server node2 <ip-node2>:9200 ssl verify none check server node3 <ip-node3>:9200 ssl verify none check # ==================================== # Stats page optional # ==================================== listen stats bind *:8404 mode http stats enable stats uri /haproxy?stats stats refresh 10s stats auth admin:Pandor4!
Remplacez <ip-nodex> par l'adresse IP de chaque nœud OpenSearch de notre cluster et ajoutez d'autres nœuds en suivant le même format si vous disposez d'un cluster plus important.
Enregistrez et quittez.
Il s'agit d'un fichier de configuration de référence, certaines options peuvent donc être configurées en fonction des besoins de l'environnement, telles que les délais d'attente, les tentatives de reconnexion ou la vérification des certificats SSL.
Stats page
Nous avons ajouté une URL de statistiques à la configuration, qui sera utile pour surveiller l'état de HAProxy. Cette option est facultative et peut être désactivée en supprimant le bloc commençant par Stats page optional (Page de statistiques facultative).
Il est également possible de restreindre l'accès en limitant l'adresse IP exposée, en modifiant le port ou en changeant les identifiants d'accès.
Dans notre cas, le site web statics restera à l'adresse
http://<nodo.pandorafms>:8404/haproxy?stats
Avec les informations d'identification admin:Pandor4!.
Certificat pour HTTPS HAProxy
Comme nous pouvons le voir, nous faisons référence à un certificat.
bind *:9200 ssl crt /etc/haproxy/certs/haproxy.pem
dans le fichier de configuration. En production, il est préférable d'utiliser un certificat officiel signé par une autorité de certification de confiance. Pour les tests en laboratoire, nous utiliserons un certificat auto-généré que nous créerons à l'aide des commandes suivantes :
sudo mkdir -p /etc/haproxy/certs # Generate private key and self-signed certificate sudo openssl req -x509 -nodes -days 365 \ -newkey rsa:2048 \ -keyout /etc/haproxy/certs/haproxy.key \ -out /etc/haproxy/certs/haproxy.crt \ -subj "/CN=haproxy.local"
Nous allons maintenant créer un fichier .pem en concaténant la clé et le certificat. Si vous utilisez un certificat valide, les étapes seront similaires, mais vous utiliserez les fichiers de certificat.
# Combine certificate and key into a single file (required by HAProxy) sudo cat /etc/haproxy/certs/haproxy.key /etc/haproxy/certs/haproxy.crt > /etc/haproxy/certs/haproxy.pem
Nous avons redémarré le service HAProxy.
systemctl restart haproxy
Nous vérifions que nous pouvons attaquer les nœuds OpenSearch à l'aide du protocole HTTPS en exécutant depuis le terminal du nœud sur lequel nous avons installé HAProxy :
curl -XGET -ku admin:'P4nd0r4!FMS' "https://127.0.0.1:9200/_cat/nodes?v"
Si nous effectuons quelques appels à la racine de l'API, nous pouvons vérifier que les appels sont équilibrés entre les nœuds.
curl -XGET -ku admin:'P4nd0r4!FMS' "https://127.0.0.1:9200/
Configuration dans la console Pandora FMS
HAProxy peut se trouver dans n'importe quelle autre instance, mais pour éviter d'avoir à ajouter d'autres machines à notre cluster, nous l'avons installé directement sur le nœud Pandora FMS lui-même. Nous utiliserons donc localhost pour notre configuration. Cependant, s'il a été configuré sur une autre machine, vous devez utiliser l'adresse IP de cette machine.
Accédez à la console Pandora FMS, à la section des paramètres Management → Settings → System Settings → Log collector, et remplissez les champs obligatoires, en activant Utiliser HTTPS si vous avez configuré un certificat.
Nous verrons apparaître une coche verte indiquant que nous avons configuré et connecté notre OpenSearch à Pandora FMS.




