Guía completa de comandos de troubleshooting de servidores
Guía detallada de los comandos esenciales para el troubleshooting de servidores, con especial atención al registro y al análisis de logs.
InSkillCoach
Guía completa de comandos de troubleshooting de servidores
Guía detallada de los comandos esenciales para el troubleshooting de servidores, con especial atención al registro de logs.
Comandos básicos para el registro de logs
1. Seguimiento de logs en tiempo real
# Seguimiento de los logs del sistema
tail -f /var/log/syslog
# Seguimiento de los logs de autenticación
tail -f /var/log/auth.log
# Seguimiento de los logs de Apache
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log
# Seguimiento de los logs de Nginx
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
# Seguimiento de los logs de MySQL
tail -f /var/log/mysql/error.log
2. Filtrado de logs
# Filtrado por error
grep "ERROR" /var/log/syslog
# Filtrado por fecha
grep "$(date +%Y-%m-%d)" /var/log/syslog
# Filtrado con contexto
grep -A 5 -B 5 "ERROR" /var/log/syslog
# Filtrado con exclusión
grep -v "INFO" /var/log/syslog
# Filtrado con recuento
grep -c "ERROR" /var/log/syslog
3. Análisis de logs
# Mostrar las últimas líneas
tail -n 100 /var/log/syslog
# Mostrar las primeras líneas
head -n 100 /var/log/syslog
# Mostrar con numeración
cat -n /var/log/syslog
# Mostrar con resaltado de color
grep --color=auto "ERROR" /var/log/syslog
# Mostrar con marca de tiempo
awk '{print $1, $2, $3}' /var/log/syslog
Comandos avanzados de registro de logs
1. Análisis de logs con Awk
# Recuento de errores por hora
awk '{print $3}' /var/log/syslog | grep "ERROR" | sort | uniq -c
# Extracción de las IP de los logs de Apache
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c
# Análisis de los códigos de estado HTTP
awk '{print $9}' /var/log/apache2/access.log | sort | uniq -c
# Tiempo de respuesta medio
awk '{sum+=$10} END {print sum/NR}' /var/log/apache2/access.log
2. Análisis de logs con Sed
# Eliminación de líneas vacías
sed '/^$/d' /var/log/syslog
# Sustitución de texto
sed 's/ERROR/ERREUR/g' /var/log/syslog
# Extracción de líneas concretas
sed -n '100,200p' /var/log/syslog
# Eliminación de las líneas que contienen una palabra
sed '/ERROR/d' /var/log/syslog
3. Análisis de logs con Perl
# Extracción de errores con contexto
perl -ne 'print if /ERROR/ .. /^$/;' /var/log/syslog
# Análisis de logs con regex
perl -ne 'print if /(ERROR|WARNING)/' /var/log/syslog
# Formateo de logs
perl -pe 's/(\d{4}-\d{2}-\d{2})/$1/g' /var/log/syslog
Comandos de monitorización del sistema
1. Supervisión de recursos
# Supervisión de CPU
top
htop
mpstat 1
# Supervisión de memoria
free -m
vmstat 1
# Supervisión de disco
df -h
iostat 1
# Supervisión de red
netstat -tulpn
iftop
2. Supervisión de procesos
# Lista de procesos
ps aux
# Árbol de procesos
pstree
# Detalles de los procesos
lsof -i
lsof -p <PID>
# Prioridad de los procesos
nice -n -20 <commande>
3. Supervisión de servicios
# Estado de los servicios
systemctl status <service>
# Logs de los servicios
journalctl -u <service>
# Seguimiento de logs en tiempo real
journalctl -u <service> -f
# Filtrado de logs por prioridad
journalctl -p err
Comandos de diagnóstico
1. Diagnóstico de red
# Prueba de conectividad
ping <host>
traceroute <host>
# Prueba de puertos
nc -zv <host> <port>
telnet <host> <port>
# Análisis de red
tcpdump -i eth0
wireshark
2. Diagnóstico del sistema
# Información del sistema
uname -a
lsb_release -a
# Información del hardware
lshw
dmidecode
# Información de red
ifconfig
ip addr
3. Diagnóstico de rendimiento
# Perfilado del sistema
strace <commande>
ltrace <commande>
# Análisis de rendimiento
perf top
perf record
# Análisis de memoria
valgrind <programme>
Buenas prácticas
-
Organización de los logs
- Rotación periódica de los logs
- Compresión de los logs antiguos
- Archivado de los logs importantes
-
Análisis de logs
- Implantación de filtros
- Creación de informes
- Supervisión proactiva
-
Mantenimiento
- Limpieza periódica
- Comprobación de los permisos
- Actualización de las configuraciones
Scripts útiles
1. Script de supervisión
#!/bin/bash
# Supervisión de los logs en tiempo real
tail -f /var/log/syslog | while read line; do
if echo "$line" | grep -q "ERROR"; then
echo "[$(date)] $line" >> /var/log/errors.log
fi
done
2. Script de análisis
#!/bin/bash
# Análisis de los logs de Apache
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -n 10
3. Script de mantenimiento
#!/bin/bash
# Rotación de logs
find /var/log -type f -name "*.log" -mtime +7 -exec gzip {} \;
Conclusión
El troubleshooting de servidores exige un buen dominio de los comandos de registro y análisis de logs. Esta guía abarca los comandos esenciales y las técnicas avanzadas para una gestión eficaz de los logs.
Recursos complementarios
Acerca de InSkillCoach
Experto en formación y tecnologías
Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.
Certificaciones:
- AWS Certified Solutions Architect – Professional
- Certificaciones de Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión