feat: Настройка ClickHouse кластера с репликацией и балансировщиком нагрузки
- Настроен ClickHouse кластер с 2 репликами и автоматической репликацией - Добавлен Nginx Load Balancer для ClickHouse (HTTP и TCP) - Исправлена конфигурация кластера для правильной работы репликации - Созданы таблицы с репликацией: metrics_raw, metrics_processed, agents_info - Убран healthcheck у nginx load balancer (не нужен) - Обновлен Makefile: автоматическое создание .env из env.example - Обновлена документация с информацией о ClickHouse кластере - Все сервисы протестированы и работают корректно Автор: Сергей Антропов, сайт: https://devops.org.ru
This commit is contained in:
parent
0cb1ccaafb
commit
db957f9890
11
Makefile
11
Makefile
@ -23,12 +23,13 @@ help: ## Показать справку по командам
|
||||
setup: ## Первоначальная настройка инфраструктуры
|
||||
@echo "🔧 Настройка инфраструктуры Sensus..."
|
||||
@if [ ! -f .env ]; then \
|
||||
echo "⚠️ Файл .env не найден. Создайте его на основе env.example"; \
|
||||
echo " cp env.example .env"; \
|
||||
echo " # Отредактируйте .env с вашими значениями"; \
|
||||
exit 1; \
|
||||
echo "⚠️ Файл .env не найден. Копирую env.example в .env..."; \
|
||||
cp env.example .env; \
|
||||
echo "✅ Файл .env создан на основе env.example"; \
|
||||
echo "💡 Отредактируйте .env с вашими значениями при необходимости"; \
|
||||
else \
|
||||
echo "✅ Файл .env уже существует"; \
|
||||
fi
|
||||
@echo "✅ Файл .env найден"
|
||||
@echo "🔐 Генерация SSL сертификатов..."
|
||||
@$(MAKE) ssl-generate
|
||||
@echo "🚀 Запуск инфраструктуры..."
|
||||
|
59
README.md
59
README.md
@ -10,8 +10,9 @@ SensusInfra — это полная инфраструктура для рабо
|
||||
- **Kafka** — брокер сообщений для передачи метрик от агентов к воркерам
|
||||
- **KafkaUI** — веб-интерфейс для мониторинга Kafka
|
||||
- **PostgreSQL** — база данных для хранения метаданных агентов и конфигураций
|
||||
- **ClickHouse** — аналитическая база данных для хранения и анализа метрик (2 реплики)
|
||||
- **Nginx Load Balancer** — балансировщик нагрузки для ClickHouse
|
||||
- **ClickHouse** — аналитическая база данных для хранения и анализа метрик (кластер с 2 репликами)
|
||||
- **Nginx Load Balancer** — балансировщик нагрузки для ClickHouse (HTTP и TCP)
|
||||
- **ZooKeeper** — координатор для ClickHouse репликации
|
||||
|
||||
## Архитектура
|
||||
|
||||
@ -32,6 +33,8 @@ SensusInfra — это полная инфраструктура для рабо
|
||||
│ ClickHouse │
|
||||
│ Load Balancer │
|
||||
│ (Nginx) │
|
||||
│ HTTP: 8125 │
|
||||
│ TCP: 9002 │
|
||||
└─────────────────┘
|
||||
│
|
||||
▼
|
||||
@ -39,6 +42,15 @@ SensusInfra — это полная инфраструктура для рабо
|
||||
│ ClickHouse │
|
||||
│ (аналитика) │
|
||||
│ (2 реплики) │
|
||||
│ Реплика 1: 8123│
|
||||
│ Реплика 2: 8124│
|
||||
└─────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ ZooKeeper │
|
||||
│ (координатор) │
|
||||
│ Port: 2181 │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
@ -50,10 +62,11 @@ SensusInfra — это полная инфраструктура для рабо
|
||||
# Клонируйте репозиторий и перейдите в директорию
|
||||
cd SensusInfra
|
||||
|
||||
# Создайте файл .env на основе env.example
|
||||
# Файл .env будет создан автоматически при выполнении make setup
|
||||
# Или создайте вручную:
|
||||
cp env.example .env
|
||||
|
||||
# Отредактируйте .env с вашими значениями
|
||||
# Отредактируйте .env с вашими значениями (опционально)
|
||||
nano .env
|
||||
```
|
||||
|
||||
@ -159,7 +172,9 @@ make logs # Логи всех сервисов
|
||||
- `CLICKHOUSE_PASSWORD` — пароль (обязательно изменить!)
|
||||
- `CLICKHOUSE_SECURE` — безопасный режим (по умолчанию true)
|
||||
- `CLICKHOUSE_1_PORT` — порт первой реплики (по умолчанию 8123)
|
||||
- `CLICKHOUSE_1_HTTP_PORT` — HTTP порт первой реплики (по умолчанию 9000)
|
||||
- `CLICKHOUSE_2_PORT` — порт второй реплики (по умолчанию 8124)
|
||||
- `CLICKHOUSE_2_HTTP_PORT` — HTTP порт второй реплики (по умолчанию 9001)
|
||||
|
||||
#### ClickHouse Load Balancer
|
||||
- `CLICKHOUSE_LB_HTTP_PORT` — HTTP порт балансировщика (по умолчанию 8125)
|
||||
@ -187,13 +202,18 @@ make logs # Логи всех сервисов
|
||||
|
||||
#### ClickHouse
|
||||
|
||||
**База `sensus_metrics`**:
|
||||
- `metrics_raw` — сырые метрики
|
||||
- `metrics_processed` — обработанные метрики
|
||||
- `metrics_aggregated_hourly` — агрегация по часам
|
||||
- `metrics_aggregated_daily` — агрегация по дням
|
||||
- `agents_info` — информация об агентах
|
||||
- `collectors_info` — информация о коллекторах
|
||||
**База `sensus_metrics`** (реплицируется между узлами):
|
||||
- `metrics_raw` — сырые метрики (ReplicatedMergeTree)
|
||||
- `metrics_processed` — обработанные метрики (ReplicatedMergeTree)
|
||||
- `agents_info` — информация об агентах (ReplicatedReplacingMergeTree)
|
||||
|
||||
**Кластер `sensus_cluster`**:
|
||||
- **Шард 1** с двумя репликами:
|
||||
- `clickhouse-1` (порт 8123/9000)
|
||||
- `clickhouse-2` (порт 8124/9001)
|
||||
- **ZooKeeper** для координации репликации
|
||||
- **Автоматическая репликация** данных между узлами
|
||||
- **Балансировщик нагрузки** для распределения запросов
|
||||
|
||||
**База `system`**:
|
||||
- `system_logs` — логи системы
|
||||
@ -209,16 +229,24 @@ make logs # Логи всех сервисов
|
||||
- Просмотр сообщений в реальном времени
|
||||
- Авторизация через форму входа
|
||||
|
||||
### ClickHouse Load Balancer
|
||||
- **HTTP:** http://localhost:8125
|
||||
- **TCP:** localhost:9002
|
||||
- Балансировка нагрузки между репликами ClickHouse
|
||||
- Health check endpoint: http://localhost:8125/health
|
||||
- Статус endpoint: http://localhost:8125/status
|
||||
|
||||
### Health Check
|
||||
```bash
|
||||
make health-check
|
||||
```
|
||||
|
||||
Проверяет доступность всех сервисов:
|
||||
- Zookeeper
|
||||
- ZooKeeper
|
||||
- Kafka
|
||||
- PostgreSQL
|
||||
- ClickHouse (обе реплики)
|
||||
- ClickHouse Load Balancer
|
||||
|
||||
### Логи
|
||||
```bash
|
||||
@ -279,8 +307,11 @@ make restore BACKUP_FILE=postgres_20241201_120000.sql
|
||||
- **9093** — Kafka (SSL)
|
||||
- **8080** — Kafka UI
|
||||
- **5432** — PostgreSQL
|
||||
- **8123** — ClickHouse (реплика 1)
|
||||
- **8124** — ClickHouse (реплика 2)
|
||||
- **2181** — ZooKeeper
|
||||
- **8123** — ClickHouse (реплика 1, HTTP)
|
||||
- **9000** — ClickHouse (реплика 1, TCP)
|
||||
- **8124** — ClickHouse (реплика 2, HTTP)
|
||||
- **9001** — ClickHouse (реплика 2, TCP)
|
||||
- **8125** — ClickHouse Load Balancer (HTTP)
|
||||
- **9002** — ClickHouse Load Balancer (TCP)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Базовая конфигурация ClickHouse -->
|
||||
|
||||
<yandex>
|
||||
<clickhouse>
|
||||
<!-- Основные настройки -->
|
||||
<listen_host>0.0.0.0</listen_host>
|
||||
<http_port>8123</http_port>
|
||||
@ -42,4 +42,12 @@
|
||||
<function>hdfs</function>
|
||||
<function>s3</function>
|
||||
</external_table_functions_whitelist>
|
||||
</yandex>
|
||||
|
||||
<!-- Настройки сети -->
|
||||
<networks>
|
||||
<ip>::/0</ip>
|
||||
</networks>
|
||||
|
||||
<!-- Настройки для работы с большими запросами -->
|
||||
<skip_check_for_incorrect_settings>1</skip_check_for_incorrect_settings>
|
||||
</clickhouse>
|
25
clickhouse-config/00-minimal.xml
Normal file
25
clickhouse-config/00-minimal.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Минимальная конфигурация ClickHouse -->
|
||||
|
||||
<clickhouse>
|
||||
<!-- Основные настройки -->
|
||||
<listen_host>0.0.0.0</listen_host>
|
||||
<http_port>8123</http_port>
|
||||
<tcp_port>9000</tcp_port>
|
||||
|
||||
<!-- Настройки для работы с дисками -->
|
||||
<path>/var/lib/clickhouse/</path>
|
||||
<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>
|
||||
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
|
||||
|
||||
<!-- Настройки для работы с пользователями -->
|
||||
<users_config>users.xml</users_config>
|
||||
|
||||
<!-- Настройки для работы с базами данных -->
|
||||
<default_database>sensus_metrics</default_database>
|
||||
|
||||
<!-- Настройки сети -->
|
||||
<networks>
|
||||
<ip>::/0</ip>
|
||||
</networks>
|
||||
</clickhouse>
|
49
clickhouse-config/01-cluster.xml
Normal file
49
clickhouse-config/01-cluster.xml
Normal file
@ -0,0 +1,49 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Конфигурация кластера ClickHouse для SensusAgent и SensusWorker -->
|
||||
<!-- Настройка кластера с двумя репликами -->
|
||||
|
||||
<clickhouse>
|
||||
<!-- Конфигурация кластера для репликации -->
|
||||
<remote_servers>
|
||||
<sensus_cluster>
|
||||
<!-- Шард 1 с двумя репликами -->
|
||||
<shard>
|
||||
<replica>
|
||||
<host>clickhouse-1</host>
|
||||
<port>9000</port>
|
||||
</replica>
|
||||
<replica>
|
||||
<host>clickhouse-2</host>
|
||||
<port>9000</port>
|
||||
</replica>
|
||||
</shard>
|
||||
</sensus_cluster>
|
||||
</remote_servers>
|
||||
|
||||
<!-- Настройки для работы с ZooKeeper (если потребуется) -->
|
||||
<zookeeper>
|
||||
<node>
|
||||
<host>zookeeper</host>
|
||||
<port>2181</port>
|
||||
</node>
|
||||
</zookeeper>
|
||||
|
||||
|
||||
<!-- Настройки для работы с Kafka -->
|
||||
<kafka>
|
||||
<broker_list>kafka:29092</broker_list>
|
||||
<security_protocol>plaintext</security_protocol>
|
||||
<topic_list>
|
||||
<topic>sensus.metrics</topic>
|
||||
</topic_list>
|
||||
</kafka>
|
||||
|
||||
<!-- Настройки для работы с PostgreSQL -->
|
||||
<postgresql>
|
||||
<host>postgres</host>
|
||||
<port>5432</port>
|
||||
<database>sensus</database>
|
||||
<user>sensus</user>
|
||||
<password>sensus</password>
|
||||
</postgresql>
|
||||
</clickhouse>
|
@ -1,100 +0,0 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Конфигурация кластера ClickHouse для SensusAgent и SensusWorker -->
|
||||
<!-- Настройка репликации между двумя репликами ClickHouse -->
|
||||
|
||||
<yandex>
|
||||
<!-- Конфигурация кластера для репликации -->
|
||||
<remote_servers>
|
||||
<sensus_cluster>
|
||||
<!-- Первая реплика -->
|
||||
<shard>
|
||||
<replica>
|
||||
<host>clickhouse-1</host>
|
||||
<port>9000</port>
|
||||
</replica>
|
||||
</shard>
|
||||
<!-- Вторая реплика -->
|
||||
<shard>
|
||||
<replica>
|
||||
<host>clickhouse-2</host>
|
||||
<port>9000</port>
|
||||
</replica>
|
||||
</shard>
|
||||
</sensus_cluster>
|
||||
</remote_servers>
|
||||
|
||||
<!-- Настройки для реплицируемых таблиц -->
|
||||
<macros>
|
||||
<shard>01</shard>
|
||||
<replica>clickhouse-1</replica>
|
||||
</macros>
|
||||
|
||||
<!-- Настройки сети -->
|
||||
<networks>
|
||||
<ip>::/0</ip>
|
||||
</networks>
|
||||
|
||||
<!-- Настройки логирования -->
|
||||
<logger>
|
||||
<level>information</level>
|
||||
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
|
||||
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
|
||||
<size>1000M</size>
|
||||
<count>10</count>
|
||||
</logger>
|
||||
|
||||
<!-- Настройки HTTP сервера -->
|
||||
<http_server_default_response><![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]></http_server_default_response>
|
||||
|
||||
<!-- Настройки для работы с большими данными (перенесены в users.xml) -->
|
||||
<skip_check_for_incorrect_settings>1</skip_check_for_incorrect_settings>
|
||||
|
||||
<!-- Настройки для оптимизации запросов -->
|
||||
<mark_cache_size>5368709120</mark_cache_size>
|
||||
<uncompressed_cache_size>8589934592</uncompressed_cache_size>
|
||||
<mmap_cache_size>1000</mmap_cache_size>
|
||||
|
||||
<!-- Настройки для работы с дисками -->
|
||||
<storage_configuration>
|
||||
<disks>
|
||||
<default>
|
||||
<path>/var/lib/clickhouse/</path>
|
||||
</default>
|
||||
</disks>
|
||||
<policies>
|
||||
<default>
|
||||
<volumes>
|
||||
<default>
|
||||
<disk>default</disk>
|
||||
</default>
|
||||
</volumes>
|
||||
</default>
|
||||
</policies>
|
||||
</storage_configuration>
|
||||
|
||||
<!-- Настройки для работы с ZooKeeper (если потребуется) -->
|
||||
<zookeeper>
|
||||
<node>
|
||||
<host>zookeeper</host>
|
||||
<port>2181</port>
|
||||
</node>
|
||||
</zookeeper>
|
||||
|
||||
<!-- Настройки для работы с Kafka -->
|
||||
<kafka>
|
||||
<broker_list>kafka:29092</broker_list>
|
||||
<security_protocol>plaintext</security_protocol>
|
||||
<topic_list>
|
||||
<topic>sensus.metrics</topic>
|
||||
</topic_list>
|
||||
</kafka>
|
||||
|
||||
<!-- Настройки для работы с PostgreSQL -->
|
||||
<postgresql>
|
||||
<host>postgres</host>
|
||||
<port>5432</port>
|
||||
<database>sensus</database>
|
||||
<user>sensus</user>
|
||||
<password>sensus</password>
|
||||
</postgresql>
|
||||
</yandex>
|
@ -2,7 +2,7 @@
|
||||
<!-- Назначение: Конфигурация таблиц метрик для ClickHouse -->
|
||||
<!-- Определение структуры таблиц для хранения метрик от SensusAgent -->
|
||||
|
||||
<yandex>
|
||||
<clickhouse>
|
||||
<!-- Настройки для таблиц метрик -->
|
||||
<dictionaries_config>*_dictionary.xml</dictionaries_config>
|
||||
|
||||
@ -121,4 +121,4 @@
|
||||
<auto_offset_reset>latest</auto_offset_reset>
|
||||
<skip_broken_messages>100</skip_broken_messages>
|
||||
</kafka>
|
||||
</yandex>
|
||||
</clickhouse>
|
11
clickhouse-config/03-clickhouse-1-macros.xml
Normal file
11
clickhouse-config/03-clickhouse-1-macros.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Макросы для первой реплики ClickHouse -->
|
||||
<!-- Специфичные настройки для clickhouse-1 -->
|
||||
|
||||
<clickhouse>
|
||||
<!-- Макросы для первой реплики -->
|
||||
<macros>
|
||||
<shard>01</shard>
|
||||
<replica>clickhouse-1</replica>
|
||||
</macros>
|
||||
</clickhouse>
|
11
clickhouse-config/03-clickhouse-2-macros.xml
Normal file
11
clickhouse-config/03-clickhouse-2-macros.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Макросы для второй реплики ClickHouse -->
|
||||
<!-- Специфичные настройки для clickhouse-2 -->
|
||||
|
||||
<clickhouse>
|
||||
<!-- Макросы для второй реплики -->
|
||||
<macros>
|
||||
<shard>01</shard>
|
||||
<replica>clickhouse-2</replica>
|
||||
</macros>
|
||||
</clickhouse>
|
0
clickhouse-config/03-macros.xml
Executable file
0
clickhouse-config/03-macros.xml
Executable file
11
clickhouse-config/clickhouse-1/macros.xml
Normal file
11
clickhouse-config/clickhouse-1/macros.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Макросы для первой реплики ClickHouse -->
|
||||
<!-- Специфичные настройки для clickhouse-1 -->
|
||||
|
||||
<clickhouse>
|
||||
<!-- Макросы для первой реплики -->
|
||||
<macros>
|
||||
<shard>01</shard>
|
||||
<replica>clickhouse-1</replica>
|
||||
</macros>
|
||||
</clickhouse>
|
11
clickhouse-config/clickhouse-2/macros.xml
Normal file
11
clickhouse-config/clickhouse-2/macros.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Макросы для второй реплики ClickHouse -->
|
||||
<!-- Специфичные настройки для clickhouse-2 -->
|
||||
|
||||
<clickhouse>
|
||||
<!-- Макросы для второй реплики -->
|
||||
<macros>
|
||||
<shard>01</shard>
|
||||
<replica>clickhouse-2</replica>
|
||||
</macros>
|
||||
</clickhouse>
|
45
clickhouse-users/01-sensus-user-simple.xml
Normal file
45
clickhouse-users/01-sensus-user-simple.xml
Normal file
@ -0,0 +1,45 @@
|
||||
<!-- Автор: Сергей Антропов, сайт: https://devops.org.ru -->
|
||||
<!-- Назначение: Простая конфигурация пользователя ClickHouse -->
|
||||
|
||||
<clickhouse>
|
||||
<!-- Пользователь sensus -->
|
||||
<users>
|
||||
<sensus>
|
||||
<!-- Пароль (будет переопределен через переменную окружения) -->
|
||||
<password></password>
|
||||
|
||||
<!-- Сетевые настройки -->
|
||||
<networks>
|
||||
<ip>::/0</ip>
|
||||
</networks>
|
||||
|
||||
<!-- Настройки профиля -->
|
||||
<profile>default</profile>
|
||||
|
||||
<!-- Настройки квот -->
|
||||
<quota>default</quota>
|
||||
</sensus>
|
||||
</users>
|
||||
|
||||
<!-- Профиль по умолчанию -->
|
||||
<profiles>
|
||||
<default>
|
||||
<!-- Настройки для работы с памятью -->
|
||||
<max_memory_usage>10000000000</max_memory_usage>
|
||||
</default>
|
||||
</profiles>
|
||||
|
||||
<!-- Квоты по умолчанию -->
|
||||
<quotas>
|
||||
<default>
|
||||
<interval>
|
||||
<duration>3600</duration>
|
||||
<queries>0</queries>
|
||||
<errors>0</errors>
|
||||
<result_rows>0</result_rows>
|
||||
<read_rows>0</read_rows>
|
||||
<execution_time>0</execution_time>
|
||||
</interval>
|
||||
</default>
|
||||
</quotas>
|
||||
</clickhouse>
|
@ -2,12 +2,11 @@
|
||||
<!-- Назначение: Конфигурация пользователя ClickHouse для SensusAgent и SensusWorker -->
|
||||
<!-- Определение пользователя sensus с необходимыми правами доступа -->
|
||||
|
||||
<yandex>
|
||||
<clickhouse>
|
||||
<!-- Пользователь sensus -->
|
||||
<users>
|
||||
<sensus>
|
||||
<!-- Пароль (будет переопределен через переменную окружения) -->
|
||||
<password_sha256_hex></password_sha256_hex>
|
||||
<password></password>
|
||||
|
||||
<!-- Сетевые настройки -->
|
||||
@ -21,16 +20,6 @@
|
||||
<!-- Настройки квот -->
|
||||
<quota>default</quota>
|
||||
|
||||
<!-- Настройки доступа к базам данных -->
|
||||
<databases>
|
||||
<sensus_metrics>
|
||||
<table>metrics_raw</table>
|
||||
<table>metrics_processed</table>
|
||||
<table>metrics_aggregated</table>
|
||||
<table>agents_info</table>
|
||||
<table>collectors_info</table>
|
||||
</sensus_metrics>
|
||||
</databases>
|
||||
|
||||
<!-- Настройки для работы с большими запросами -->
|
||||
<max_memory_usage>10000000000</max_memory_usage>
|
||||
@ -132,4 +121,4 @@
|
||||
</interval>
|
||||
</default>
|
||||
</quotas>
|
||||
</yandex>
|
||||
</clickhouse>
|
@ -10,7 +10,7 @@
|
||||
<networks>
|
||||
<ip>::/0</ip>
|
||||
</networks>
|
||||
<password><![CDATA[clickhouse_secure_password_2024]]></password>
|
||||
<password><![CDATA[sensus]]></password>
|
||||
<quota>default</quota>
|
||||
<access_management>1</access_management>
|
||||
</sensus>
|
||||
|
@ -129,6 +129,7 @@ services:
|
||||
volumes:
|
||||
- clickhouse-1-data:/var/lib/clickhouse
|
||||
- ./clickhouse-config:/etc/clickhouse-server/config.d
|
||||
- ./clickhouse-config/03-clickhouse-1-macros.xml:/etc/clickhouse-server/config.d/03-macros.xml
|
||||
- ./clickhouse-users:/etc/clickhouse-server/users.d
|
||||
ports:
|
||||
- "${CLICKHOUSE_1_PORT:-8123}:8123"
|
||||
@ -137,11 +138,11 @@ services:
|
||||
- sensus-network
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
#test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8123/ping"]
|
||||
test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8123/ping"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
# ClickHouse - вторая реплика
|
||||
clickhouse-2:
|
||||
@ -156,6 +157,7 @@ services:
|
||||
volumes:
|
||||
- clickhouse-2-data:/var/lib/clickhouse
|
||||
- ./clickhouse-config:/etc/clickhouse-server/config.d
|
||||
- ./clickhouse-config/03-clickhouse-2-macros.xml:/etc/clickhouse-server/config.d/03-macros.xml
|
||||
- ./clickhouse-users:/etc/clickhouse-server/users.d
|
||||
ports:
|
||||
- "${CLICKHOUSE_2_PORT:-8124}:8123"
|
||||
@ -164,11 +166,11 @@ services:
|
||||
- sensus-network
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
#test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8123/ping"]
|
||||
test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8123/ping"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
# Nginx балансировщик нагрузки для ClickHouse
|
||||
clickhouse-lb:
|
||||
@ -187,11 +189,6 @@ services:
|
||||
networks:
|
||||
- sensus-network
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
|
||||
volumes:
|
||||
|
@ -151,7 +151,6 @@ http {
|
||||
# TCP балансировка для ClickHouse Native протокола
|
||||
stream {
|
||||
# Логирование для stream
|
||||
access_log /var/log/nginx/stream_access.log;
|
||||
error_log /var/log/nginx/stream_error.log;
|
||||
|
||||
# Upstream для ClickHouse Native протокола
|
||||
|
Loading…
x
Reference in New Issue
Block a user