how-to-install-and-manage Help

Grafana

Grafana est une plateforme open source de visualisation et d’analyse de données.
Elle permet de créer des tableaux de bord dynamiques à partir de diverses sources comme Prometheus, Loki, etc.
Son intégration dans notre infrastructure permet de centraliser la supervision et le suivi d’indicateurs clés.

Architecture

Grafana est déployé dans notre cluster Kubernetes à l’aide de FluxCD et Helm. L’application est exposée via un Ingress géré par Traefik et utilise des volumes persistants pour conserver la configuration et les dashboards entre les redémarrages.

Environnement

Grafana tourne dans le namespace dédié grafana. Le déploiement est entièrement automatisé à l’aide de manifestes GitOps pilotés par FluxCD.

Déploiement

Le déploiement s’effectue à l’aide d’un HelmRelease qui référence le dépôt officiel Grafana Helm Charts.

apiVersion: source.toolkit.fluxcd.io/v1beta2 kind: HelmRepository metadata: name: grafana namespace: grafana spec: interval: 1m url: https://grafana.github.io/helm-charts

Le chart est ensuite utilisé dans le HelmRelease suivant :

apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: grafana namespace: supervision spec: interval: 5m chart: spec: chart: grafana version: 9.2.9 sourceRef: kind: HelmRepository name: grafana namespace: grafana

Ingress

Grafana est exposé publiquement via un Ingress :

ingress: enabled: true annotations: kubernetes.io/ingress.class: traefik hosts: - grafana.innovalia.cc path: /

Service

service: type: ClusterIP port: 80

Le service est interne au cluster, seul l’Ingress permet un accès externe.

Sources de données (Datasources)

Deux sources de données sont déclarées dès le déploiement :

datasources: datasources.yaml: apiVersion: 1 datasources: - name: prometheus type: prometheus uid: prometheus url: http://prometheus-server.prometheus.svc.cluster.local access: proxy isDefault: true - name: loki type: loki uid: loki url: http://loki-gateway.loki.svc.cluster.local access: proxy
  • Prometheus pour la collecte de métriques

  • Loki pour la journalisation centralisée

Dashboards provisionnés

Les dashboards sont provisionnés automatiquement via une ConfigMap montée dans le conteneur :

dashboardsProvider: dashboards.yaml: apiVersion: 1 providers: - name: default orgId: 1 folder: General type: file options: path: /etc/grafana/provisioning/dashboards dashboardsConfigMaps: default: grafana-dashboards

Les fichiers JSON des dashboards sont stockés dans une ConfigMap nommée grafana-dashboards.

Alertes provisionnées

Grafana permet également de provisionner les règles d’alerte :

extraVolumes: - name: alerting-config configMap: name: grafana-alerting extraVolumeMounts: - name: alerting-config mountPath: /etc/grafana/provisioning/alerting readOnly: true

Les règles d’alerte sont définies dans la ConfigMap grafana-alerting et montées dans le bon répertoire.

Sécurité

Un fsGroup est défini dans la configuration pour garantir que Grafana peut écrire dans ses volumes :

securityContext: fsGroup: 472

Accès

Grafana est accessible à l'adresse suivante :
https://grafana.innovalia.cc

Les identifiants par défaut sont ceux définis dans le SealedSecret.

Last modified: 22 July 2025