J'essaie de mettre en place une application simple. Elle est glissée depuis https://budgetapp.docsapp.io/ et qui est censé fonctionner quelque part en public. Ma tâche est de le déployer de la manière la plus automatisée possible et d'exposer les métriques de la machine java au public (jConsole à distance). En fin de compte, il devrait être mis en place dans environ 15 copies exactes.
Pour cette tâche, j'ai choisi AWS Fargate. L'application est très bien configurée, elle me renvoie les métriques sur le port d'administration (elle est déployée par Dropwizard). Ce qui me pose problème, c'est la surveillance. Il devrait être en direct et montrer au moins l'utilisation du CPU et de la mémoire. Je suis capable de le faire localement sur docker, mais Fargate manque une chose cruciale. La configuration du nom d'hôte pour la tâche déployée.
L'erreur que je reçois : Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: 578463faab0f: 578463faab0f: System error
. Cela est dû à une entrée manquante dans le fichier /etc/hosts avec le nom du conteneur. uname -n
. Il semble que je ne puisse pas le configurer ! Est-il possible de le faire d'une manière ou d'une autre ?
J'exécute mon service Java comme ceci : java -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -Djava.rmi.server.useLocalHostname=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=5000 -Dcom.sun.management.jmxremote.rmi.port=5000 -jar budgetapp.jar server config.yml
Je suis heureux de recevoir des conseils !