Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
@@ -0,0 +1,191 @@
---
title: VictoriaMetrics
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, monitoring, time-series, metrics, prometheus, performance, go, production]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/VictoriaMetrics/VictoriaMetrics]
---
# 📊 VictoriaMetrics
> **La base de données time-series ultra-performante** : drop-in replacement de Prometheus, 10-100× plus rapide à l'ingestion, jusqu'à 70× moins de RAM. Le choix du production à grande échelle.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [victoriametrics.com](https://victoriametrics.com/) |
| **GitHub** | [VictoriaMetrics/VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) |
| **License** | Apache-2.0 |
| **Langage** | Go |
| **Étoiles GitHub** | 17.1k ⭐ |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-monitoring|Monitoring]], Time Series Database |
## 📝 Description
**VictoriaMetrics** est une **base de données time-series (TSDB)** conçue comme un **drop-in replacement de Prometheus**, avec des performances nettement supérieures en termes de :
- **Vitesse d'ingestion** : jusqu'à 20× plus rapide que Prometheus
- **Consommation RAM** : 10-70× moins de RAM
- **Compression disque** : 5-10× moins d'espace disque
- **Scalabilité** : conçue pour gérer des **milliards de séries actives**
C'est le choix naturel quand Prometheus atteint ses limites (typiquement au-delà de **5-10 millions de séries actives** ou quand l'ingestion sature).
Composants de l'écosystème :
-**vmstorage** : le moteur de stockage TSDB
-**vminsert** : réception des métriques (Prometheus remote write, InfluxDB, OpenTSDB, CSV, JSON)
-**vmselect** : exécution des requêtes (PromQL, MetricsQL)
-**vmagent** : scraper (remplace prometheus dans le scraping)
-**vmauth** : proxy d'authentification
-**vmalert** : alerting (compatible avec alertmanager)
-**vmgateway** : API gateway multi-tenant
-**vmui** : interface web native pour requêter
-**Cluster mode** : sharding et réplication pour scale horizontale
-**Drop-in Prometheus** : imite les APIs de Prometheus (`/api/v1/query`, etc.)
-**MetricsQL** : extension de PromQL avec des fonctions supplémentaires
**Public cible** : **DevOps, SRE, plateforme**, **équipes qui font du monitoring à grande échelle**. Pour un homelab avec quelques serveurs, [[app-prometheus]] standard suffit largement.
**Comparaison** : VictoriaMetrics est à [[app-prometheus]] ce que **PostgreSQL avec extensions** est à **SQLite** : la même philosophie, mais conçue pour le production à grande échelle. C'est aussi un concurrent direct de **InfluxDB**, **TimescaleDB**, **M3DB** et **Thanos** (qui est un autre moyen de scaler Prometheus).
## 🚀 Installation
### Option 1 : Docker Compose (single-node, recommandé pour démarrer)
```yaml
# docker-compose.yml
version: '3.8'
services:
victoriametrics:
image: victoriametrics/victoria-metrics:latest
container_name: victoriametrics
restart: unless-stopped
ports:
- "8428:8428" # API + UI
volumes:
- vm-data:/storage
command:
- "--storageDataPath=/storage"
- "--httpListenAddr=:8428"
- "--retentionPeriod=12" # 12 mois
- "--memory.allowedPercent=60"
labels:
- "traefik.enable=true"
- "traefik.http.routers.vm.rule=Host(`vm.example.com`)"
- "traefik.http.routers.vm.entrypoints=websecure"
- "traefik.http.routers.vm.tls.certresolver=letsencrypt"
vmagent:
image: victoriametrics/vmagent:latest
container_name: vmagent
restart: unless-stopped
depends_on:
- victoriametrics
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- "--promscrape.config=/etc/prometheus/prometheus.yml"
- "--remoteWrite.url=http://victoriametrics:8428/api/v1/write"
volumes:
vm-data:
```
**Exemple de `prometheus.yml` pour vmagent :**
```yaml
scrape_configs:
- job_name: node
static_configs:
- targets: ['node-exporter:9100']
- job_name: cadvisor
static_configs:
- targets: ['cadvisor:8080']
```
### Option 2 : Binaire unique (bare-metal)
```bash
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.106.0/victoria-metrics-linux-amd64-v1.106.0.tar.gz
tar -xzf victoria-metrics-linux-amd64-v1.106.0.tar.gz
./victoria-metrics-prod -storageDataPath=/vm-data
```
### Option 3 : Cluster mode (production à grande échelle)
Voir [la doc officielle cluster](https://docs.victoriametrics.com/cluster-victoriametrics/).
## ⚙️ Configuration Initiale
1. **Accéder à l'UI** : `http://IP:8428/vmui/` (interface web native)
2. **Tester une requête** : `http://IP:8428/api/v1/query?query=up`
3. **Brancher vmagent** : configurer le scrape config et le remote write vers vmstorage
4. **Importer les dashboards Grafana** : Grafana supporte nativement VictoriaMetrics comme datasource
5. **Configurer les alertes** : déployer `vmalert` et connecter à `alertmanager`
6. **Backup** : `vmbackup` (incrémental) ou `vmstorage` en mode cluster avec réplication
## 🔄 Alternatives
### Open Source
- [[app-prometheus]] — La référence, en Go, simple et éprouvé
- **Thanos** — Pour scaler Prometheus (extension)
- **Cortex** — TSDB multi-tenant (très complexe)
- **M3DB** — TSDB distribuée par Uber
- **InfluxDB** — TSDB généraliste, écrit en Go
- **TimescaleDB** — Extension PostgreSQL pour time-series
- **QuestDB** — TSDB en Java, ultra-rapide
### Comparaison VictoriaMetrics vs alternatives
| Critère | VictoriaMetrics | Prometheus | Thanos | InfluxDB |
| :--- | :--- | :--- | :--- | :--- |
| RAM (10M séries) | ~2 Go | ~20 Go | ~30 Go | ~10 Go |
| Ingestion rate | 1M+ samples/s | 100k samples/s | 100k+ | 500k+ |
| Stockage | 0.4 bytes/sample | 2-3 bytes/sample | 2-3 bytes/sample | 1 byte/sample |
| PromQL | ✅ (MetricsQL) | ✅ | ✅ | ❌ (Flux) |
| Drop-in Prometheus | ✅ | N/A | ✅ | ❌ |
| Cluster natif | ✅ | ❌ | ✅ | ✅ (Enterprise) |
| Complexité | Moyenne | Basse | Élevée | Moyenne |
**Verdict** : VictoriaMetrics est **le choix pragmatique** quand Prometheus montre ses limites. **Plus simple que Thanos**, **plus rapide qu'InfluxDB**, **plus scalable que Prometheus seul**.
### Propriétaires (ce que VictoriaMetrics remplace)
- **Datadog Metrics** (très cher)
- **New Relic Metrics** (payant)
- **InfluxDB Cloud** (payant au-delà du free tier)
- **AWS Timestream** (payant AWS)
- **Azure Data Explorer** (payant Azure)
- **Splunk Infrastructure Monitoring** (très cher)
## 🔐 Sécurité
- **Auth basique** : `--httpAuth.username` et `--httpAuth.password`
- **TLS** : via reverse proxy ([[app-traefik]]) ou mTLS natif (Enterprise)
- **Multi-tenant** : via `vmauth` (headers, JWT, mTLS)
- **HTTPS** via [[app-traefik]] obligatoire
- **Firewall** : l'API write (8429) ne doit **jamais** être exposée publiquement
- **Backups** : chiffrer les sauvegardes (elles contiennent toutes vos métriques)
## 📚 Ressources
- [GitHub VictoriaMetrics/VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics)
- [Documentation officielle](https://docs.victoriametrics.com/)
- [Blog technique](https://victoriametrics.com/blog/)
- [Benchmarks vs Prometheus](https://victoriametrics.com/blog/our-results-are-better-than-prometheus/)
- [VictoriaMetrics Cloud (managed)](https://victoriametrics.com/products/victoriametrics-cloud/)
## Pages Liées
- [[cat-monitoring]] — Catégorie Monitoring
- [[app-prometheus]] — Prometheus standard
- [[app-grafana]] — Dashboards
- [[app-cadvisor]] — Métriques containers
- [[app-traefik]] — Reverse proxy HTTPS
- [[observabilite]] — Vue d'ensemble observabilité
- [[checklist-monitoring-minimal]] — Checklist