Cando teñas algún problema co rendemento do teu servidor, o primeiro que queres facer é facelo verifique os seus rexistros de Linux. No rexistro do sistema, podes atopar algunhas mensaxes de diagnóstico útiles de diferentes compoñentes do sistema operativo como o núcleo ou varios servizos, polo que é 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 systemd-journald. Van coa maioría dos paquetes de distribución modernos e funcionan de forma independente.
rsyslog
Os rexistros deste servizo atópanse en "/ var / log /" cartafol en forma de ficheiros de texto comúns. As mensaxes de rexistro colócanse en ficheiros diferentes 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 diferir entre os paquetes de distribución, así que imos dar unha ollada ao ficheiro de configuración para facernos 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 formulario "[Fonte].[Prioridade]" e a parte dereita mostra o nome do ficheiro de rexistro. Mentres se escribe o tipo de mensaxe "*Pódese engadir o carácter ". Significa un valor baleiro ou "ningún” que o 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 en "/var/log/auth.log". Todos os intentos de autorización (tanto exitosos como non) rexistraranse neste ficheiro. A segunda regra indica que todas as mensaxes, excepto as relacionadas coa autorización, rexistraranse en "/ var / log / syslog". Estes dous ficheiros adoitan ser os máis populares. As seguintes regras definen o camiño para almacenar os rexistros do núcleo "kern.*" e rexistros do servizo de correo "correo.*"
Os ficheiros de rexistro pódense abrir coa axuda de calquera editor de texto, como menos, gato, cola. Imos abrir o "/var/log/auth.log” arquivo
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
Imos abrir o / var / log / syslog arquivo
Unha mensaxe destacada na captura de pantalla é a mensaxe sobre o peche da interface de rede.
Para buscar información a través de ficheiros de texto longos use grep utilidade. Podes atopar todas as mensaxes recibidas de pptpd servizo no "/ var / log / syslog” arquivo.
grep 'pptpd' /var/log/syslog
Durante o diagnóstico pode usar cola utilidade que pode mostrar varias últimas liñas de ficheiros. Comando "tail -f / var / log / syslog” permitirache ver rexistros gravados en tempo real.
O servizo rsyslog é moi flexible e potente. Pódese usar para recoller rexistros en sistemas locais, así como a nivel empresarial. Podes atopar a documentación completa no sitio web oficial https://www.rsyslog.com/
Rotación de rexistros en Linux
A gravación do rexistro está a suceder continuamente, polo que o tamaño dos ficheiros crece 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 eliminar ou enviar por correo electrónico. A rotación dos rexistros realízase por acadado utilidade. Podes atopar a configuración principal en "/etc/logrotate.conf". O contido dos ficheiros tamén se procesa en "/etc/logrotate.d/”Cartafol
Pódense rexistrar novas regras 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 regras de rotación para rexistros do rsyslog servizo.
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 "/ var / log /" cartafol hai o rexistro principal "syslog” e 7 arquivos, o que se corresponde coas regras do ficheiro de configuración.
Podes atopar unha descrición máis detallada de logrotate no manual, executando o "home logrotate” comando
Recopilación de rexistros de Linux - journald
Servizo de recolección de troncos systemd-journald forma parte do sistema de inicialización systemd. Os ficheiros de rexistro de Linux gárdanse en "/var/log/journal/” nun formato especial e pódese abrir coa axuda de diarioctl utilidade. O formato dos rexistros é exactamente o mesmo que en rsyslog.
Mando diarioctl sen atributos mostra todos os rexistros pero non é adecuado 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 mellor flexibilidade, pode combinar estas opcións. Imos mostrar todos os erros do pptpd servizo
journalctl -u pptpd -p err
Se especifica a ruta do ficheiro executable como atributo, a utilidade mostrará todas as mensaxes enviadas por este ficheiro. Imos mostrar todas as mensaxes enviadas polo ficheiro "/usr/bin/sudo” dende as 04:15 do 18 de febreiro de 2020. De feito, mostrará todos os comandos executados con permisos superiores.
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 vexamos algúns ficheiros especiais no "/ var / log /” cartafol 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 intentos de inicio de sesión exitosos. Use a última utilidade para abrilo.
/var/log/btmp - contén todos os intentos fallidos de inicio de sesión. Pódese abrir con lastb con permisos avanzados. 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 de conta. Pódese abrir con último rexistro