--- name: log-analyzer description: > Analiza logs de servicios para encontrar errores, patrones y anomalias. Usa esta skill cuando el usuario pida revisar logs, buscar errores en un servicio, diagnosticar problemas, o entender que paso en un periodo de tiempo. Funciona con journalctl, archivos de log, y logs de Docker. --- # Analisis de logs ## Prerequisitos - Tool `ssh_command` habilitada (para logs remotos) - Acceso al servidor donde estan los logs ## Flujo ### 1. Identificar fuente de logs Preguntar o inferir del contexto: - **Servicio**: nombre del servicio o contenedor - **Periodo**: rango de tiempo a analizar (default: ultima hora) - **Servidor**: host donde corren los logs - **Tipo**: systemd (journalctl), archivo (/var/log/...), o Docker ### 2. Obtener logs Segun el tipo de fuente: **Systemd (journalctl):** ```bash ssh_command: "journalctl -u --since '' --no-pager" ``` **Archivo de log:** ```bash ssh_command: "tail -n 500 /var/log//.log" # o con filtro de tiempo: ssh_command: "awk '/2024-01-15 14:00/,/2024-01-15 15:00/' /var/log/.log" ``` **Docker:** ```bash ssh_command: "docker logs --since 2>&1 | tail -500" ``` ### 3. Analisis Buscar en los logs: - **Errores**: lineas con ERROR, FATAL, panic, exception, traceback - **Warnings**: lineas con WARN, warning - **Patrones repetitivos**: errores que se repiten (agrupar por tipo) - **Timestamps**: cuando empezaron los problemas - **Correlaciones**: errores que ocurren juntos o en secuencia ### 4. Reporte Presentar al usuario: 1. **Resumen**: estado general (saludable / con problemas / critico) 2. **Errores encontrados**: listado agrupado por tipo con conteo 3. **Timeline**: cuando empezaron y si siguen ocurriendo 4. **Causa probable**: si se puede inferir del contexto 5. **Recomendacion**: accion sugerida (restart, fix config, escalar, etc.) ## Tips - Si los logs son muy extensos, obtener primero un conteo de errores y luego los detalles de los mas frecuentes - Usar `grep -c` para contar antes de traer lineas completas - Para logs grandes, usar `tail` o rangos de tiempo acotados