Cuando enfrenta algún problema con el rendimiento de su servidor, lo primero que debe hacer es revisa tus registros de LinuxEn el registro del sistema, encontrará mensajes de diagnóstico útiles de diferentes componentes del sistema operativo, como el kernel o varios servicios, por lo que probablemente encontrará la causa del fallo allí.
Cada mensaje del registro se genera como resultado de ciertos eventos en el sistema operativo: desde el usuario y la autorización hasta el cierre de un servicio o un fallo de la aplicación. Estos eventos tienen diferentes prioridades según su gravedad. Existen los siguientes tipos de eventos en Linux:
emerg- fallo, máxima prioridad;alert- advertencia urgente;crit- evento crítico;err- error ordinario;warn- advertencia ordinaria;notice- notificación;info- mensaje informativo;debug- información de depuración;
En este momento, los principales servicios de recolección de registros en Linux son rsyslog y diario-systemdSe adaptan a la mayoría de los paquetes de distribución modernos y funcionan de forma independiente.
rsyslog
Los registros de este servicio se encuentran en “/ var / log /Carpeta " en forma de archivos de texto comunes. Los mensajes de registro se guardan en diferentes archivos según el tipo de evento. Por ejemplo, "/var/log/auth.log" contiene información sobre la autorización de los usuarios en el sistema, y "/var/log/kern.log" contiene mensajes del kernel. Los nombres de los archivos pueden variar según la distribución, así que revisemos el archivo de configuración para tener una idea de dónde se encuentra. "/etc/rsyslog.d/50-default.conf.
Estas reglas muestran qué archivo contiene cada tipo de mensaje de registro. La parte izquierda muestra el tipo de mensaje con el siguiente formato:[Fuente].[Prioridad]" y la parte derecha muestra el nombre del archivo de registro. Al escribir el tipo de mensaje "*Se puede añadir el carácter "". Significa valor vacío o "ninguna" que lo elimina de la lista. Analicemos con más detalle las dos primeras reglas.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
La primera regla significa que todos los mensajes recibidos del mecanismo de autorización se registrarán en “/var/log/auth.logTodos los intentos de autorización (tanto exitosos como fallidos) se registrarán en este archivo. La segunda regla indica que todos los mensajes, excepto los relacionados con la autorización, se registrarán en "/ var / log / syslogEstos dos archivos suelen ser los más populares. Las siguientes reglas definen la ruta para almacenar los registros del kernel.núcleo.*" y registros del servicio de correo "correo.*"
Los archivos de registro se pueden abrir con la ayuda de cualquier editor de texto, como less, gato, colaAbramos el “/var/log/auth.log" expediente
less /var/log/auth.log
Cada línea del archivo es un mensaje independiente recibido de la aplicación o servicio. Todos los mensajes, independientemente de su origen, tienen un formato único y constan de cinco partes. Tomemos como ejemplo el mensaje resaltado en la captura de pantalla.
- Marca de tiempo del mensaje: “12 de febrero, 06:18:33”
- Nombre de la computadora que envió el mensaje - “vds”
- Nombre de la aplicación o servicio que envió el mensaje - “sshd”
- ID de proceso - [653]
- Texto del mensaje: “Contraseña aceptada para Mihail desde 188.19.42.165, puerto 2849 ssh2”
Este fue un ejemplo de una conexión exitosa a SSH.
Y así es como se ve un intento de inicio de sesión fallido:
Este archivo también registra comandos con permisos avanzados.
Abramos el / var / log / syslog presentar
Un mensaje resaltado en la captura de pantalla es el mensaje sobre el apagado de la interfaz de red.
Para buscar información a través de archivos de texto largos, utilice grep utilidad. Puede encontrar todos los mensajes recibidos de pptpd servicio en el “/ var / log / syslog" expediente.
grep 'pptpd' /var/log/syslog
Durante el diagnóstico se puede utilizar: cola Utilidad que puede mostrar las últimas líneas de varios archivos. Comando "tail -f / var / log / syslog” le permitirá ver la grabación de registros en tiempo real.
El servicio rsyslog Es muy flexible y potente. Puede utilizarse para recopilar registros tanto en sistemas locales como a nivel empresarial. Puede encontrar la documentación completa en el sitio web oficial. https://www.rsyslog.com/
Rotación de registros en Linux
La grabación de registros se realiza continuamente, por lo que el tamaño de los archivos crece constantemente. El mecanismo de rotación garantiza el archivado automático de registros antiguos y la creación de nuevos archivos. Según las reglas, puede ser diaria, semanal, mensual o por límite de tamaño. A medida que se crean nuevos registros, los antiguos pueden eliminarse o enviarse por correo electrónico. La rotación de registros se realiza mediante logrotate utilidad. Puede encontrar la configuración principal en “/etc/logrotate.conf" archivo. El contenido de los archivos también se procesa en "/etc/logrotate.d/"carpeta
Las nuevas reglas se pueden registrar en el archivo de configuración principal. Sin embargo, es mejor crear un archivo aparte en "/etc/logrotate.d/”. De forma predeterminada, hay algunos archivos en este directorio
Echemos un vistazo al archivo “/etc/logrotate.d/rsyslog" que contiene reglas de rotación para los registros de la rsyslog .
En primer lugar, la regla debe contener la ruta al archivo de registro y luego ir todas las pautas entre corchetes.
- rotar 7 - Número de archivos a conservar: 7
- todos los días - crear un nuevo archivo cada día
- comprimir - comprimir y archivar archivos antiguos
Puedes ver en la captura de pantalla que en el “/ var / log /“En la carpeta se encuentra el registro principal”syslog” y 7 archivos, lo que corresponde con las reglas en el archivo de configuración.
Puede encontrar una descripción más detallada de logrotate en el manual, ejecutando el comando “hombre logrotate"Comando
Recopilación de registros de Linux - journald
Servicio de recolección de troncos diario-systemd es parte del sistema de inicialización sistemadLos archivos de registro de Linux se almacenan en “/var/log/diario/” en un formato especial y se puede abrir con la ayuda de journalctl utilidad. El formato de los registros es exactamente el mismo que en rsyslog.
Comando journalctl Sin atributos, se muestran todos los registros, pero no es adecuado para registros grandes. Veamos algunas opciones de esta utilidad.
journalctl -b- mostrar todos los registros desde el último iniciojournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- mostrar registro dentro de un período de tiempo determinadojournalctl -u pptpd- mostrar registros de un determinado serviciojournalctl -k- mostrar mensajes del kerneljournalctl -p err- mostrar mensajes de cierta prioridad, mensajes de mayor prioridad en este caso (crítico, alerta, emergencia)journalctl -f- mostrar mensajes en tiempo real
Para mayor flexibilidad, puedes combinar estas opciones. Mostremos todos los errores de pptpd TRANSPORTE GRATUITO
journalctl -u pptpd -p err
Si especifica la ruta del archivo ejecutable como atributo, la utilidad mostrará todos los mensajes enviados por este archivo. Vamos a mostrar todos los mensajes enviados por el archivo "/ usr / bin / sudo" desde las 04:15 del 18 de febrero de 2020. De hecho, mostrará todos los comandos ejecutados con permisos superiores.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Para saber cuánto espacio en disco ocupan los archivos de registro, ejecute el siguiente comando
journalctl --disk-usage
Para limitar el archivo de registro a 1 Gb, ejecute el siguiente comando
journalctl --vacuum-size=1G
Abrir archivos binarios
Ahora echemos un vistazo a algunos archivos especiales en el “/ var / log /Carpeta donde se almacenan todos los intentos de inicio de sesión. Estos archivos son binarios y solo se pueden abrir con programas especiales.
/ var / log / wtmp Contiene información sobre intentos de inicio de sesión exitosos. Use la última utilidad para abrirlo.
/ var / log / btmp Contiene todos los intentos fallidos de inicio de sesión. Se puede abrir con lastb con permisos avanzados. Atributo -n Define el número de líneas que se muestran desde el final del archivo.
/ var / log / lastlog Contiene la hora del último inicio de sesión de cada registro de cuenta. Se puede abrir con ultimo registro