diff --git a/config/tempo/tempo.yaml b/config/tempo/tempo.yaml index bede4c8..907abce 100644 --- a/config/tempo/tempo.yaml +++ b/config/tempo/tempo.yaml @@ -22,9 +22,9 @@ storage: trace: backend: local local: - path: /tmp/tempo/traces + path: /var/tempo/traces wal: - path: /tmp/tempo/wal + path: /var/tempo/wal pool: max_workers: 100 queue_depth: 10000 diff --git a/docker-compose.yml b/docker-compose.yml index d0fa16a..94e0097 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,7 +41,7 @@ services: - "3200:3200" # Solo puerto de consulta, sin endpoints de recepción volumes: - ./config/tempo/tempo.yaml:/etc/tempo/tempo.yaml - - tempo_data:/tmp/tempo + - tempo_data:/var/tempo command: - -config.file=/etc/tempo/tempo.yaml networks: diff --git a/init.sh b/init.sh deleted file mode 100755 index 42f3945..0000000 --- a/init.sh +++ /dev/null @@ -1,159 +0,0 @@ -#!/bin/bash - -# Script de inicialización para Suite de Monitoreo -# Configura permisos y estructura de directorios para Prometheus, Loki, Tempo y Grafana - -set -e # Salir si hay errores - -echo "🚀 Iniciando configuración de Suite de Monitoreo..." - -# Colores para output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -# Función para imprimir mensajes -print_status() { - echo -e "${BLUE}[INFO]${NC} $1" -} - -print_success() { - echo -e "${GREEN}[ÉXITO]${NC} $1" -} - -print_warning() { - echo -e "${YELLOW}[ADVERTENCIA]${NC} $1" -} - -print_error() { - echo -e "${RED}[ERROR]${NC} $1" -} - -# Verificar que estamos en el directorio correcto -if [ ! -f "docker-compose.yml" ]; then - print_error "No se encontró docker-compose.yml. Ejecuta este script desde el directorio del proyecto." - exit 1 -fi - -# Parar contenedores existentes si están corriendo -print_status "Parando contenedores existentes..." -docker-compose down 2>/dev/null || true - -# Eliminar directorio data existente -if [ -d "data" ]; then - print_status "Eliminando directorio data existente..." - rm -rf data/ - print_success "Directorio data eliminado" -fi - -# Crear estructura de directorios -print_status "Creando estructura de directorios..." -mkdir -p data/{prometheus,loki,tempo,grafana} - -# Crear subdirectorios específicos necesarios -mkdir -p data/loki/{chunks,wal,rules} -mkdir -p data/tempo/traces -mkdir -p data/prometheus/{data,wal} -mkdir -p data/grafana/{data,logs,plugins} - -print_success "Estructura de directorios creada" - -# Configurar permisos -print_status "Configurando permisos..." - -# Dar permisos amplios temporalmente para permitir que los contenedores configuren sus propios permisos -chmod -R 777 data/ - -print_success "Permisos configurados" - -# Verificar que Docker esté disponible -if ! command -v docker &> /dev/null; then - print_error "Docker no está instalado o no está en el PATH" - exit 1 -fi - -if ! command -v docker-compose &> /dev/null; then - print_error "Docker Compose no está instalado o no está en el PATH" - exit 1 -fi - -# Verificar que Docker esté corriendo -if ! docker info &> /dev/null; then - print_error "Docker no está corriendo. Inicia Docker e intenta de nuevo." - exit 1 -fi - -# Iniciar servicios -print_status "Iniciando servicios..." -docker-compose up -d - -print_success "Servicios iniciados" - -# Esperar a que los servicios estén listos -print_status "Esperando a que los servicios estén listos..." -sleep 5 - -# Verificar estado de los servicios -print_status "Verificando estado de los servicios..." - -# Función para verificar si un servicio está saludable -check_service() { - local service_name=$1 - local port=$2 - local container_name=$3 - - if docker ps | grep -q "$container_name.*Up"; then - print_success "$service_name está ejecutándose correctamente" - return 0 - else - print_warning "$service_name podría tener problemas" - echo "Logs de $service_name:" - docker logs "$container_name" --tail 5 - return 1 - fi -} - -# Verificar cada servicio -check_service "Prometheus" "9090" "prometheus" -check_service "Loki" "3100" "loki" -check_service "Tempo" "3200" "tempo" -check_service "Grafana" "3500" "grafana" -check_service "Alloy" "12345" "alloy" - -echo "" -echo "🎉 ¡Configuración completada!" -echo "" -echo -e "${GREEN}Servicios disponibles:${NC}" -echo -e " 📊 Grafana Dashboard: ${BLUE}http://localhost:3500${NC} (admin/admin123)" -echo -e " 📈 Prometheus: ${BLUE}http://localhost:9090${NC}" -echo -e " 📋 Loki: ${BLUE}http://localhost:3100${NC}" -echo -e " 🔍 Tempo: ${BLUE}http://localhost:3200${NC}" -echo -e " 🤖 Alloy UI: ${BLUE}http://localhost:12345${NC}" -echo "" -echo -e "${GREEN}🚪 Alloy - Única puerta de entrada para datos:${NC}" -echo -e "${YELLOW}📊 Envío de métricas:${NC}" -echo -e " • Remote Write: ${BLUE}http://localhost:9999/api/v1/write${NC}" -echo -e " • Prometheus compatible: ${BLUE}http://localhost:9999/metrics${NC}" -echo "" -echo -e "${YELLOW}📋 Envío de logs:${NC}" -echo -e " • HTTP API: ${BLUE}http://localhost:3101/loki/api/v1/push${NC}" -echo -e " • Syslog TCP: ${BLUE}localhost:1514${NC}" -echo "" -echo -e "${YELLOW}🔍 Envío de trazas:${NC}" -echo -e " • OTLP gRPC: ${BLUE}http://localhost:4317${NC}" -echo -e " • OTLP HTTP: ${BLUE}http://localhost:4318/v1/traces${NC}" -echo -e " • Jaeger gRPC: ${BLUE}localhost:14250${NC}" -echo -e " • Jaeger HTTP: ${BLUE}http://localhost:14268/api/traces${NC}" -echo -e " • Jaeger UDP: ${BLUE}localhost:6831${NC}" -echo -e " • Zipkin: ${BLUE}http://localhost:9411/api/v2/spans${NC}" -echo "" -echo -e "${YELLOW}Comandos útiles:${NC}" -echo -e " Ver logs: ${BLUE}docker-compose logs [servicio]${NC}" -echo -e " Parar servicios: ${BLUE}docker-compose down${NC}" -echo -e " Reiniciar servicios: ${BLUE}docker-compose restart${NC}" -echo -e " Estado de servicios: ${BLUE}docker-compose ps${NC}" -echo "" -echo -e "${GREEN}✨ Configuración centralizada: Alloy recolecta todo y distribuye a Prometheus, Loki y Tempo${NC}" -echo "" \ No newline at end of file