Files
EVCS/deploy/historisation/preparer-grafana.sh
Tallagrand Thierry fe029cfdff Grafana : les deux bases se consultent, et les requetes sont verifiees
Trois tableaux de bord provisionnes depuis git, sur le modele de la regle R2
(le depot est la source de verite, l'interface ne peut pas les ecraser) :

  La nuit      SOC reel contre SOC exige par le bilan, et la marge entre les
               deux. C'est la question qui avait demande une nuit d'archeologie
               le 03/09.
  Le solaire   l'excedent (§36), la censure, et le mode declare par chacun des
               sept chargeurs (§37) — le signal le plus direct dont on dispose.
  Prevision    l'ecart heure par heure, avec la bande de censure dessous : une
               production sous la prevision peut vouloir dire mauvaise
               prevision OU absence de preneur.

Les evenements de la table `evenement` deviennent des marqueurs verticaux sur
tous les graphiques — une courbe sans ses evenements ne s'interprete pas.

tools/verifier-dashboards.mjs rejoue CHAQUE requete pour de vrai (SQL contre
PostgreSQL, Flux contre InfluxDB, macros Grafana substituees), annotations
comprises puisqu'elles s'executent sur tous les panneaux. Sans lui une requete
cassee ne se voit qu'a l'ecran, panneau par panneau. 19/19 au deploiement.

Port 3001 et non 3000 : sonde avant d'ecrire la ligne, quelque chose ecoute
deja sur 3000 — la lecon du 5432 deja pris par le PostgreSQL de DSM.

Connexion PostgreSQL par le role evcs_lecture : un tableau de bord ne doit pas
pouvoir ecrire dans la memoire. Aucun secret duplique, aucun secret commite :
le provisionnement les reference par $VARIABLE depuis les deux .env.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-04 08:06:25 +02:00

53 lines
2.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Ajoute GRAFANA_ADMIN_PASSWORD à deploy/historisation/.env s'il en manque un.
#
# Ce mot de passe n'est pas de la même nature que les autres : les secrets des
# bases ne sont jamais tapés par personne (les conteneurs les lisent), celui-ci
# sert à VOUS connecter à l'interface. Il est donc généré ici — pas choisi, une
# phrase inventée est plus devinable qu'elle n'en a l'air — puis affiché une
# fois, et il reste relisible à tout moment dans le fichier.
#
# Usage : bash preparer-grafana.sh
set -euo pipefail
cd "$(dirname "$0")"
if [ ! -f .env ]; then
echo "REFUS : .env absent. Lancer d'abord bash preparer-env.sh"
exit 1
fi
if grep -q '^GRAFANA_ADMIN_PASSWORD=' .env; then
echo "GRAFANA_ADMIN_PASSWORD est déjà défini. Rien à faire."
echo
echo "Pour le relire : grep GRAFANA_ADMIN_PASSWORD deploy/historisation/.env"
exit 0
fi
MDP="$(openssl rand -base64 18 | tr -d '/+=' | cut -c1-20)"
printf '\n# Connexion à l’interface Grafana (utilisateur : admin).\nGRAFANA_ADMIN_PASSWORD=%s\n' "$MDP" >> .env
chmod 600 .env
# Le rôle de lecture PostgreSQL et le jeton InfluxDB vivent dans le .env à la
# racine du dépôt ; le compose donne les DEUX fichiers à Grafana, donc rien à
# recopier ici. On vérifie seulement qu'ils y sont, sans jamais les afficher.
RACINE=../../.env
for V in PG_LECTURE_PASSWORD INFLUXDB_TOKEN; do
if grep -q "^$V=." "$RACINE" 2>/dev/null; then
echo " $V : présent dans $RACINE"
else
echo " $V : MANQUANT dans $RACINE — Grafana ne pourra pas lire cette base."
case "$V" in
PG_LECTURE_PASSWORD) echo " -> bash creer-role-lecture.sh" ;;
INFLUXDB_TOKEN) echo " -> bash exporter-jeton-influx.sh" ;;
esac
fi
done
echo
echo "Grafana : http://10.10.10.22:3001"
echo " utilisateur : admin"
echo " mot de passe : $MDP"
echo
echo "Noté dans deploy/historisation/.env (600, jamais commité)."
echo "Relisible par : grep GRAFANA_ADMIN_PASSWORD deploy/historisation/.env"