Cando teñas algún problema co rendemento do teu servidor, o primeiro que debes facer é comprobar os rexistros de Linux . No rexistro do sistema, podes atopar algunhas mensaxes de diagnóstico útiles de diferentes compoñentes do sistema operativo, como o kernel ou varios servizos, polo que o máis probable é que atopes alí a causa do fallo.
Cada mensaxe do rexistro xérase como resultado de certos eventos no sistema operativo: do usuario, autorización para o peche do servizo ou fallo da aplicación. Estes eventos teñen diferentes prioridades dependendo da súa importancia. Hai os seguintes tipos de eventos en Linux:
emerg- fracaso, máxima prioridade;alert- aviso urxente;crit- suceso crítico;err- erro común;warn- aviso ordinario;notice- notificación;info- mensaxe de información;debug- información de depuración;
Polo momento, os principais servizos de recollida de rexistros en Linux son rsyslog e systemd-journald . Vén coa maioría dos paquetes de distribución modernos e funcionan de forma independente.
rsyslog
Os rexistros deste servizo atópanse no cartafol " /var/log/ " en forma de ficheiros de texto ordinarios. As mensaxes de rexistro gárdanse en diferentes ficheiros dependendo do tipo de evento. Por exemplo, " /var/log/auth.log " contén información sobre a autorización dos usuarios no sistema e " /var/log/kern.log " contén mensaxes do núcleo. Os nomes dos ficheiros poden variar entre os paquetes de distribución, polo que botemos unha ollada ao ficheiro de configuración para ter unha idea de onde está " /etc/rsyslog.d/50-default.conf ".
Estas regras mostran que ficheiro contén cada tipo de mensaxes de rexistro. A parte esquerda mostra o tipo de mensaxe no seguinte formato " [Orixe].[Prioridade] " e a parte dereita mostra o nome do ficheiro de rexistro. Ao escribir, pódese engadir o carácter " * ". Significa un valor baleiro ou " ningún ", o que a elimina da lista. Vexamos máis de cerca as dúas primeiras regras.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
A primeira regra significa que todas as mensaxes recibidas do mecanismo de autorización rexistraranse no ficheiro " /var/log/auth.log ". Todos os intentos de autorización (tanto os exitosos como os errados) rexistraranse neste ficheiro. A segunda regra indica que todas as mensaxes, excepto as relacionadas coa autorización, rexistraranse no ficheiro " /var/log/syslog ". Estes dous ficheiros adoitan ser os máis populares. As seguintes regras definen a ruta para almacenar os rexistros do núcleo " kern.* " e os rexistros do servizo de correo " mail.* ".
Os ficheiros de rexistro pódense abrir coa axuda de calquera editor de texto, como less , cat ou tail . Abramos o ficheiro " /var/log/auth.log ".
less /var/log/auth.log
Cada liña do ficheiro é unha mensaxe separada recibida da aplicación ou servizo. Todas as mensaxes, independentemente da súa orixe, teñen un formato e constan de 5 partes. Tomemos a mensaxe destacada na captura de pantalla como exemplo.
- Marca de tempo da mensaxe: "12 de febreiro ás 06:18:33"
- Nome do ordenador que enviou a mensaxe - "vds"
- Nome da aplicación ou servizo que enviou a mensaxe: "sshd"
- ID de proceso - [653]
- Texto da mensaxe: "Contrasinal aceptado para mihail do porto 188.19.42.165 ssh2849 2"
Este foi un exemplo dunha conexión exitosa a SSH.
E así é como se ve un intento de inicio de sesión non exitoso:
Este ficheiro tamén rexistra comandos con permisos avanzados
Abrimos o ficheiro /var/log/syslog
Unha mensaxe destacada na captura de pantalla é a mensaxe sobre o peche da interface de rede.
Para buscar información en ficheiros de texto longos, use a utilidade grep . Pode atopar todas as mensaxes recibidas do servizo pptpd no ficheiro " /var/log/syslog ".
grep 'pptpd' /var/log/syslog
Durante o diagnóstico podes usar a utilitade tail que pode mostrar varias liñas finais de ficheiros. O comando " tail -f /var/log/syslog " permitirache ver a gravación dos rexistros en tempo real.
O servizo rsyslog é moi flexible e potente. Pode usarse para recoller rexistros tanto en sistemas locais como a nivel empresarial. Podes atopar a documentación completa no sitio web oficial https://www.rsyslog.com/
Rotación de rexistros en Linux
O rexistro de rexistros realízase de forma continua, polo que o tamaño dos ficheiros medra constantemente. O mecanismo de rotación garante o arquivo automático dos rexistros antigos e a creación de novos ficheiros. Dependendo das regras, pode ocorrer diariamente, semanalmente, mensualmente ou por límite de tamaño. A medida que se crean novos rexistros, os antigos pódense simplemente eliminar ou enviar por correo electrónico. A rotación dos rexistros realízase coa utilidade logrotate . Podes atopar a configuración principal no ficheiro " /etc/logrotate.conf ". O contido dos ficheiros tamén se procesa no cartafol " /etc/logrotate.d/ ".
As novas regras pódense rexistrar no ficheiro de configuración principal. Non obstante, é mellor crear un ficheiro separado en " /etc/logrotate.d/ ". Por defecto, hai algúns ficheiros neste directorio.
Vexamos o ficheiro " /etc/logrotate.d/rsyslog " que contén as regras de rotación para os rexistros do servizo rsyslog.
En primeiro lugar, a regra debe conter o camiño ao ficheiro de rexistro e despois ir todas as pautas entre corchetes.
- xirar 7 - número de ficheiros a manter - 7
- diario - crea un ficheiro novo todos os días
- comprimir - comprimir e arquivar ficheiros antigos
Podes ver na captura de pantalla que no cartafol " /var/log/ " están o rexistro principal " syslog " e 7 arquivos, que se corresponden coas regras do ficheiro de configuración.
Podes atopar unha descrición máis detallada de logrotate no manual, executando o comando " man logrotate ".
Recopilación de rexistros de Linux - journald
O servizo de recollida de rexistros systemd-journald forma parte do sistema de inicialización systemd . Os ficheiros de rexistro de Linux almacénanse en " /var/log/journal/ " nun formato especial e pódense abrir coa axuda da utilidade journalctl . O formato dos rexistros é exactamente o mesmo que en rsyslog.
O comando journalctl sen atributos mostra todos os rexistros, pero non é axeitado para rexistros máis grandes. Vexamos algunhas opcións desta utilidade.
journalctl -b- mostrar todos os rexistros desde o último iniciojournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- Mostrar o rexistro nun período de tempo determinadojournalctl -u pptpd- mostrar rexistros dun determinado servizojournalctl -k- mostrar mensaxes do núcleojournalctl -p err- mostrar mensaxes de certa prioridade, mensaxes de maior prioridade neste caso (crito, alerta, emerg)journalctl -f- mostrar mensaxes en tempo real
Para unha maior flexibilidade, podes combinar estas opcións. Mostraremos todos os erros do servizo pptpd
journalctl -u pptpd -p err
Se especificas a ruta ao ficheiro executábel como atributo, a utilidade mostrará todas as mensaxes enviadas por este ficheiro. Imos mostrar todas as mensaxes enviadas polo ficheiro " /usr/bin/sudo " desde as 04:15 do 18 de febreiro de 2020. De feito, mostrará todos os comandos executados con permisos máis altos.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Para saber canto espazo en disco ocupan os ficheiros de rexistro para executar o seguinte comando
journalctl --disk-usage
Para limitar o ficheiro de rexistro a 1 Gb, execute o seguinte comando
journalctl --vacuum-size=1G
Apertura de ficheiros binarios
Agora botemos unha ollada a algúns ficheiros especiais no cartafol " /var/log/ " onde se almacenan todos os intentos de inicio de sesión. Estes ficheiros son binarios e só se poden abrir con programas especiais.
/var/log/wtmp contén información sobre os intentos de inicio de sesión satisfactorios. Usa a utilidade last para abrilo.
/var/log/btmp - contén todos os intentos de inicio de sesión fallidos. Pódese abrir con lastb con permisos avanzados. O atributo -n define o número de liñas que se mostran desde o final do ficheiro.
/var/log/lastlog - contén a hora da última acción de inicio de sesión para cada rexistro da conta. Pódese abrir con lastlog