1. Secret de stockage objet #
Partagé par sidecar, store et compactor.
Création #
cat > objstore.yml <<'EOF'
type: S3
config:
bucket: thanos-prod
endpoint: s3.eu-west-3.amazonaws.com
region: eu-west-3
access_key: AKIA...
secret_key: ...
EOF
kubectl create namespace monitoring
kubectl -n monitoring create secret generic thanos-objstore --from-file=objstore.ymlErreur Courante : Ne versionnez jamais ce fichier : utilisez External Secrets, Sealed Secrets ou des rôles IAM liés au ServiceAccount (IRSA) pour éviter les clés statiques.
2. Sidecar avec kube-prometheus-stack #
Quelques lignes de values.
values.yaml #
# values-thanos.yaml
prometheus:
thanosService:
enabled: true
thanosServiceMonitor:
enabled: true
prometheusSpec:
replicas: 2
replicaExternalLabelName: replica
externalLabels: { cluster: prod-eu }
retention: 2d
disableCompaction: true
thanos:
objectStorageConfig:
existingSecret: { name: thanos-objstore, key: objstore.yml }helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm upgrade --install monitoring prometheus-community/kube-prometheus-stack -n monitoring -f values-thanos.yaml
kubectl -n monitoring get pods -l app.kubernetes.io/name=prometheus
kubectl -n monitoring logs prometheus-monitoring-kube-prometheus-prometheus-0 -c thanos-sidecar | tail3. Query, Store et Compactor avec Helm #
Chart Bitnami.
values-thanos-components.yaml #
# helm repo add bitnami https://charts.bitnami.com/bitnami
objstoreConfig: |-
type: S3
config:
bucket: thanos-prod
endpoint: s3.eu-west-3.amazonaws.com
region: eu-west-3
query:
enabled: true
replicaLabel: [replica]
dnsDiscovery:
sidecarsService: monitoring-kube-prometheus-thanos-discovery
sidecarsNamespace: monitoring
queryFrontend: { enabled: true }
storegateway:
enabled: true
persistence: { enabled: true, size: 20Gi }
compactor:
enabled: true
retentionResolutionRaw: 30d
retentionResolution5m: 180d
retentionResolution1h: 2y
persistence: { enabled: true, size: 50Gi }helm upgrade --install thanos bitnami/thanos -n monitoring -f values-thanos-components.yaml
kubectl -n monitoring get pods -l app.kubernetes.io/instance=thanos
kubectl -n monitoring port-forward svc/thanos-query-frontend 9090:9090 # http://localhost:9090
kubectl -n monitoring port-forward svc/thanos-query 10902:9090 && curl -s localhost:10902/api/v1/stores | jq '.data | keys'4. Grafana et vérifications #
Brancher l'ensemble.
Datasource et contrôles #
# Source de données Grafana : type Prometheus, URL du Query Frontend
- name: Thanos
type: prometheus
url: http://thanos-query-frontend.monitoring.svc:9090
jsonData: { timeInterval: 15s, prometheusType: Thanos }# Les deux réplicas sont-ils vus et dédupliqués ?
count(up{job="kubelet"}) by (cluster)
# Le compactor est-il sain ?
thanos_compact_halted == 0Bonne Pratique : Fixez des requests/limits mémoire sur le Store Gateway et le Compactor : ils consomment beaucoup lors des gros téléchargements de blocs.
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Comprendre la notion de score
Le concept de score va permettre à Elasticsearch de classer vos documents par pertinence lors d u...
Comprendre Elastic Common Schema(ECS)
Comme toujours dans nos missions de conseil, nous recommandons aux entreprises d'uniformiser, de ...
Grail : Dynatrace Data Lakehouse
Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail dont vous pouvez co...
C'est quoi l'observabilité
La capacité à connaître l'état interne d'un système à partir des données que cette dernière émet...
Les types de transactions dans les base de données
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Différences entre Technologies et Services dans Dynatrace
Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organiser et surveiller l...
Dynatrace : Différences entre SQL Modifications, SQL Queries or Procedures, et SQL Transactions
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Types de consommation de licence
Comprendre l'évolution de la facturation dans Dynatrace : la différence entre l'ancien modèle de ...
Les Types de Services Dynatrace : Comprendre et Optimiser Votre Surveillance Applicative
Découvrez les différents types de services que Dynatrace peut surveiller, leur rôle, et comment l...