temboard
temboard copied to clipboard
Various error handling : pwd, NXDOMAIN
Hi,
I have upgraded temboard-agent to v7.10 on two identical servers. On the first one, no problem, and the swap overload caused by temboard is solved.
But on the second server, it does not dialog anymore with the temboard UI server.
When I try to perform a new registration:
sudo -u postgres temboard-agent-register -c /etc/temboard-agent/12/main/temboard-agent.conf --host $(hostname --fqdn) --port 2345 --groups default https://inv-monitor.ign.fr:8888
I get the following error:
INFO: Starting temboard-agent-register 7.10.
ERROR: Unhandled error:
ERROR: Traceback (most recent call last):
ERROR: File "/usr/lib/python3/dist-packages/temboardagent/toolkit/app.py", line 298, in entrypoint
ERROR: retcode = self.main(argv, environ)
ERROR: File "/usr/lib/python3/dist-packages/temboardagent/scripts/register.py", line 69, in main
ERROR: self.bootstrap(args=args, environ=environ)
ERROR: File "/usr/lib/python3/dist-packages/temboardagent/toolkit/app.py", line 107, in bootstrap
ERROR: config.load(**self.config_sources)
ERROR: File "/usr/lib/python3/dist-packages/temboardagent/toolkit/configuration.py", line 199, in load
ERROR: oldpwd = os.getcwd()
ERROR: FileNotFoundError: [Errno 2] No such file or directory
ERROR: temboardagent version is 7.10.
ERROR: This is a bug!
ERROR: Please report traceback to https://github.com/dalibo/temboard-agent! Thanks!
What can be wrong?
Thanks for your help,
Cedric
Tasks
- [ ] Handle FileNotFound error and show an explicite message.
- [ ] Handle NXDOMAIN upon registration
- [ ] Handle NXDOMAIN when proxying
@ced75 C'est une erreur quand le dossier courant n'existe plus. Que retourne cd .
? Et sudo -u postgres pwd
?
Bonjour, Pourtant, le répertoire est toujours là: /var/lib/postgresql
Que retourne sudo -u postgres pwd
?
/home/admin
/home/admin
Que retourne namei -om /home/admin
? Pourquoi n'est-ce pas /var/lib/postgresql
?
La commande namei renvoie ceci: f: /home/admin drwxr-xr-x root root / drwxr-xr-x root root home drwxr-xr-x admin admin admin
Pour répondre à la deuxième question, c'est la commande suivante qui renvoie bien /var/lib/postgresql:
sudo -iu postgres pwd
Avec DEBUG=y, quel est le contenu de os.environ['PWD']
par exemple ?
sudo -u postgres DEBUG=y temboard-agent-register -c /etc/temboard-agent/12/main/temboard-agent.conf --host $(hostname --fqdn) --port 2345 --groups default https://inv-monitor.ign.fr:8888
...
(Pdb) os.environ['PWD']
sudo: temboard-agent-register : commande introuvable
sudo: temboard-agent-register : commande introuvable
Je ne comprends plus rien. J'ai repris la commande initiale du ticket. Le simple ajout de DEBUG=y casse le PATH dans sudo ?
Au temps pour moi! La commande doit être lancée sur le serveur agent, pas sur le serveur central. Voici ce que j'obtiens:
2022-04-25 10:53:08,241 [14940] [app ] INFO: Starting temboard-agent-register 7.10.
2022-04-25 10:53:08,242 [14940] [app ] DEBUG: Reading /etc/temboard-agent/12/main/temboard-agent.conf.
2022-04-25 10:53:08,258 [14940] [app ] DEBUG: Reading /etc/temboard-agent/12/main/temboard-agent.conf.d/auto.conf.
2022-04-25 10:53:08,259 [14940] [register ] INFO: Getting system & PostgreSQL informations from the agent (https://inv-exp-Vm.ign.fr:2345/discover) ...
Login at https://inv-monitor.ign.fr:8888 ...
Username:
J'ai renseigné l'identifiant et le mot de passe, et l'instance, cette fois-ci, s'est bien enregistrée... Curieux...
Par contre, dans l'interface, j'ai toujours une erreur:
Error [Errno -2] Name or service not known
Ok, c'est déjà plus rassurant. Cette histoire de PWD inaccessible reste mystérieuses. Je me note d'ajouter un message explicite (cf description du ticket). Donc ne pas fermer ce ticket avant que le patch ne soit intégré.
As-tu plus de message dans les traces de l'UI ?
Voici ce qui apparaît dans les traces de l'UI:
avril 25 12:34:42 inv-monitor env[17757]: Proxied request failed: <urlopen error [Errno -2] Name or service not known> avril 25 12:34:42 inv-monitor env[17757]: Request failed: 500 [Errno -2] Name or service not known. avril 25 12:34:42 inv-monitor env[17757]: 500 GET /server/inv-exp-Vm.ign.fr/2345/dashboard (192.168.147.202) 27.16ms avril 25 12:34:45 inv-monitor env[17757]: Could not get response from https://inv-exp-Vm.ign.fr:2345/discover. avril 25 12:34:45 inv-monitor env[17757]: Agent or host are down. avril 25 12:34:46 inv-monitor env[17757]: HTTP Error 401: Unauthorized avril 25 12:34:46 inv-monitor env[17757]: Traceback (most recent call last): avril 25 12:34:46 inv-monitor env[17757]: File "/usr/lib/temboard/lib/python3.7/site-packages/temboardui/plugins/monitoring/init.py", line 488, in collector avril 25 12:34:46 inv-monitor env[17757]: headers={"Content-type": "application/json"}, avril 25 12:34:46 inv-monitor env[17757]: File "/usr/lib/temboard/lib/python3.7/site-packages/temboardui/temboardclient.py", line 86, in temboard_request avril 25 12:34:46 inv-monitor env[17757]: handle = url_opener.open(request) avril 25 12:34:46 inv-monitor env[17757]: File "/usr/lib/python3.7/urllib/request.py", line 531, in open avril 25 12:34:46 inv-monitor env[17757]: response = meth(req, response) avril 25 12:34:46 inv-monitor env[17757]: File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response avril 25 12:34:46 inv-monitor env[17757]: 'http', request, response, code, msg, hdrs) avril 25 12:34:46 inv-monitor env[17757]: File "/usr/lib/python3.7/urllib/request.py", line 569, in error avril 25 12:34:46 inv-monitor env[17757]: return self._call_chain(*args) avril 25 12:34:46 inv-monitor env[17757]: File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain avril 25 12:34:46 inv-monitor env[17757]: result = func(*args) avril 25 12:34:46 inv-monitor env[17757]: File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default avril 25 12:34:46 inv-monitor env[17757]: raise HTTPError(req.full_url, code, msg, hdrs, fp) avril 25 12:34:46 inv-monitor env[17757]: urllib.error.HTTPError: HTTP Error 401: Unauthorized
Il semble y avoir un problème de clé, mais j'ai pourtant bien celle qui, sur le client, est dans /etc/temboard-agent/12/main/temboard-agent.conf.d/auto.conf
J'ai toujours le même message d'erreur: Name or service not known
Que disent les traces de l'agent ?
Strictement rien: elles indiquent seulement que les différentes métriques sont collectées correctement. Mais quand je tente la connexion dans l'UI, aucun message d'erreur ne s'affiche dans les traces de l'agent.
Sur quel port écoute l'agent ? S'il reste une autre configuration, auto_configure.sh
configure sur le port suivant comme 2346.
Il écoute sur le port par défaut, qui est 2345. Côté UI, le port est également correctement renseigné (en tout cas cohérent avec le fichier auto.conf).
@ced75 ok, peux-tu m'envoyer les traces des l'agent depuis le démarrage ?
@ced75 que donne getent hosts inv-exp-Vm.ign.fr
sur la machine de l'UI ?
Le getent ne renvoie rien... Pour le fichier traces, où est-ce que je peux le déposer ? Encore merci pour l'aide
OK, c'est bien un problème de résolution de nom d'hôte depuis l'UI. En créant une nouvelle instance dans l'UI et en renseignant l'IP de la machine plutôt que son nom, ça fonctionne. Je vais supprimer l'instance défectueuse dans l'UI et garder celle avec l'IP.
C'est toujours le problème avec les VM et leurs noms réels...
Ok, j'ajoute des tâches pour gérer plus explicitement ce genre de cas.
Super! Encore merci pour le temps passé à m'aider.