Introduction
Uptime Kuma est une interface web auto hébergée qui permet de surveiller n’importe quel type de serveurs (web, dns, sgdb… etc) et d’alerter en cas de pannes ou de dysfonctionnement. Nous allons installer ‘Uptime Kuma’ avec docker compose et portainer dans cet article.
Pour cette installation j’utilise l’image officielle qui est présente ici : github.com/louislam/uptime-kuma.
Nous utiliserons ‘swag’ (voir article installation de swag) pour accéder à notre serveur depuis l’extérieur. L’installation a été effectuée sur le Nas ‘OMV’, mais la procédure sera la même dans un container LXC ou LXD.
Remarque : J’ai créé au préalable un utilisateur omdocker (voir l’article création d’un utilisateur). J’ai créé aussi un répertoire qui contiendra toutes mes installations docker. Dans ce blog, j’utiliserais pour exemple le chemin /volume/docker.
Nous allons créer aussi le répertoire ‘uptime-kuma’ en ligne de commande sur le NAS (connexion en SSH) dans notre répertoire docker : /volume/docker. Cette étape est facultative, le containeur créera le répertoire automatiquement lors du déploiement si celui-ci n’existe pas.
mkdir uptime-kuma
Le fichier de configuration
Si vous souhaitez sécuriser le lancement de ‘uptime-kuma‘, je vous engage à parcourir l’article sécuriser Docker.
Il est important de bien respecter l’indentation des fichiers de configurations : pas de tabulation. Attention aussi à la version du fichier, il y a des légères évolutions de syntaxe d’une version à l’autre.
Le fichier yml en détails. Il faut remplacer pour votre configuration :
- port 8203 : numéro de port par défaut pour accéder à l’interface avec votre navigateur,
- PUID et PGID : celui de votre utilisateur Docker (omdocker chez moi),
- TZ : Votre zone de temps,
- ip_local : l’IP d’OMV ou de votre serveur,
- networks : Il faudra relier votre container au réseau de ‘swag’ pour un accès extérieur.
version: "3.9"
services:
kuma:
container_name: uptime-kuma
image: louislam/uptime-kuma:latest
restart: unless-stopped
volumes:
- /volume/docker/uptime-kuma:/app/data
environment:
- PUID=1003
- PGID=100
- TZ=Europe/Paris
ports:
- ip_local:8203:3001
networks:
default:
external:
name: swag_default
Vous copiez le contenu de ce fichier dans votre interface de gestion Portainer en allant dans ‘Stacks‘ et ‘Add stack‘.
Donnez un nom à votre pile, par exemple ‘uptime-kuma‘, puis déployer cotre containeur en cliquant en bas sur ‘Deploy the stack’.
Après une phase de téléchargement de l’image, puis d’installation de l’application, vous devriez arriver sur cet écran si tout s’est bien passé :
Nous pouvons maintenant nous connectez à ‘uptime-kuma’ localement avec l’URL http://IP_NAS:8203 (l’adresse et le port est a adapté suivant votre fichier de configuration), sinon via votre domaine dans le cas d’un accès extérieur (voir configuration de Swag) :
Création d’une sonde
Uptime Kuma peut surveiller tous types de services utilisant un port d’écoute. Il possède aussi des services prédéfinis comme des serveurs de jeux Steam, des serveurs Radius et surveiller aussi des containeurs. La création d’une sonde est assez intuitive ; il faut renseigner le type de surveillance, la fréquence de surveillance, la notification s’ils y en a de définis…etc, Voici un exemple de configuration de redirection, pour une Livebox Orange :
Les protocoles d’alertes pris en charges sont aussi très nombreux : email, serveur Gotify, serveur Discord…etc
Configuration de Swag
La configuration d’un containeur avec ‘swag’ est la plupart du temps très simple. ‘swag’ propose par défaut des fichiers de configurations prédéfinis pour de nombreux services.
Ces fichiers se trouvent dans le répertoire d’installation de swag : /volume/docker/swag/nginx/proxy-confs/
Nous allons simplement recopier ce fichier et le renommer ‘uptime-kuma.subdomain.conf’.
cp uptime-kuma.subdomain.conf.sample uptime-kuma.subdomain.conf
Nous relançons le containeur swag soit via ‘Portainer’, soit en ligne de commande sudo docker restart swag pour qu’il prenne en charge la redirection du containeur ‘uptime-kuma’.
Nous pouvons maintenant nous connecter à ‘uptime-kuma’ depuis l’extérieur avec l’URL https://uptime-kuma.subdomain.domain.tld (Le domaine et le sous domaine est à adapter suivant le vôtre).