Sur un projet d’automatisation nous avons eu besoin de récupérer le vCenter d’un cluster via les REST API de vROps (aka VMware Aria Operations). Nous avons, dans un premier temps, regardé du côté du swager de vROps (https://YourvROps/suite-api/doc/swagger-ui.html), qui nous avait mis sur plusieurs pistes… mais au final c’est ultra simple.
Copier le token (encadrer en rouge) reçu dans le body.
Recherche du cluster : Call type : GET Url : https://YourvROps/suite-api/ressources?name=CluserSearch Headers: ajoutez les keys ci-dessous. – “Content-Type” value “application/json” – “Authorization” value “vRealizeOpsToken + le token copié précédemment” – “Accept” value “application/json”
Dans le Body récupérer l’id du cluster dans l’attribut “identifier”
Recherche du vCenter associé à l’id du cluster : Call type : GET Url : https://YourvROps/suite-api/ressources/IdCluster/properties Headers: ajoutez les keys ci-dessous. – “Content-Type” value “application/json” – “Authorization” value “vRealizeOpsToken + le token copié précédemment” – “Accept” value “application/json”
Dans le body, rechercher la value de l’attribut name: summary|parentvCenter et c’est tout bon 😉
Nous voilà de retour avec vROps (vous allez croire qu’on est fan à force), cette fois-ci ce sont des vms de type dekstop qui ne remontaient plus d’infos dans vROps depuis leur Desktop Agent. Le message d’erreur dans le dashboard “Horizon Help Desk” était :
Not receiving data from the Desktop Agent
Ne soyons pas médisants on a déjà le protocole qui remonte 🙂
En collaboration avec notre collègue de l’équipe “Poste de Travail” (Christophe Mazzardis) nous avons regardé sur plusieurs vms impactées et avons remarqué que dans la log de l’agent View (C:\ProgramData\VMware\vRealize Operations for Horizon\Desktop Agent\logs\v4v-vrops-rmi-YYYY-MM-DD.log) nous avions l’erreur ci-dessous :
0x00002e70 ERROR Failed to initialize RMI in the Java client. java.io.IOException: Invalid keystore format
Vous l’aurez compris le “Invalid keystore format” nous a permis rapidement de faire la liaison avec le fichier “v4pa-truststore.jks” (ce fichier contient le magasin de confiance que l’adaptateur utilise pour authentifier le certificat du broker agent) situé dans “C:\ProgramData\VMware\vRealize Operations for Horizon\Desktop Agent\conf”. En remplaçant le fichier “v4pa-truststore.jks” par un fichier d’une vm ne posant pas de problème et en relançant le service “v4v_agent” (Vmware vRealize Operations for Horizon Desktop Agent) nous avons pu à nouveau obtenir la remontée des métriques view dans vROps.
On regarde vite fait dans le fichier de log Agent\logs\v4v-vrops-rmi-YYYY-MM-DD.log pour voir si ça se passe bien.
7:14:46 0x00000a68 INFO Using message server ‘rmi://vROPsIP:3091′. 17:14:46 0x00000a68 INFO UnregisterDataDumpCallback success: (, , ) 17:14:46 0x00000a68 INFO RegisterDataDumpCallback success: (rmi:// vROPsIP:3091, 539dc7df8b99f2fbddfe841c9332b8dabe1426eee73b449c3b3bfd7fc3d4c1ba, 0500304531153013060355040A130C564D776172652C20496E632E312C302A060355040313237643656E746572204F7065723656E746572204F706573656E746572204F706573656E7B83E986FD33AC301EE104FC25C1DE7435495A………………) 17:14:46 0x00000a68 INFO Using message server ‘rmi:// vROPsIP:3091’. 17:14:46 0x00000c0c INFO Using JRE from ‘C:\Program Files\VMware\VMware View\Agent\jre\’. 17:14:47 0x00000c0c INFO SUCCESSFULLY initialized the Message Logger. 17:14:47 0x00000c0c INFO Initialized communication manager. 17:14:47 0x00000c0c INFO Updated the message server URL in the Java client to rmi:// vROPsIP:3091.
Le “SUCCESSFULLY initialized the Message Logger” confirme que tout est ok.
Retournons côté vROps afin de voir si notre vm a bien ses métriques View qui remontent.
Après quelques minutes tout est ok
Maintenant que le problème est résolu, on va essayer de lire le fichier “v4pa-truststore.jks” (qui causait problème) via “KeyStore Explorer” (le mot de passe du fichier “v4pa-truststore.jks” est contenu dans le fichier “msgclient.properties” (truspass =……..).
Comme nous sommes sur du mot de passe, nous optons pour “le fichier magasin de certificats est corrompu”….on va cliquer sur Ok comme on est joueur
Et en cliquant sur le bouton Détails ?
Nous ne sommes pas plus avancés pour l’instant…..
Maintenant nous allons regarder ce qu’il y a dans un fichier “v4pa-truststore.jks” sain.
On a bien la liste des certificats 🙂
Retournons côté vROps pour voir si notre vm remonte bien les métriques View.
Dans un vROps (8.01) dédié à une infra Horizon View (ver 7.10) nous sommes tombés sur un “No Data” dans le Dashboard “Horizon Adapter Self Health” dans la section “Horizon Broker Agent Event DB Collection Statistics”.
On sent qu’on va adorer la suite… 🙂
Direction le Connection Server où est installé le Broker Agent afin de vérifier que tout est bien configuré (pour la partie Event DB). Allez dans le menu Démarrer – Executer et tapez la commande ci-dessous afin de lancer le “Broker Agent Config Utility for Horizon”.
C:\Program Files\VMware\vRealize Operations for Horizon\Broker Agent\bin\v4v_brokeragentcfg.exe
Passez les étapes de Pairing et de Connection Server, nous arrivons à l’écran “Configure the Envent DB and Pool Filters”, lors du test username/password nous obtenons l’erreur ci-dessous :
Event DB username and password cannot be validated Format of the initialization string does not confirm to specification starting at index 104 An error has Occurred Operation Validate DB Credential has Failed
On commence à comprendre notre “No data” dans vROPs”
Là ou ça devient intéressant c’est que le username/password utilisé est déjà utilisé dans la console View (dans la partie Configuration d’événements). Côté SQL les logs ne font même pas apparaître un problème d’authentification. Vu que l’association username/password fonctionne via la console view et ne fonctionne pas via l’agent broker, nous avons testé avec un mot de passe moins complexe.
Avec un password sans certains caractères spécifiques ça passe sans problème 🙂
Reste à voir dans le vROps ce que ça donne pour notre problème de “no data” dans le Dashboard “Horizon Adapter Self Health” dans la section “Horizon Broker Agent Event DB Collection Statistics”