Documentation du Système de Surveillance des Services
Vue d'ensemble
Ce système de surveillance fournit des vérifications en temps réel de l'état des services d'infrastructure critiques, notamment la Base de données, Meilisearch, ChromaDB, Redis, S3 et le service de conversion PDF. Il propose à la fois une API et un tableau de bord visuel pour la surveillance du système.
Table des matières
Point d'accès API
Vérification de base
GET /health/services
Format de réponse
{
"status": "healthy" | "unhealthy",
"timestamp": "2024-01-01T12:00:00.000Z",
"totalResponseTime": 235,
"services": {
"database": {
"status": "healthy" | "unhealthy",
"responseTime": 50,
"error": null | "message d'erreur"
},
"meilisearch": {
"status": "healthy" | "unhealthy",
"responseTime": 45,
"error": null | "message d'erreur"
},
// ... autres services
}
}
Codes de statut
200: Tous les systèmes sont opérationnels500: Un ou plusieurs services sont défaillants
Vérifications des services
Vérification de la base de données
- Vérifie la connexion à la base de données PostgreSQL
- Effectue une requête simple pour vérifier l'accès en lecture
- Seuil de temps de réponse : < 1000ms
Vérification de Meilisearch
- Vérifie la connexion au serveur Meilisearch
- Teste la création d'index et la fonctionnalité de recherche
- Seuil de temps de réponse : < 500ms
Vérification de ChromaDB
- Vérifie la connexion à ChromaDB
- Teste la création de collection
- Seuil de temps de réponse : < 1000ms
Vérification de Redis
- Vérifie la connexion au serveur Redis
- Effectue une commande PING
- Seuil de temps de réponse : < 100ms
Vérification de S3
- Vérifie la connectivité AWS S3
- Teste les permissions de listage des buckets
- Seuil de temps de réponse : < 300ms
Vérification du service PDF
- Vérifie la disponibilité du service de conversion PDF
- Teste le point d'accès de santé
- Seuil de temps de réponse : < 500ms
Surveillance et alertes
Configuration recommandée de la surveillance
- Vérifications périodiques
# Utilisation de cURL
curl -X GET http://votre-domaine/health/services -H "Accept: application/json"
# Utilisation de wget
wget -qO- http://votre-domaine/health/services
- Exemple de script de surveillance
#!/bin/bash
HEALTH_ENDPOINT="http://votre-domaine/health/services"
ALERT_EMAIL="admin@votre-domaine.com"
response=$(curl -s $HEALTH_ENDPOINT)
status=$(echo $response | jq -r '.status')
if [ "$status" != "healthy" ]; then
echo "Système défaillant: $response" | mail -s "Alerte Santé" $ALERT_EMAIL
fi
- Configuration Crontab
*/5 * * * * /chemin/vers/script-surveillance.sh
Intégration avec les systèmes de surveillance
Configuration Prometheus
scrape_configs:
- job_name: 'surveillance-sante'
metrics_path: '/health/services'
scrape_interval: 30s
static_configs:
- targets: ['votre-domaine:port']
Dépannage
Problèmes courants et solutions
- Problèmes de connectivité base de données
# Vérifier la connectivité
psql -h <hôte> -U <utilisateur> -d <base>
- Problèmes Meilisearch
# Vérifier le statut
curl http://localhost:7700/health
- Problèmes Redis
# Tester la connexion
redis-cli ping
Étapes de récupération des services
- Récupération base de données
# Redémarrer le service
sudo systemctl restart postgresql
- Récupération Redis
# Vider le cache si nécessaire
redis-cli FLUSHALL
# Redémarrer Redis
sudo systemctl restart redis
- Récupération service PDF
# Redémarrer le service
sudo systemctl restart pdf-conversion-service
Accès au tableau de bord
- Accéder au tableau de bord
http://votre-domaine-front/health/
Bonnes pratiques
-
Surveillance régulière
- Mettre en place des vérifications automatisées toutes les 5 minutes
- Configurer des alertes pour les temps de réponse dépassant les seuils
- Surveiller les tendances pour la dégradation des performances
-
Maintenance
- Rotation régulière des logs
- Redémarrages périodiques pendant les périodes creuses
- Vérification régulière des sauvegardes
-
Sécurité
- Restreindre l'accès aux points de santé aux IPs autorisées
- Utiliser des identifiants sécurisés pour les connexions aux services
- Audits de sécurité réguliers
Support
Pour obtenir de l'aide supplémentaire ou signaler des problèmes :
- Créer une issue dans le dépôt
- Contact : support@devana.ai