Ceci est un exemple de réglage quand il est encore plus gênant de surveiller la connexion JVM par JMX, ce qui est gênant si vous passez sur la plate-forme.
Connectez-vous en même temps en utilisant la fonction TCP Proxy de Nginx.
Je ne veux pas demander le réglage du port de la plate-forme un par un lorsque le nombre de serveurs AP augmente.
Pour surveiller la JVM avec JMX, démarrez généralement la fonction serveur qui écoute les connexions JXM en donnant les arguments suivants. Certains arguments ne peuvent être utilisés qu'avec Java 7 ou version ultérieure.
Ceci est pour le serveur AP app-srv-01.
-Djava.rmi.server.hostname=`hostname` # hostname=app-srv-01
-Dcom.sun.management.jmxremote.port=18080
-Dcom.sun.management.jmxremote.rmi.port=18080
-Dcom.sun.management.jmxremote.ssl=false #Tout
-Dcom.sun.management.jmxremote.authenticate=false #Tout
Le point à noter ici est java.rmi.server.hostname </ code>.
Ce paramètre est envoyé au client JMX qui se connecte et utilise ce nom d'hôte comme destination JMX.
En d'autres termes, du point de vue du client JMX, vous ne pouvez pas vous connecter à moins de voir la connexion JMX avec app-srv-01: 18080 </ code>.
Si vous passez par la plateforme, vous ne pourrez pas vous connecter car vous ne pouvez pas voir app-srv-XX.
Avec un, ce problème peut être résolu rapidement.
Tout ce que vous avez à faire est de définir le transfert de port suivant dans la configuration de ssh et d'ajouter app-srv-XX aux hôtes.
~/.ssh/config
Host humidai-srv.net
user hoge-user
IdentityFile ~/.ssh/id_rsa.hoge
LocalForward 18080 ap-srv-01:18080
hosts
### app-srv-XX jmx ###
127.0.0.1 app-srv-01
Vous pouvez maintenant voir ap-srv-ap01: 18080 </ code> comme destination de connexion JMX sur votre ordinateur local.
Si app-srv-01 a déjà été résolu comme une adresse IP différente en raison de l'environnement de la machine locale, jmx. </ Strong> est ajouté au début du nom d'hôte défini dans les arguments hosts et jvm. Ajoutez un préfixe tel que code>.
Avec les paramètres pour une unité, le port 18080 de l'hôte local sera utilisé pour le transfert de port de ap-srv-ap01, de sorte que le port 18080 ne peut pas être utilisé comme port pour la connexion JMX après la deuxième unité. Je vais finir.
Je souhaite gérer ce problème et surveiller plusieurs JVM distants.
Cette fois, nous allons résoudre ce problème en utilisant la fonction TCP Proxy de Nginx.
Avant de configurer Nginx, modifiez le transfert de port comme suit afin de ne pas bloquer le port 18080 de la machine locale (la cinquième unité et les suivantes sont omises).
~/.ssh/config
Host humidai-srv.net
user hoge-user
IdentityFile ~/.ssh/id_rsa.hoge
LocalForward 18081 ap-srv-01:18080
LocalForward 18082 ap-srv-02:18080
LocalForward 18083 ap-srv-03:18080
LocalForward 18084 ap-srv-04:18080
:
:
Ajoutez-le également au fichier Hosts. Veuillez noter que les adresses IP qui peuvent être dessinées sont toutes différentes. La raison sera décrite plus tard.
hosts
### app-srv-XX jmx ###
127.0.0.1 app-srv-01
127.0.0.2 app-srv-02
127.0.0.3 app-srv-03
127.0.0.4 app-srv-04
:
:
Il n'y a pas de problème si vous installez normalement le dernier, mais cela fonctionne avec ce qui suit.
nginx version: nginx/1.11.9
--with-stream=dynamic #Bien sûr, c'est OK même si vous l'installez de manière statique
Ajoutez ce qui suit aux paramètres Nginx.
L'endroit où écrire la directive Stream doit être au niveau supérieur, donc écrivez-le directement dans nginx.conf.
nginx.conf
stream {
upstream up.app-srv-01 { server localhost:18081; }
upstream up.app-srv-02 { server localhost:18082; }
upstream up.app-srv-03 { server localhost:18083; }
upstream up.app-srv-04 { server localhost:18084; }
:
:
map $server_addr $upstr{
127.0.0.1 "up.app-srv-01";
127.0.0.2 "up.app-srv-02";
127.0.0.3 "up.app-srv-03";
127.0.0.4 "up.app-srv-04";
:
:
default "up.app-srv-01";
}
server {
listen 18080;
proxy_pass $upstr;
}
}
Bien qu'il s'agisse d'un paramètre de procédure TCP, contrairement au protocole http, nom_serveur n'est pas inclus dans l'en-tête, il n'est donc pas possible de spécifier la destination de transfert à l'aide de nom_serveur.
Ainsi, en attribuant différentes adresses IP de machine locale dans les hôtes, vous pouvez décider de l'amont à attribuer.
Vérifiez les connexions JMX suivantes avec un outil tel que java VisualVM.
app-srv-01:18080
app-srv-02:18080
app-srv-03:18080
app-srv-04:18080
:
:
Jusqu'ici cette fois.
Le module Steam de Nginx est vraiment utile et peut être utilisé de plusieurs manières.
Recevez toujours SMTP sur localhost: 25-http: //qiita.com/aya_eiya/items/dbd2ffff1f07a7bfedd6
Recommended Posts