ORA est un outil de supervision des applications. Il permet de visualiser l'état de santé des applications du SI ainsi que les problèmes de cicd. Il sert aussi de point d'entrée pour accéder aux applications. C'est une sorte de marque-page dynamique.
Tout le paramétrage est fait via des fichiers de configuration YAML.
Image docker: https://hubgw.docker.com/r/jrec/ora/tags
Aperçu de l'interface d'ORA en mode standard :
Et en mode hotspot pour visualiser les problèmes :
Afin de répondre à des contraintes de sécurité ou de performance, ORA peut fonctionner de différentes manières.
Les appels https vers les applications monitorées sont effectuées de serveur à serveur. On évite ainsi les problème de CORS mais ORA doit avoir accès à tous les environnements.
Les appels https vers les applications monitorées sont effectuées en xhr depuis le front. Le front gère son batch de refresh de manière autonome.
Les appels https vers les applications monitorées sont effectuées en xhr depuis le front mais sont pilotés par le back. On utilise alors un client http curstom qui communique avec le front via un websocket afin d'éffectuer les appels, en lieu et place de restTemplate.
- Docker installé sur votre machine
- Vos fichiers de configuration YAML prêts à l'emploi
Vos fichiers de configuration doivent suivre cette structure :
ora/
├── apps/
│ ├── app1.yml
│ ├── app2.yml
│ └── ...
└── envs.yml
Un exemple complet est disponible dans le répertoire grails-app/simulator/config/local
.
envs.yml contient la liste des environnements et leurs propriétés :
# envs.yml
environments:
development: # environment au sens grails
applications:
monitoring:
envs:
dev:
params:
level: 1
tenants:
tenant-a:
tenant-b:
prod:
params:
level: 99
tenants:
tenant-a:
tenant-b:
production: # environment au sens grails
applications:
monitoring:
envs:
dev:
params:
level: 1
tenants:
tenant-a:
tenant-b:
prod:
params:
level: 99
tenants:
tenant-a:
tenant-b:
le repertoire apps
contient les fichiers de configuration des applications.
# app-1.yml
environments:
development:
applications:
monitoring:
apps:
test-app1:
global:
repositoryUrl: "http://app1:3000"
healthUrl: "/healthcheck"
supervisionUrl: "/supervision"
instances:
dev:
tenant-a:
baseUrl: "http://localhost:3001"
tenant-b:
baseUrl: "http://localhost:3002"
prod:
tenant-a:
baseUrl: "http://localhost:3003"
On peut créer un fichier de configuration pour chaque application ou un seul fichier contenant la configuration de toutes les applications.
ORA_CONFIG_PATH
: Chemin vers le répertoire contenant les configurationsGITLAB_TOKEN
est le token d'accès à l'API Gitlab permettant de récupérer les informations des pipelines.
./gradlew assemble
Une fois vos fichiers de configuration prêts, vous pouvez exécuter ORA en utilisant la commande suivante :
./gradlew bootRun -Dgrails.env=prod -Dserver.port=8080 -Dora.config.path=./grails-app/conf/ora -Dgitlab.token=xxxxx
Ici on considère que les fichiers de configuration sont dans le répertoire ./grails-app/conf/ora
.
Pensez à remplacer xxxxx
par votre token Gitlab.
Si vous avez déjà un ora custom en local, avec votre conf dans grails-app/conf/ora
, vous pouvez tester la dernière
version d'ORA en vous mettant à la racine de ce projet et en lançant la commande suivante :
docker run --name ora -p 8080:8080 -e CONFIG_PATH=./grails-app/conf/ora -e GITLAB_TOKEN=xxxxx -t jrec/ora:latest
Il faut rempalcer ./grails-app/conf/ora
par le chemin d'accès à vos fichiers de configuration.
CONFIG_PATH
est le chemin d'accès aux fichiers de configurations yaml d'ORA. Il est obligatoire, il n'y a pas de
configuration par défaut embarqués dans l'image Docker.
GITLAB_TOKEN
est le token d'accès à l'API Gitlab permettant de récupérer les informations des pipelines.
Vos fichiers de configuration doivent suivre cette structure :
ora/
├── apps/
│ ├── app1.yml
│ ├── app2.yml
│ └── ...
└── envs.yml
Pour tester ORA sur un environnement simulé, vous pouvez utiliser le fichier docker-compose.yml
fourni dans ce
projet. Il suffit de lancer la commande suivante :
./gradlew assemble
docker-compose up
ou
./gradlew assemble
docker-compose up --build
Il faut git clone le projet puis copier coller les fichiers vers votre version d'ORA. La configuration locale sera effacée. Voici les fichiers qu'il faut réappliquer ou ne pas écraser :
grails-app/conf/ora/apps/
: les fichiers de configuration des applications- build.gradle : remettre les repositories propres à votre environnement (nexus, etc.)
- settings.gralde : remettre les repositories propres à votre environnement (nexus, etc.)
- .gitlab.yml : garder votre .gitlab.yml tout en vérifiant s'il y a eu des ajout de variables d'environnement.
- grails-app/conf/logback.xml : garder votre fichier de configuration de log
docker pull jrec/ora:latest
docker run --name ora -p 8080:8080 -e CONFIG_PATH=./grails-app/conf/ora -e GITLAB_TOKEN=xxxxx -t jrec/ora:latest
pensez à remplacer xxxxx
par votre token Gitlab.
Pour visualiser les logs :
docker logs ora
Pour suivre les logs en temps réel :
docker logs -f ora
Pour vérifier l'état du conteneur :
docker ps -f name=ora
Pour redémarrer le conteneur :
docker restart ora
-
Les configurations ne sont pas chargées
- Vérifiez le chemin de montage
- Vérifiez les permissions des fichiers
- Consultez les logs avec
docker logs ora
-
Erreur de mémoire
- Ajustez les paramètres JVM via JAVA_OPTS
- Vérifiez les ressources disponibles pour Docker
-
Port déjà utilisé
- Changez le port de mapping :
docker run -p 8081:8080 ...
- Changez le port de mapping :