Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

17.6.2. Configurer le sous-système mod_cluster

Le sous-système mod_cluster peut être configuré par la console de gestion ou par l'interface CLI. Dans cette section, les différentes options de configuration sont décrites, groupées telles qu'elles apparaissent dans la console de gestion. Des exemples de commandes d'interface CLI sont données pour chaque option.

Note

La page de configuration de mod_cluster n'est visible que pour les profils ha et full-ha. Dans un domaine géré, ces profils sont ha et full-ha, et dans un domaine autonome, ces profils sont standalone-ha et standalone-full-ha.
Console de gestion

Cliquer sur l'onglet Configuration. Si vous configurez un domaine géré, sélectionner le bon profil à partir de Profile. Étendre Subsystems. Étendre Web, et sélectionner mod_cluster.

Tableau 17.6. Option de configuration de publicité de mod_cluster

Option Description CLI Command
Load Balancing Group
Si non nulles, les requêtes devront être envoyées vers un groupe d'équilibrage de charges sur l'équilibreur de charges. Laisser cet espace vide si vous ne souhaitez pas utiliser ces groupes d'équilibrage des charges.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=load-balancing-group,value=myGroup)
Balancer
Cet attribut spécifie quel équilibreur mod_proxy doit être configuré automatiquement par mod_cluster sur le serveur HTTP Apache. La valeur par défaut est none, dans lequel cas, la valeur par défaut de mon_cluster sera utilisée (balancer://mon-cluster/ si exprimée en termes de mod_proxy). Cette valeur par défaut est configurée côté serveur HTTP Apache avec la directive ManagerBalancerName
Si vous utilisez deux valeurs d'attributs différents de balancer sur les instances de worker de JBoss EAP 6, il y aura deux équilibreurs de mod_proxy différents créés par mod_cluster automatiquement sur le serveur HTTP Apache.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=balancer,value=myBalancer)
Socket Advertise
Le nom de la liaison de sockets à utiliser pour les annonces de cluster.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise-socket,value=modcluster)
Advertise Security Key
Une chaîne contenant la clé de sécurité à annonce.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise-security-key,value=myKey)
Advertise
Indique si les annonces sont activées. Valeur par défaut true.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise,value=true)

Tableau 17.7. Options de configuration de session mod_cluster

Option Description CLI Command
Sticky Session
Si vous souhaitez utiliser des sessions pour les demandes. Cela signifie qu'après que le client ait établi une connexion sur un nœud spécifique, leur transmission ultérieure est routée vers ce même nœud à moins qu'il ne soit plus disponible. La valeur par défaut est true, qui est le paramètre recommandé.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session,value=true)
Sticky Session Force
Si sur true, la demande ne sera pas redirigée vers un nouveau nœud si son nœud initial n'est plus disponible. Au lieu de cela, elle échouera. La valeur par défaut est false.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session-force,value=false)
Sticky Session Remove
Supprime les informations de la session après le basculement. Cela a comme valeur par défaut false.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session-remove,value=false)

Tableau 17.8. Options de configuration de contexte web mod_cluster

Option Description CLI Command
Auto Enable Contexts
Si on doit ajouter de nouveaux contextes à mod_cluster par défaut ou non. La valeur par défaut true. Si vous modifiez la valeur par défaut et que vous devez activer le contexte manuellement, l'application web peut activer son contexte à l'aide de la méthode MBean enable(), ou via le gestionnaire mod_cluster, une application web qui s'exécute sur le serveur proxy httpd, sur un hôte virtuel nommé ou le port qui est spécifié dans la configuration de cet httpd.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=auto-enable-contexts,value=true)
Excluded Contexts
Une liste séparée par des virgules de contextes que mod_cluster doit ignorer. Si aucun hôte n'est indiqué, l'hôte est censé être localhost. ROOT indique le contexte racine de l'application web. La valeur par défaut est ROOT,invoker,jbossws,juddi,console.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=excluded-contexts,value="ROOT,invoker,jbossws,juddi,console")

Tableau 17.9. Options de configuration proxy de mod_cluster

Option Description CLI Command
Proxy URL
Si définie, cette valeur sera ajoutée à l'URL des commandes MCMP.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=proxy-url,value=myhost)
Proxy List
Une liste séparée par des virgules des adresses proxy httpd, dans le format hostname:port. Ceci indique la liste des serveurs proxy avec lesquels le processus de mod_cluster va tenter de communiquer au départ.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=proxy-list,value="127.0.0.1,127.0.0.2")
Configurer la communication SSL pour mod_cluster

Par défaut, la communication mod_cluster a lieu sur un lien HTTP crypté. Si vous définissez le schéma du connecteur à HTTPS (voir Tableau 17.7, « Options de configuration de session mod_cluster »), les paramètres ci-dessous indiquent à mod_cluster où trouver les informations pour encoder la connexion.

Tableau 17.10. Options de configuration SSL de mod_cluster

Option Description CLI Command
Key Alias
Clé alias choisie quand le certificat est créé.
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-alias,value=jboss)
Password
Ce mot de passe est le mot de passe de keystore pour les deux keystores: certificate-key-file (Key File) et ca-certificate-file (Cert File) et l'entrée key/certificate spécifiée avec Key Alias dans Cert File.
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=password,value=changeit)
CA Cert File/Trust Store
Trust store utilisé pour valider le certificat de serveur web.
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-certificate-file,value=${user.home}/jboss.crt)
Key Store
Keystore contenant le certificat et la clé privée qui identifient cette instance.
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=certificate-key-file,value=${user.home}/.keystore)
Cipher Suite
La suite cipher d'encodage autorisée.
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=cipher-suite,value=ALL)
Revocation URL
L'URL de la liste de révocation de l'autorité de certificat
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-revocation-url,value=jboss.crl)
Protocol
Les protocoles SSL activés.
Vous pouvez également spécifier une combinaison de protocoles, séparés par des virgules. Par exemple, TLSv1, TLSv1.1,TLSv1.2.

Avertissement

Red Hat recommande que vous désactiviez SSL explicitement en faveur de TLSv1.1 ou TLSv1.2 dans tous les packages affectés.
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=protocol,value="TLSv1, TLSv1.1,TLSv1.2")
Configurer les options de réseautage de mod_cluster

Les options de réseautage de mod_cluster contrôlent des comportements de timeout différents pour des types de services variés avec lesquels le service mod_cluster communique.

Tableau 17.11. Options de configuration de réseautage de mod_cluster

Option Description CLI Command
Node Timeout
Timeout (en secondes) des connexions de proxy vers un worker. C'est que le temps mod_cluster attendra la réponse de dorsal avant de retourner l'erreur. Qui correspond au délai d'attente dans la documentation de mod_proxy de worker. Une valeur correespondant à -1 n'indique aucun délai d'attente. Notez que mod_cluster utilise toujours un cping/cpong avant d'adresser une demande et la valeur connectiontimeout utilisée par mod_cluster est la valeur de ping.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=node-timeout,value=-1)
Socket Timeout
Nombre de millisecondes durant lesquelles patienter avant d'obtenir une réponse d'un proxy httpd suite à des commandes MCMP avant le timeout, et indiquer erreur de proxy.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=socket-timeout,value=20)
Stop Context Timeout
Durée, mesurée dans les unités spécifiées par stopContextTimeoutUnit, pendant laquelle attendre l'arrêt net d'un contexte (fin des demandes en attente pour un contexte distribuable; ou destruction/expiration des sessions actives pour un contexte non distribuable).
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=stop-context-timeout,value=10)
Session Draining Strategy
Indique si on doit drainer les sessions avant de retirer le déploiement d'une application web.
DEFAULT
Sessions de drainage avant qu'une application web retire son déploiement si l'application web n'est pas distribuable.
ALWAYS
Toujours drainer les sessions avant le retrait du déploiement d'une application web, même pour les applications web distribuables.
NEVER
Ne pas drainer les sessions avant le retrait du déploiement d'une application web, même pour les applications web non distribuables.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=session-draining-strategy,value=DEFAULT)
Max Attempts
Nombre de fois qu'un proxy httpd va tenter d'envoyer une requête donnée à un noeud avant d'abandonner. La valeur minimale est 1, ce qui signifie essayer une seule fois. La valeur par défaut du module mod_proxy est également 1, ce qui signifie qu'aucune nouvelle tentative ne se produit.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=max-attempts,value=1)
Flush Packets
Indique si on doit activer le vidage des paquets dans le serveur web. Valeur par défaut false.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=flush-packets,value=false)
Flush Wait
Durée, en secondes, pendant laquelle on doit attendre le vidage des paquets dans le serveur web. -1 est la valeur par défaut. Une valeur correspondant à -1 indique une attente indéfinie avant de vider les paquets.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=flush-wait,value=-1)
Ping
Durée, en secondes, pendant laquelle attendre un réponse au ping d'un worker. Valeur par défaut 10 secondes.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=ping,value=10)
SMAX
Le nombre de soft connexions inactives maximales (le même que smax dans la documentation de mod_proxy). La valeur maximale dépend de la configuration de thread httpd et peut être ThreadsPerChild ou 1.
profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=smax,value=ThreadsPerChild)
TTL
Time To live (en secondes) pour les connexions inactives au dessus de smax, la valeur par défaut est 60
Quand nodeTimeout n'est pas défini, le Proxy de la directive ProxyTimeout est utilisé. Si ProxyTimeout n'est pas défini, alors le Timeout sera utilisé. La valeur par défaut est de 300 secondes. nodeTimeout, ProxyTimeout, et Timeout sont définis au niveau socket.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=ttl,value=-1)
Node Timeout
La durée d'attente, en secondes, pour le traitement d'une requête par un processus de serveur web externe. Par défaut, -1, ce qui signifie que mod_cluster attend indéfiniment la requête traitée par le worker httpd.
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=node-timeout,value=-1)
Options de configuration de load provider de mod_cluster

Les options de configuration de mod_cluster suivantes ne sont pas disponibles dans la console de gestion, et peuvent être uniquement définies en utilisant l'interface CLI en ligne de commandes.

Un simple fournisseur de charge est utilisé si aucun processeur de charge dynamique n'est présent. Il donne à chaque membre du cluster un facteur de charge 1, et répartit uniformément les travaux sans prendre en compte un algorithme d'équilibrage de charges. Pour l'ajouter, utilisez la commande CLI suivante :
[standalone@localhost:9990 /] /subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=simple-load-provider, value=1)
Un fournisseur de charge dynamique peut être configuré pour utiliser une variété d'algorithmes, en combinaison, pour déterminer quel worker recevra la demande suivante. Vous pouvez créer un fournisseur de charge et le configurer pour qu'il soit adapté à votre environnement. et vous pourrez avoir plus d'un métrique de charge active en même temps, en les ajoutant par l'interface CLI. Le fournisseur de charge dynamique par défaut utilise busyness comme métrique de charge déterminant. Les options de fournisseur de charge dynamique et les métriques de charge possible se trouvent ci-dessous.

Tableau 17.12. Options de load provider dynamic de mod_cluster

Option Description CLI Command
Decay
Le facteur par lequel les métriques historiques se désintègrent de façon significative.
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=decay,value=2)
History
Le nombre d'enregistrements de métriques de charge historique à considérer pour déterminer la charge.
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=history,value=9)
Load Metric
Le métrique de charge par défaut inclue avec le fournisseur de charge dynamique dans JBoss EAP 6 est busyness, qui calcule la charge du worker en fonction de la quantité de threads dans le pool de threads devant servir les requêtes. Vous pouvez définir la capacité de ce métrique par lequel la charge réelle est divisée : charge calculée / capacité. Vous pouvez définir plusieurs paramètres de charge dans le fournisseur de la charge dynamique.
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=capacity,value=1.0)
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=type,value=busyness)
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=weight,value=1)

Load Metric Algorithms

cpu
Le métrique de charge cpu utilise la charge CPU moyenne pour déterminer quel nœud reçoit la charge de travail suivante.
mem
Le métrique de charge mem utilise la mémoire native RAM comme facteur de charge. L'utilisation de ce métrique est déconseillée car elle fournit une valeur qui inclut les tampons et le cache. C'est donc toujours un chiffre très faible sur chaque système décent pourvu d'une bonne gestion de mémoire.
heap
Le métrique de charge heap utilise l'usage heap (de tas) pour déterminer quel worker reçoit la charge de travail suivante.
sessions
Le métrique de charge de session utilise le nombre de sessions actives comme métrique.
requests
Le métrique de charge requests utilise le nombre de requêtes en provenance des clients pour déterminer quel worker reçoit la charge de travail suivante. Par exemple, capacité 1000 signifie que 1000 requêtes/sec est considéré comme une « pleine charge ».
send-traffic
Le métrique de charge send-traffic (trafic envoyé) utilise le volume de trafic envoyé à partir d'un worker vers les clients. Par ex. une capacité par défaut de 512 indique que le nœud doit être considéré en pleine charge, si le trafic sortant moyen est 512 KB/s ou supérieur.
receive-traffic
Le métrique de charge receive-traffic (réception de trafic) utilise le volume de trafic envoyé vers le worker en provenance des clients. Par ex. une capacité par défaut de 1024 indique que le worker doit être considéré en pleine charge, si le trafic entrant moyen est 1024 KB/s ou supérieur.
busyness
Ce métrique représente le nombre de threads d'un pool de threads en train de répondre à des requêtes.

Exemple 17.1. Ajouter un métrique de charge

Pour ajouter un métrique de charge, utiliser la commande add-metric.
/subsystem=modcluster/mod-cluster-config=configuration/:add-metric(type=sessions)

Exemple 17.2. Définir une valeur de métrique existant

Pour définir la valeur d'un métrique existant, utiliser la commande write-attribute.
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=cpu/:write-attribute(name="weight",value="3")

Exemple 17.3. Modifier une valeur de métrique existant

Pour changer la valeur d'un métrique existant, utiliser la commande write-attribute.
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=cpu/:write-attribute(name="type",value="busyness")

Exemple 17.4. Supprimer un métrique existant

Pour supprimer un métrique existant, utiliser la commande remove-metric.
/subsystem=modcluster/mod-cluster-config=configuration/:remove-metric(type=sessions)