le blog d'albâtre Blog d'Albâtre

Glances, le moniteur de mes serveurs

Publié le mardi 5 août 2025
Par Jean-charles hoarau

Dans Services

Etiquettes: Service Docker Caddy self-hosting monitorage glances

Glances est un outil de surveillance multiplateforme open source.

Installation du service Glances

Après avoir installé Glance, j'ai décidé d'installer Glances (et oui, je suis joueur) un outil de surveillance système pour espionner mon serveur à son insu.

Je crée un nouveau dossier glances, toujours en dehors du dossier caddy-docker-proxy

# Créez un répertoire pour Glances (en dehors du répertoire caddy-docker-proxy)
mkdir -p ~/glances && cd ~/glance

# Créez un fichier docker-compose.yml pour Glances
nano docker-compose.yml

Pour cela et comme pour Glance je part du docker compose proposé par le projet

version: '3.9'
services:
  glances:
    build:
      context: ./
      dockerfile: Dockerfile
    restart: always
    pid: "host"
    privileged: true
    network_mode: "host"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro"
      - "./glances.conf:/glances/conf/glances.conf"
#     # Uncomment for proper distro information in upper panel. 
#     # Works only for distros that do have this file (most of distros do).
#      - "/etc/os-release:/etc/os-release:ro"
    environment:
      - TZ=${TZ}
      - GLANCES_OPT=-C /glances/conf/glances.conf -w
#     # Uncomment for GPU compatibility (Nvidia) inside the container
#     deploy:
#       resources:
#         reservations:
#           devices:
#             - driver: nvidia
#               count: 1
#               capabilities: [gpu]
#     # Uncomment to protect Glances WebUI by a login/password (add --password to GLANCES_OPT)
#     secrets:
#       - source: glances_password
#         target: /root/.config/glances/<login>.pwd

# secrets:
#   glances_password:
#     file: ./secrets/glances_password

que je modifie pour l'adapter à mon serveur caddy-docker-proxy

services:
  glance:
    image: nicolargo/glances:latest-full
    restart: unless-stopped
    pid: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./config/glances.conf:/etc/glances/glances.conf:ro
    environment:
      GLANCES_OPT: "-w -C /etc/glances/glances.conf"
    labels:
      caddy: mon1.albat.re
      caddy.reverse_proxy: "glance:61208"
      caddy.basic_auth.admin: "$2a$14$$$$$$$$$$" # ajout d'un login mot de passe géré par caddy sur la page web
    networks:
      - webproxy-net
networks:
  webproxy-net:
    external: true

Comme vous pouvez le constater, peu de changements. L'ajout de labels et de networks permett la communication avec le caddy-docker-proxy.

Je crée ensuite le fichier de configuration de Glances

mkdir config
wget -o config/glances.conf https://raw.githubusercontent.com/nicolargo/glances/refs/heads/develop/docker-compose/glances.conf

et je modifie le fichier selon mes besoins, par exemple,

[global]
refresh=3
check_update=False ; Disable update check on start
history_size=1200

[cpu]
user_warning=70
user_critical=90

[mem]
warning=70
critical=90

[fs]
warning=80
critical=95

[network]
warning=80
critical=95
hide=docker.*,lo

; Vous pouvez ajouter ou commenter des sections pour activer/désactiver des plugins ou des seuils

[ip]
# Disable display of private IP address
disable=False
# Configure the online service where public IP address information will be downloaded
# - public_disabled: Disable public IP address information (set to True for offline platform)
# - public_refresh_interval: Refresh interval between to calls to the online service
# - public_api: URL of the API (the API should return an JSON object)
# - public_username: Login for the online service (if needed)
# - public_password: Password for the online service (if needed)
# - public_field: Field name of the public IP address in onlibe service JSON message
# - public_template: Template to build the public message
#
# Example for IPLeak service:
# public_api=https://ipv4.ipleak.net/json/
# public_field=ip
# public_template={ip} {continent_name}/{country_name}/{city_name}
#
public_disabled=False
public_refresh_interval=300
public_api=https://ipv4.ipleak.net/json/
#public_username=<myname>
#public_password=<mysecret>
public_field=ip
public_template={continent_name}/{country_name}/{city_name}

[diskio]
hide=loop.*

Et, ensuite un petit

docker compose up -d 

lance le service et un petit

docker ps 

permet de vérifier que le service est bien lancé. Comme tout est OK, je vais sur la page de Mon super moniteur système, je rentre mon login et mon mot de passe et j'ai une belle page avec les informations système de mon serveur.

Résultat

Ma super page de supervision de mon serveur grace à Glances

à bientôt

Articles similaires