feat: integrate Uptime Kuma and Alertmanager into Docker setup
- Add Uptime Kuma service for status monitoring with health checks. - Introduce Alertmanager service for alert management and notifications. - Update docker-compose.yml to include new services and their configurations. - Enhance Makefile with commands for managing Uptime Kuma and Alertmanager logs. - Modify Ansible playbook to install necessary packages and configure SSL for new services. - Update Nginx configuration to route traffic to Uptime Kuma and Alertmanager. - Adjust Prometheus configuration to include alert rules and external URLs.
This commit is contained in:
53
Makefile
53
Makefile
@@ -9,6 +9,8 @@ help: ## Показать справку
|
||||
@echo "📊 Мониторинг:"
|
||||
@echo " Prometheus: http://localhost:9090"
|
||||
@echo " Grafana: http://localhost:3000 (admin/admin)"
|
||||
@echo " Uptime Kuma: http://localhost:3001"
|
||||
@echo " Alertmanager: http://localhost:9093"
|
||||
@echo " Server Monitor: http://localhost:9091/health"
|
||||
@echo " Bot Health: http://localhost:8080/health"
|
||||
@echo " AnonBot Health: http://localhost:8081/health"
|
||||
@@ -37,6 +39,12 @@ logs-bot: ## Показать логи Telegram бота
|
||||
logs-anonBot: ## Показать логи AnonBot
|
||||
docker-compose logs -f anon-bot
|
||||
|
||||
logs-uptime-kuma: ## Показать логи Uptime Kuma
|
||||
docker-compose logs -f uptime-kuma
|
||||
|
||||
logs-alertmanager: ## Показать логи Alertmanager
|
||||
docker-compose logs -f alertmanager
|
||||
|
||||
restart: ## Перезапустить все сервисы
|
||||
docker-compose down
|
||||
docker-compose build --no-cache
|
||||
@@ -54,6 +62,12 @@ restart-bot: ## Перезапустить только Telegram бота
|
||||
restart-anonBot: ## Перезапустить только AnonBot
|
||||
docker-compose restart anon-bot
|
||||
|
||||
restart-uptime-kuma: ## Перезапустить только Uptime Kuma
|
||||
docker-compose restart uptime-kuma
|
||||
|
||||
restart-alertmanager: ## Перезапустить только Alertmanager
|
||||
docker-compose restart alertmanager
|
||||
|
||||
status: ## Показать статус контейнеров
|
||||
docker-compose ps
|
||||
|
||||
@@ -63,6 +77,8 @@ health: ## Проверить здоровье сервисов
|
||||
@curl -f http://localhost:8081/health || echo "❌ AnonBot health check failed"
|
||||
@curl -f http://localhost:9090/-/healthy || echo "❌ Prometheus health check failed"
|
||||
@curl -f http://localhost:3000/api/health || echo "❌ Grafana health check failed"
|
||||
@curl -f http://localhost:3001 || echo "❌ Uptime Kuma health check failed"
|
||||
@curl -f http://localhost:9093/-/healthy || echo "❌ Alertmanager health check failed"
|
||||
@curl -f http://localhost:9091/health || echo "❌ Server monitor health check failed"
|
||||
|
||||
deploy: ## Полный деплой на продакшен
|
||||
@@ -120,6 +136,8 @@ start: build up ## Собрать и запустить все сервисы
|
||||
@echo "🏗️ Production Infrastructure запущена!"
|
||||
@echo "📊 Prometheus: http://localhost:9090"
|
||||
@echo "📈 Grafana: http://localhost:3000 (admin/admin)"
|
||||
@echo "📊 Uptime Kuma: http://localhost:3001"
|
||||
@echo "🚨 Alertmanager: http://localhost:9093"
|
||||
@echo "🤖 Bot Health: http://localhost:8080/health"
|
||||
@echo "🔒 AnonBot Health: http://localhost:8081/health"
|
||||
@echo "📡 Server Monitor: http://localhost:9091/health"
|
||||
@@ -191,6 +209,7 @@ test-clean: ## Очистить все файлы тестирования и о
|
||||
@find . -name "*.pyc" -delete 2>/dev/null || true
|
||||
@find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true
|
||||
@echo "✅ Файлы тестирования очищены"
|
||||
|
||||
|
||||
check-ports: ## Проверить занятые порты
|
||||
@echo "🔍 Checking occupied ports..."
|
||||
@@ -242,3 +261,37 @@ reload-prometheus: ## Перезагрузить конфигурацию Promet
|
||||
reload-grafana: ## Перезагрузить конфигурацию Grafana
|
||||
@echo "🔄 Reloading Grafana configuration..."
|
||||
@docker-compose restart grafana
|
||||
|
||||
ssl-setup: ## Настроить SSL сертификаты (самоподписанный)
|
||||
@echo "🔒 Setting up self-signed SSL certificates..."
|
||||
@if [ -z "$(SERVER_IP)" ]; then echo "❌ Please set SERVER_IP variable in .env file"; exit 1; fi
|
||||
@mkdir -p /etc/letsencrypt/live/$(SERVER_IP)
|
||||
@openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
|
||||
-keyout /etc/letsencrypt/live/$(SERVER_IP)/privkey.pem \
|
||||
-out /etc/letsencrypt/live/$(SERVER_IP)/fullchain.pem \
|
||||
-subj "/CN=$(SERVER_IP)"
|
||||
@echo "✅ Self-signed certificate created for $(SERVER_IP)"
|
||||
|
||||
ssl-renew: ## Обновить SSL сертификаты
|
||||
@echo "🔄 Renewing SSL certificates..."
|
||||
@sudo /usr/local/bin/ssl-renewal.sh
|
||||
|
||||
ssl-status: ## Проверить статус SSL сертификатов
|
||||
@echo "🔍 Checking SSL certificate status..."
|
||||
@sudo certbot certificates
|
||||
|
||||
uptime-kuma: ## Открыть Uptime Kuma в браузере
|
||||
@echo "📊 Opening Uptime Kuma..."
|
||||
@open http://localhost:3001 || xdg-open http://localhost:3001 || echo "Please open manually: http://localhost:3001"
|
||||
|
||||
alertmanager: ## Открыть Alertmanager в браузере
|
||||
@echo "🚨 Opening Alertmanager..."
|
||||
@open http://localhost:9093 || xdg-open http://localhost:9093 || echo "Please open manually: http://localhost:9093"
|
||||
|
||||
monitoring-all: ## Открыть все мониторинг сервисы
|
||||
@echo "📊 Opening all monitoring services..."
|
||||
@echo " - Grafana: http://localhost:3000"
|
||||
@echo " - Prometheus: http://localhost:9090"
|
||||
@echo " - Uptime Kuma: http://localhost:3001"
|
||||
@echo " - Alertmanager: http://localhost:9093"
|
||||
@open http://localhost:3000 || xdg-open http://localhost:3000 || echo "Please open manually"
|
||||
|
||||
Reference in New Issue
Block a user