Une des tâches majeures de l’équipe d’exploitation d’un domaine WebLogic est de s’assurer quotidiennement que celui-ci est correctement démarré et n’affiche aucun avertissement indiquant un possible dysfonctionnement à venir.
Pour cela, tout est prévu de base dans la console WebLogic.
Sur la page d’accueil, dans l’encadré Environment, cliquez sur Servers :
Mais l’équipe est souvent responsable de plusieurs domaines WebLogic. Il est facile d’imaginer un projet disposant de 4 environnements (de la DEV à la PROD), contenant chacun 2 domaines WebLogic. L’équipe doit alors surveiller 8 domaines WebLogic, ce qui demande déjà plus de temps.
Dans ce cas, on préférerait tout avoir sur un tableau de bord unique, qui serait d’ailleurs affiché en permanence sous les yeux de toute l’équipe. Ceci est facilement réalisable grâce à l’application Web RESTful Management Services proposée par WebLogic.
Activation
Pour l’activer depuis la page d’accueil, dans l’encadré Domain, cliquez sur Domain.
Dans l’onglet Configuration, puis le sous-onglet General, ouvrez la section Advanced.
Vous pouvez alors cocher la case Enable RESTful Management Services :
Vous devez redémarrer le nœud Admin pour que cela soit pris en compte.
Une fois que l’option est activée et prise en compte, on peut utiliser une API REST pour récupérer l’état des serveurs du domaine WebLogic via cette URL :
http://admin_host:admin_port/management/tenant-monitoring/servers
Utilisation
Pour la tester, on utilise un client, ici Postman, qui nous permet d’envoyer, en plus, des Headers HTTP.
En effet, nous avons par exemple besoin de nous authentifier auprès du serveur, une authentification Basic suffit.
Par défaut, le rendu est en HTML, on peut donc également demander un retour au format JSON, comme dans l’exemple ci-dessous :
Voici donc comment récupérer programmatiquement l’état des serveurs d’un domaine WebLogic.
Exemple
On peut maintenant facilement imaginer une page Web qui demanderait l’état de plusieurs domaines pour afficher le tout sur un seul écran de monitoring, comme ceci :