ClickHouse на VPS: аналитика и OLAP на своём сервере — иллюстрация к статье Storm Cloud Blog, категория DevOps
ClickHouse на VPS: аналитика и OLAP на своём сервере — иллюстрация к статье Storm Cloud Blog, категория DevOps
DevOps·2 мин··

ClickHouse на VPS: аналитика и OLAP на своём сервере

Установка ClickHouse на VPS: колоночная БД для логов и аналитики, запросы, интеграция с Grafana. Когда нужен OLAP.

Краткий ответ: ClickHouse — колоночная СУБД для аналитики миллиардов строк. На VPS подходит для логов, метрик, event tracking. Минимум 4 GB RAM для production.

PostgreSQL и MariaDB — для OLTP (транзакции). ClickHouse — для OLAP (агрегации, отчёты, дашборды).


ClickHouse vs PostgreSQL vs Elasticsearch

ClickHouse PostgreSQL Elasticsearch
Тип OLAP OLTP Search/Logs
Сжатие Отличное Среднее Среднее
RAM 4 GB+ 2 GB+ 4 GB+
SQL Да Да Нет (DSL)

Для логов проще — Loki. ClickHouse — когда нужен SQL на больших данных.


Установка (Docker)

services:
  clickhouse:
    image: clickhouse/clickhouse-server
    ports:
      - "127.0.0.1:8123:8123"
    volumes:
      - ch_data:/var/lib/clickhouse
    ulimits:
      nofile: 262144

volumes:
  ch_data:

На VPS 4+ GB RAM, SSD обязателен.


Создание таблицы

CREATE TABLE events (
    ts DateTime,
    user_id UInt64,
    event String,
    properties String
) ENGINE = MergeTree()
ORDER BY (ts, user_id);
INSERT INTO events VALUES (now(), 1, 'page_view', '{}');
SELECT event, count() FROM events GROUP BY event;

Импорт логов Nginx

# Парсинг access.log → INSERT
clickhouse-client --query "INSERT INTO nginx_logs FORMAT JSONEachRow" < parsed.json

Связка с Nginx логами и Grafana.


Безопасность

  • bind только 127.0.0.1
  • Пароль default user
  • Не открывайте 8123 в интернет
  • Fail2ban на Nginx перед CH

RAM и диск

Данные RAM Диск
10M events 4 GB 50 GB
100M+ 8 GB+ 200 GB+

Бэкапы — Restic на volume.


Итог

ClickHouse на VPS — для аналитики без облачного BigQuery. Закладывайте RAM и SSD, не ставьте на 2 GB VPS.

VPS 4–8 GB — StormNet Cloud. Лёгкие логи — Loki.

Частые вопросы

Можно ли ClickHouse на VPS 2 ГБ?

Только для тестов. Production аналитика — от 4 ГБ RAM и SSD. Иначе OOM и медленные запросы.

ClickHouse или PostgreSQL для аналитики?

ClickHouse — для миллиардов строк и OLAP-агрегаций. PostgreSQL — для транзакций и умеренной аналитики.