--- name: log-analyzer description: > Analiza logs de servicios buscando patrones de errores, warnings y anomalias. Genera un resumen estructurado con metricas, errores frecuentes y recomendaciones. --- # Log Analyzer Skill Esta skill analiza logs de servicios y genera reportes estructurados con hallazgos y recomendaciones. ## Casos de uso - Analizar logs de un servicio que esta fallando - Buscar patrones de errores recurrentes - Generar metricas de salud de un servicio - Detectar anomalias en logs ## Proceso de analisis ### 1. Obtener los logs Opciones: - Via SSH: `ssh_command` con `journalctl` o `tail` - Via HTTP: `http_get` si el servicio expone logs via API - Desde archivo local: `file_read` (si el agente tiene la tool) Ejemplo con journalctl: ```bash journalctl -u --since "1 hour ago" -n 1000 ``` ### 2. Parsear los logs Identifica el formato de logs: - JSON estructurado - Formato de systemd - Logs planos con timestamp Extrae campos clave: - Timestamp - Nivel de log (ERROR, WARN, INFO, DEBUG) - Mensaje - Stack traces (si aplica) ### 3. Analizar patrones Busca: - Errores recurrentes (agrupa por mensaje similar) - Picos de actividad (timeframes con muchos logs) - Errores criticos (FATAL, PANIC, segfaults) - Timeouts y connection errors - Excepciones no manejadas ### 4. Generar metricas Calcula: - Total de lineas analizadas - Conteo por nivel (ERROR, WARN, INFO) - Top 10 errores mas frecuentes - Timeline de errores (distribucion temporal) - Rate de errores (errores por minuto) ### 5. Generar reporte Formato del reporte: ```markdown ## Log Analysis Report **Service**: **Period**: - **Total lines**: ### Metrics - Errors: (%) - Warnings: (%) - Info: (%) - Error rate: errors/min ### Top Errors 1. ( occurrences) 2. ( occurrences) ... ### Critical Issues - - ### Recommendations - - ``` ## Parametros requeridos - `source`: "ssh", "http", o "file" - `service_name`: nombre del servicio (si source=ssh) - `host`: servidor (si source=ssh) - `log_url`: URL de logs (si source=http) - `file_path`: ruta al archivo (si source=file) - `timeframe`: "1 hour", "24 hours", "7 days", etc. Parametros opcionales: - `filter`: patron regex para filtrar lineas - `max_lines`: limite de lineas a analizar (default: 10000) - `output_format`: "markdown" o "json" ## Ejemplo de uso Usuario: "Analiza los logs de myapp en prod-server-01 de la ultima hora" Agente: 1. skill_search("analyze logs") 2. skill_load("log-analyzer") 3. ssh_command para obtener logs via journalctl 4. Parsear y analizar logs 5. Generar reporte markdown 6. Enviar reporte al usuario