Guide de déploiement

Héberger ClickHouse sur un VPS

Déployer sur un VPS Cloud →

Bases de données8 min de lecture

Héberger ClickHouse sur un VPS

ClickHouse est une base de données analytique orientée colonnes, capable d'agréger des milliards de lignes en quelques millisecondes. C'est l'outil de référence pour le reporting, l'analyse de logs et les dashboards temps réel, et il s'auto-héberge très bien sur un VPS correctement dimensionné. Voici comment le déployer avec Docker, le sécuriser et le configurer pour des performances optimales.

Pourquoi auto-héberger ClickHouse sur un VPS

ClickHouse excelle sur les requêtes analytiques (OLAP) : grâce à son stockage en colonnes et sa compression agressive, il peut scanner des téraoctets sur du matériel modeste là où une base relationnelle classique s'effondrerait. L'auto-héberger sur un VPS vous évite les coûts au volume de requêtes des offres managées (ClickHouse Cloud, BigQuery) et vous donne la maîtrise complète du schéma, des moteurs de table et de la rétention. C'est particulièrement pertinent pour ingérer vos propres logs applicatifs, métriques produit ou événements analytics sans envoyer vos données à un tiers. Comme ClickHouse compresse souvent les données d'un facteur 5 à 10, un VPS avec un disque SSD raisonnable peut stocker des centaines de millions d'événements. Vous gardez aussi le contrôle sur la latence : vos dashboards interrogent une instance proche de vos utilisateurs plutôt qu'un service distant.

Les bénéfices concrets du self-hosting de ClickHouse

  • Requêtes analytiques extrêmement rapides : agrégations sur des centaines de millions de lignes en sous-seconde.
  • Compression colonne de 5x à 10x qui réduit drastiquement le coût de stockage de vos logs et événements.
  • Ingestion massive : des centaines de milliers de lignes par seconde sur un seul nœud bien réglé.
  • Compatible SQL et avec de nombreux connecteurs (Grafana, Metabase, clients HTTP et natifs).
  • Souveraineté analytique : vos logs et métriques produit restent sur votre infrastructure.
  • Pas de facturation à la requête : un coût VPS fixe pour un volume analytique élevé.

Prérequis matériels et logiciels

ClickHouse aime la RAM et le disque rapide. Pour un usage analytique sérieux, visez 4 Go de RAM minimum, mais 8 Go offrent une marge bien plus saine pour les agrégations volumineuses et les marques (mark cache). Côté CPU, 2 à 4 vCPU permettent de paralléliser les requêtes. Le disque est critique : privilégiez du SSD NVMe avec au moins 50 à 100 Go selon votre volume et votre rétention, sachant que la compression réduit l'empreinte réelle. Vous aurez besoin de Docker, d'un domaine si vous exposez l'interface HTTP, et d'une attention particulière au paramètre max_memory_usage pour éviter qu'une requête ne fasse tomber le serveur. Évitez d'exposer le port natif 9000 directement sur Internet.

Déployer ClickHouse étape par étape

01

Préparer le VPS

Installez Docker, augmentez les limites système (ulimit -n à 262144) car ClickHouse ouvre beaucoup de descripteurs de fichiers. Désactivez le swap excessif et vérifiez que le disque est bien en SSD NVMe.

02

Lancer ClickHouse via Docker

Utilisez l'image officielle clickhouse/clickhouse-server. Montez trois volumes persistants : /var/lib/clickhouse (données), /var/log/clickhouse-server (logs) et un dossier de configuration /etc/clickhouse-server/config.d. Ajoutez ulimits: nofile: 262144 dans le compose.

03

Créer un utilisateur et un mot de passe

Ne laissez jamais l'utilisateur default sans mot de passe. Créez un fichier users.d/custom.xml avec un utilisateur dédié, un mot de passe hashé (echo -n motdepasse | sha256sum) et des quotas. Restreignez aux IP autorisées.

04

Régler la mémoire et le profil

Dans config.d, fixez max_server_memory_usage_to_ram_ratio à 0.8 et définissez un max_memory_usage par requête adapté à votre VPS pour éviter les OOM. Activez la rétention des partitions avec un TTL sur vos tables (TTL date + INTERVAL 90 DAY).

05

Exposer l'interface HTTP derrière un reverse proxy

ClickHouse expose une API HTTP sur le port 8123. Placez Nginx ou Caddy devant pour le TLS et l'authentification supplémentaire, et n'ouvrez pas le port natif 9000 au public. Réservez l'accès natif au réseau interne ou via tunnel SSH.

06

Connecter un outil de visualisation

Branchez Grafana ou Metabase sur l'endpoint HTTPS pour construire vos dashboards. Créez vos tables avec le moteur MergeTree, choisissez une ORDER BY pertinente et partitionnez par mois pour des requêtes et une purge efficaces.

Le choix de la clé de tri (ORDER BY) du moteur MergeTree est le facteur décisif de performance : placez en premier les colonnes les plus filtrées dans vos requêtes (souvent une date et un identifiant). Utilisez les tables Buffer ou des inserts par lots de plusieurs milliers de lignes plutôt que des insertions ligne par ligne, qui créent une multitude de petites partitions et déclenchent des merges coûteux. Surveillez system.merges et system.parts pour détecter une fragmentation excessive.

Déployez votre entrepôt analytique ClickHouse

Le VPS Cloud ServOrbit fournit la RAM et les disques NVMe nécessaires à ClickHouse pour analyser vos logs et métriques à grande vitesse, dans un environnement Docker que vous contrôlez de bout en bout.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en anglais, français et arabe.