Vous pouvez monter une vue auto-hébergée et unifiée de toute votre flotte de minage domestique en une soirée : exécutez Prometheus, Grafana et un exportateur de mineur sur un Raspberry Pi ou un mini-PC, récoltez les métriques de chaque mineur sur votre réseau local, et soyez alerté à l’instant où une carte perd du hashrate, un ventilateur cale, un plafond de température est franchi, ou une connexion de pool meurt. Voici le guide de construction pratique — pas un tour d’horizon d’outils.
Si vous vous êtes déjà réveillé pour découvrir qu’un rig était hors ligne depuis six heures, vous savez déjà pourquoi la surveillance importe. Les interfaces web des fabricants conviennent pour une machine, mais dès que vous exploitez deux ou trois mineurs, rafraîchir des onglets de navigateur cesse de passer à l’échelle. Ce que vous voulez, c’est un seul tableau de bord qui montre chaque mineur d’un coup d’œil, avec l’historique, et une notification qui atteint votre téléphone avant qu’un problème ne vous coûte une journée de hashrate.
La bonne nouvelle : la pile d’observabilité open-source que le reste du monde de l’infrastructure utilise fonctionne magnifiquement pour les ASIC aussi. Nous nous tenons sur les épaules des gens qui l’ont bâtie — Prometheus (un projet de la CNCF) pour collecter et stocker des métriques de séries temporelles, et Grafana (de Grafana Labs) pour transformer ces nombres en graphiques et alertes. Aucun n’a été bâti pour le minage Bitcoin ; les deux se trouvent être parfaits pour cela.
D’abord, la partie honnête : qui parle à qui
Avant de copier une config, vous avez besoin d’un modèle mental clair, car c’est là que la plupart des montages domestiques déraillent.
Presque tous les micrologiciels ASIC — stock, BraiinsOS+, VNish, LuxOS et DCENT_OS — exposent l’API cgminer sur le port 4028. Cette API est le travail de Con Kolivas et du projet cgminer, et elle est devenue la langue commune du minage : chaque micrologiciel en implémente au moins un sous-ensemble. Mais il y a un piège qui fait constamment trébucher les nouveaux venus :
Le port 4028 est une socket TCP brute qui parle JSON — ce n’est pas du HTTP, et ce n’est pas un point de terminaison REST. Vous envoyez une commande comme
{"command":"summary"}sur une connexion TCP et vous recevez du JSON en retour. Vous ne pouvez pas pointer un navigateur oucurldessus, et Prometheus ne peut pas le récolter directement.
Pour le vocabulaire complet des commandes — summary, stats, devs, pools, et compagnie — voyez notre référence de l’API des mineurs, qui documente en détail le protocole cgminer/BOSminer sur le port 4028. Cette page est la compagne de celle-ci : elle vous dit ce que le mineur peut dire, et ce guide vous montre comment le collecter et le grapher.
Alors comment Prometheus, qui ne sait que récupérer une page HTTP /metrics, lit-il une socket TCP JSON brute ? Deux voies :
- Point de terminaison
/metricsnatif. Quelques micrologiciels exposent un vrai point de terminaison HTTP au format Prometheus dès le départ. Selon la matrice des fonctionnalités de micrologiciels de D-Central, BraiinsOS+ livre un point de terminaison/metricsconçu pour Grafana, et DCENT_OS aussi. Le micrologiciel stock, VNish et LuxOS n’exposent pas de métriques Prometheus natives. Si vous êtes sur l’un de ceux-là, vous passez à la voie deux. - Un exportateur. Un exportateur est un petit programme qui se connecte à l’API cgminer par TCP, traduit le JSON en format Prometheus, et le sert comme une page HTTP
/metricsnormale que Prometheus peut récolter. La façon pratique et adaptée aux flottes de faire ceci est avec pyasic (une bibliothèque open-source d’UpstreamData) ou un cgminer-exporter communautaire. pyasic parle le sous-ensemble de l’API CGMiner que chaque micrologiciel implémente, alors un seul exportateur peut couvrir une flotte mixte de machines stock, BraiinsOS+, VNish, LuxOS et DCENT_OS.
Tout nouveau au flashage de micrologiciel personnalisé ? Commencez par le firmware de minage pour débutants, puis le guide d’installation de BraiinsOS+ (/metrics natif), le guide du micrologiciel LuxOS, ou le guide de mise à jour du micrologiciel Antminer général. Pour comparer les options de micrologiciel avant de vous engager, notre comparaison des logiciels de minage Bitcoin présente les compromis.
Une distinction de plus : le mineur vs l’hôte
Vous verrez node_exporter dans chaque tutoriel Prometheus, et il vaut la peine de le garder au clair. node_exporter (maintenu par la communauté Prometheus) surveille la machine hôte — le Raspberry Pi ou le mini-PC qui exécute votre pile — rapportant son CPU, sa RAM, son disque et son réseau. Il ne vous dit rien sur vos mineurs. L’exportateur de mineur est une chose distincte qui surveille les ASIC. Vous voulez les deux : node_exporter pour savoir que votre machine de surveillance elle-même est saine, et l’exportateur de mineur pour les rigs.
Le matériel : un Pi suffit amplement
Toute cette pile tourne confortablement sur un Raspberry Pi 4 ou 5, ou n’importe quel mini-PC bon marché, du moment qu’il est sur le même réseau local que vos mineurs. Aucun GPU, aucune puissance requise — Prometheus et Grafana sont légers, et une flotte domestique d’une poignée de mineurs s’enregistre à peine. Donnez-lui une connexion filaire si vous le pouvez ; vous voulez que votre machine de surveillance soit la dernière chose à flancher.
La pile : un seul fichier docker-compose
Tout tourne comme des conteneurs, alors le tout est un seul fichier que vous pouvez versionner, sauvegarder et déplacer. Créez un dossier, déposez-y ce docker-compose.yml, et vous avez Prometheus, Grafana, node_exporter et un exportateur de mineur prêts à partir :
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prom_data:/prometheus
ports:
- "9090:9090"
restart: unless-stopped
grafana:
image: grafana/grafana:latest
volumes:
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
restart: unless-stopped
node_exporter:
image: prom/node-exporter:latest
ports:
- "9100:9100"
restart: unless-stopped
miner_exporter:
# community cgminer/pyasic exporter image of your choice
image: your-cgminer-exporter:latest
ports:
- "9876:9876"
restart: unless-stopped
volumes:
prom_data:
grafana_data:
Ensuite, dites à Prometheus quoi récolter. Ce prometheus.yml minimal couvre l’hôte, l’exportateur de mineur, et — si vous exécutez BraiinsOS+ ou DCENT_OS — le point de terminaison /metrics natif d’un mineur directement :
global:
scrape_interval: 30s
scrape_configs:
- job_name: 'host'
static_configs:
- targets: ['node_exporter:9100']
- job_name: 'miners_via_exporter'
static_configs:
- targets: ['miner_exporter:9876']
# Only for firmware with a NATIVE /metrics endpoint
# (BraiinsOS+, DCENT_OS). Stock/VNish/LuxOS go through the exporter above.
- job_name: 'miners_native'
static_configs:
- targets: ['192.168.1.50:8080', '192.168.1.51:8080']
Lancez docker compose up -d, ouvrez http://<ip-de-votre-pi>:9090 pour confirmer que Prometheus voit ses cibles comme « up », puis http://<ip-de-votre-pi>:3000 pour Grafana (identifiant par défaut admin / admin, que vous devriez changer immédiatement). Ajoutez Prometheus comme source de données dans Grafana, en pointant vers http://prometheus:9090, et vous collectez.
Le tableau de bord : ce qu’il faut réellement afficher
Un bon tableau de bord de flotte domestique n’est pas un mur de 40 jauges — c’est les quatre ou cinq choses qui vous disent si vous gagnez. Construisez des panneaux pour :
- Le hashrate par carte. Chaque hashboard rapporte son propre taux. Les surveiller individuellement (pas seulement le total de la machine) est la façon d’attraper une seule carte défaillante avant qu’elle ne fasse plonger tout le rig. Si vous voulez vérifier la cohérence du hashrate « attendu », souvenez-vous que le nombre de puces diffère selon le modèle — un S19 a 76 puces par carte, tandis qu’un S19 Pro en a 114 — alors ne comparez pas les cartes entre modèles.
- La température par carte. La température sur un ASIC est captée par carte, pas par puce. Des capteurs CI I2C dédiés sur chaque hashboard (des pièces comme le LM75A, le TMP1075 ou le NCT218) rapportent la température de la carte, que le contrôleur lit par I2C. Graphez les lectures par carte ; une carte qui tourne plus chaud que ses semblables est votre avertissement précoce.
- Le régime des ventilateurs (RPM). Les mineurs exécutent un contrôle de ventilateur en boucle fermée avec rétroaction par tachymètre. Un ventilateur qui lit 0 RPM est une urgence — quand un ventilateur cale ou qu’un capteur de température lâche, la protection thermique du micrologiciel bride ou arrête la machine pour protéger le silicium. Vous voulez voir cela venir, pas le découvrir après que le rig ait tourné au ralenti.
- Les parts acceptées du pool. Une ligne de parts acceptées plate ou à zéro signifie que vous hachez dans le vide — habituellement une déconnexion de pool ou une mauvaise config. C’est le panneau qui attrape « le mineur a l’air correct mais ne gagne rien ».
Vous n’avez pas à construire tout cela à la main. Exportez votre disposition finie en un fichier JSON de tableau de bord (Grafana → Paramètres du tableau de bord → JSON Model) pour pouvoir le réimporter à toute reconstruction, et gardez ce JSON dans le même dossier que votre fichier compose. Traitez tout le répertoire comme votre sauvegarde.
Les alertes qui sauvent réellement des sats
Les graphiques sont pour quand vous regardez. Les alertes sont pour quand vous ne regardez pas. Ajoutez Alertmanager (ou utilisez l’alerte intégrée de Grafana) et câblez exactement quatre règles — ce sont les défaillances qui coûtent silencieusement de l’argent réel :
- Chute de hashrate — le hashrate total ou par carte d’un mineur tombe significativement sous ses TH/s attendus pendant plus de quelques minutes.
- Ventilateur calé — un tachymètre de ventilateur lit 0 RPM. Cela précède un déclenchement thermique ; traitez-le comme urgent.
- Plafond de température — un capteur par carte franchit votre seuil sûr.
- Déconnexion de pool — les parts acceptées s’aplatissent, ou les données
summaryne montrent aucun pool actif.
Pointez les notifications là où vous les verrez réellement — une notification poussée sur téléphone, un robot Telegram, un courriel. Le but est simple : transformer « je l’ai découvert le lendemain matin » en « j’ai reçu un ping en quatre minutes ».
L’option SNMP (et quand la sauter)
Si vous exploitez un montage plus grand aux côtés d’autre équipement qui parle SNMP, certains micrologiciels stock offrent le SNMP, et DCENT_OS le traite comme un ajout optionnel pour la compatibilité de surveillance d’entreprise. Pour une flotte domestique, le SNMP est habituellement excessif — l’API cgminer plus un exportateur couvrent tout ce dont vous avez besoin. Tournez-vous vers le SNMP seulement si vous avez déjà un système de surveillance basé sur SNMP auquel vous voulez brancher les mineurs.
Vous préférez plutôt un tableau de bord domotique ?
La pile Prometheus + Grafana est la bonne réponse si vous voulez un historique profond, des alertes flexibles, et un tableau de bord d’exploitation dédié. Mais si vous exploitez déjà Home Assistant et préféreriez voir vos mineurs à côté de vos thermostats et lumières, c’est une alternative parfaitement bonne — nous avons un tutoriel complet pour l’intégration de minage Bitcoin à Home Assistant, qui lit aussi l’API cgminer sur le port 4028. Mêmes données, panneau différent.
Où s’insère DCENT_OS
Nous mentionnons DCENT_OS ici pour la même raison que nous mentionnons BraiinsOS+ : il expose un point de terminaison Prometheus /metrics natif, alors il se glisse directement dans cette pile sans exportateur entre les deux. DCENT_OS et le DCENT_Toolbox sont à code source ouvert sous GPL-3.0 et actuellement en bêta — une option ouverte de plus dans un écosystème qui en a déjà de bonnes. Quel que soit le micrologiciel que vous exécutez, la pile ci-dessus fonctionne ; c’est tout l’intérêt d’une norme ouverte comme l’API cgminer.
Quand un panneau vire au rouge
La surveillance vous dit qu’une chose ne va pas ; la corriger est l’étape suivante. Quand une carte tombe, qu’un ventilateur lit zéro, ou que les températures grimpent, gardez notre aide-mémoire de dépannage ASIC ouvert dans l’onglet suivant. Entre un tableau de bord qui vous montre le problème et un aide-mémoire qui vous dit quoi faire à ce sujet, vous avez les deux moitiés de l’exploitation sérieuse d’une flotte domestique.
Construisez-le une fois, et vous ne rafraîchirez plus jamais l’interface web d’un mineur en panique.
