diff --git a/Makefile b/Makefile index 5a1962f..2547bba 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,12 @@ SHELL := /bin/bash PROJECT_NAME := sensus-infra COMPOSE_FILE := docker-compose.yml +# Загрузка переменных из .env файла +ifneq (,$(wildcard ./.env)) + include .env + export +endif + .PHONY: help setup up down restart status logs clean ps .PHONY: kafka-topics kafka-create-topic kafka-ui postgres-cli clickhouse-cli .PHONY: health-check backup restore ssl-generate ssl-clean ssl-info @@ -163,7 +169,7 @@ logs: ## Показать логи всех сервисов health-check: ## Проверить здоровье сервисов @echo "🏥 Проверка здоровья сервисов..." @echo "Zookeeper:" - @docker exec sensus-zookeeper bash -c "echo 'ruok' | nc localhost 2181" || echo "❌ Zookeeper недоступен" + @docker exec sensus-zookeeper bash -c "echo 'ruok' | timeout 5 nc -w 1 localhost 2181" && echo "✅ Zookeeper доступен" || echo "❌ Zookeeper недоступен" @echo "Kafka:" @docker exec sensus-kafka kafka-broker-api-versions --bootstrap-server localhost:9092 >/dev/null 2>&1 && echo "✅ Kafka доступен" || echo "❌ Kafka недоступен" @echo "PostgreSQL:" @@ -189,24 +195,24 @@ kafka-topics: ## Показать список топиков Kafka kafka-create-topic: ## Создать топик Kafka с настройкой ретеншна @echo "📝 Создание топика Kafka..." - @if [ -z "$$KAFKA_TOPIC" ]; then \ + @if [ -z "$(KAFKA_TOPIC)" ]; then \ echo "❌ Переменная KAFKA_TOPIC не задана в .env файле"; \ exit 1; \ fi - @if [ -z "$$KAFKA_TOPIC_RETENTION_HOURS" ]; then \ + @if [ -z "$(KAFKA_TOPIC_RETENTION_HOURS)" ]; then \ echo "❌ Переменная KAFKA_TOPIC_RETENTION_HOURS не задана в .env файле"; \ exit 1; \ fi - @echo "🔧 Создание топика: $$KAFKA_TOPIC с ретеншном: $$KAFKA_TOPIC_RETENTION_HOURS часов" + @echo "🔧 Создание топика: $(KAFKA_TOPIC) с ретеншном: $(KAFKA_TOPIC_RETENTION_HOURS) часов" @docker exec sensus-kafka kafka-topics \ --bootstrap-server localhost:9092 \ --create \ - --topic $$KAFKA_TOPIC \ - --partitions $$KAFKA_NUM_PARTITIONS \ - --replication-factor $$KAFKA_DEFAULT_REPLICATION_FACTOR \ - --config retention.ms=$$(($$KAFKA_TOPIC_RETENTION_HOURS * 3600000)) \ + --topic $(KAFKA_TOPIC) \ + --partitions $(KAFKA_NUM_PARTITIONS) \ + --replication-factor $(KAFKA_DEFAULT_REPLICATION_FACTOR) \ + --config retention.ms=$$(($(KAFKA_TOPIC_RETENTION_HOURS) * 3600000)) \ --if-not-exists || echo "⚠️ Топик уже существует или произошла ошибка" - @echo "✅ Топик $$KAFKA_TOPIC создан с ретеншном $$KAFKA_TOPIC_RETENTION_HOURS часов" + @echo "✅ Топик $(KAFKA_TOPIC) создан с ретеншном $(KAFKA_TOPIC_RETENTION_HOURS) часов" kafka-ui: ## Открыть Kafka UI в браузере @echo "🌐 Kafka UI доступен по адресу: http://localhost:8080"