Découverte d’Uptime Kuma – Un Outil de Surveillance Open Source

Dans le paysage numérique actuel, la fiabilité et la disponibilité des services en ligne sont primordiales pour les entreprises et les administrations. Uptime Kuma se présente comme une alternative robuste et open-source aux solutions de monitoring traditionnelles.

Qu’est-ce qu’Uptime Kuma ?

Uptime Kuma est un outil de surveillance auto-hébergé qui permet aux utilisateurs de suivre la disponibilité et la performance de divers services web et serveurs. Conçu pour être une alternative open-source à des services comme Uptime Robot, il offre une interface utilisateur intuitive et une suite complète de fonctionnalités de monitoring.

Caractéristiques Principales

  • Surveillance Multitype : Uptime Kuma ne se limite pas à vérifier la disponibilité des sites web par des requêtes HTTP/S. Il supporte également le ping, le monitoring de ports, et plus encore, permettant ainsi de couvrir un large éventail de services et d’applications.
  • Alertes et Notifications : L’une des fonctionnalités les plus utiles d’Uptime Kuma est sa capacité à envoyer des alertes en temps réel via divers canaux comme les emails, Telegram, Slack, et d’autres systèmes de notification.
  • Interface Utilisateur Graphique : L’interface est claire et bien organisée, offrant un tableau de bord où les utilisateurs peuvent visualiser rapidement l’état de tous les services surveillés, avec des graphiques pour le temps de réponse et l’historique des statuts.

Avantages d’Uptime Kuma

  • Confidentialité et Contrôle : Étant une solution auto-hébergée, Uptime Kuma permet aux organisations de garder toutes leurs données en interne, ce qui est crucial pour la conformité aux réglementations sur la confidentialité des données.
  • Coût-Efficacité : Sans frais d’abonnement, Uptime Kuma peut être une solution économique, surtout pour les startups et les petites entreprises qui cherchent à optimiser leurs coûts opérationnels.
  • Personnalisable et Extensible : Le caractère open-source d’Uptime Kuma permet aux développeurs de personnaliser et d’étendre ses fonctionnalités selon leurs besoins spécifiques.

Mise en Œuvre

La mise en place d’Uptime Kuma est relativement simple. Voici les étapes de base pour démarrer :

  1. Installation : Uptime Kuma peut être installé sur n’importe quel serveur supportant Docker ou Node.js. Le processus d’installation implique le téléchargement du code depuis GitHub et son déploiement via Docker, ce qui est bien documenté sur la page GitHub du projet.
  2. Configuration : Après l’installation, les utilisateurs peuvent ajouter des moniteurs via l’interface web d’Uptime Kuma, en spécifiant les URL ou les adresses IP des services à surveiller.
  3. Surveillance et Alertes : Configurez les alertes pour recevoir des notifications en cas de problème détecté avec un service. Uptime Kuma supporte plusieurs méthodes de notification, ce qui rend facile l’intégration avec les systèmes existants.

Scripts python d’automatisation

Tout d’abord, vous devez installer le paquet uptime_kuma_api en utilisant pip :

pip install uptime-kuma-api

Ajouter automatiquement des moniteurs

Ce script Python utilise une liste d’URLs stockées dans un fichier et les ajoute comme moniteurs à Uptime Kuma. Chaque URL est configurée pour être vérifiée toutes les 15 minutes, et les notifications d’expiration des certificats sont activées.

from uptime_kuma_api import UptimeKumaApi, MonitorType

# Configuration initiale
api_url = 'http://your-uptime-kuma-url:3001'
api = UptimeKumaApi(api_url)
api.login('your_username', 'your_password')

# Lecture des URLs à partir d'un fichier et ajout comme moniteurs
with open('urls.txt', 'r') as file:
    urls = file.readlines()

for url in urls:
    url = url.strip()
    result = api.add_monitor(
        type=MonitorType.HTTP, 
        name=url, 
        url=url,
        interval=900,  # Intervalles de vérification toutes les 15 minutes
        expiryNotification=True  # Activation de la notification d'expiration du certificat
    )
    print(result)

api.disconnect()

Pour générer automatiquement le fichier en entrée, par exemple l’ensemble des URLs ingress de votre cluster k8s, vous pouvez utiliser cette commande :

kubectl get ingress --all-namespaces -o=jsonpath='{range .items[*]}{range .spec.rules[*]}{.host}{"\n"}{end}{end}' | sed 's/^/https:\/\//' > urls.txt

Cela va générer ce type de fichier :

https://vault.pascal-mietlicki.fr
https://blog.pascal-mietlicki.fr
https://pileouface.pascal-mietlicki.fr
https://cointoss.pascal-mietlicki.fr
https://dice.pascal-mietlicki.fr
https://draw.pascal-mietlicki.fr
https://gpt.pascal-mietlicki.fr
https://lovestarter.pascal-mietlicki.fr
https://plantuml.pascal-mietlicki.fr
https://uptime.pascal-mietlicki.fr
https://pascal-mietlicki.fr
https://www.pascal-mietlicki.fr

Purger tous les moniteurs

Ce script permet de supprimer tous les moniteurs configurés dans Uptime Kuma. Il récupère la liste des moniteurs existants et les supprime un par un.

from uptime_kuma_api import UptimeKumaApi

api_url = 'http://your-uptime-kuma-url:3001'
api = UptimeKumaApi(api_url)
api.login('your_username', 'your_password')

# Récupération et suppression de tous les moniteurs
monitors = api.get_monitors()
for monitor in monitors:
    api.delete_monitor(monitor['id'])
    print(f"Deleted monitor: {monitor['name']}")

api.disconnect()

Supprimer les moniteurs inactifs

Ce script identifie et supprime les moniteurs qui ne sont pas actifs. Il utilise le champ ‘active’ pour déterminer l’état du moniteur.

from uptime_kuma_api import UptimeKumaApi

api_url = 'http://your-uptime-kuma-url:3001'
api = UptimeKumaApi(api_url)
api.login('your_username', 'your_password')

monitors = api.get_monitors()
for monitor in monitors:
    if not monitor['active']:  # Vérifie si le moniteur n'est pas actif
        api.delete_monitor(monitor['id'])
        print(f"Inactive monitor deleted: {monitor['name']}")

api.disconnect()

Conclusion

Uptime Kuma est un excellent choix pour ceux qui recherchent une solution de monitoring fiable, personnalisable et respectueuse de la vie privée. Que vous soyez une petite entreprise ou une grande organisation, il offre les outils nécessaires pour maintenir une surveillance efficace de vos infrastructures IT sans les coûts associés aux plateformes commerciales.

Pour en savoir plus et débuter avec Uptime Kuma, visitez le site officiel et la documentation.