Suponga que, además de los registros del servidor web Apache, nunca tuve contacto con ningún tipo de registros (profesionales) en ningún sistema operativo. Entonces, el registro, aunque entiendo algunos conceptos básicos, es un tema bastante nuevo. Por el momento, la inversión para aprender completamente sobre este tema parece ser bastante grande, pero aún no sé si vale la pena saber más que los conceptos más abstractos.
¿Qué recursos sugeriría si alguien en esa situación consume (tutoriales, páginas de manual, libros) para aprender sobre el registro?
¿Qué registros debe leer un usuario normal de Linux diariamente / mensualmente? ¿Es correcto incluso suponer que están escritos para la legibilidad humana o generalmente son evaluados y utilizados por otras herramientas?
¿Qué debe saber el usuario normal * nix y el desarrollador de software sobre estos registros?
¿Qué necesita saber sobre la rotación de registros, si no se espera que administre servidores web profesionales con una gran cantidad de eventos?
Respuestas:
[Esto se escribió unos años antes de la adopción generalizada de journald en los sistemas systemd y no se menciona. Actualmente (finales de 2018), tanto journald como (r) syslog, descritos a continuación, se usan en distribuciones como Debian. En otros, es posible que deba instalar rsyslog si desea usarlo junto, pero la integración con journald es sencilla.]
No discutiré mucho sobre el registro con respecto a ubuntu, ya que el tema está estandarizado para Linux en general (y creo que la mayoría o todo lo que tengo que decir también es cierto en general para cualquier sabor * nix, pero no toma mi palabra para eso). Tampoco diré mucho sobre "cómo leer registros" más allá de responder esta pregunta:
Supongo que eso depende de la aplicación, pero en general, al menos con respecto a lo que entra en syslog (ver más abajo), deberían ser legibles para los humanos. "Significativo para mí" es otro problema, jajaja. Sin embargo, también pueden estar estructurados de manera que sea más fácil analizarlos con herramientas estándar (grep, awk, etc.) para fines específicos.
En cualquier caso, primero, hay una distinción entre las aplicaciones que realizan su propio registro y las aplicaciones que utilizan el registrador del sistema. Apache por defecto es el primero, aunque se puede configurar para hacer el segundo (que creo que la mayoría de la gente consideraría indeseable). Las aplicaciones que realizan su propio registro podrían hacerlo de cualquier manera utilizando cualquier ubicación para los archivos, por lo que no hay mucho que decir al respecto. El registrador del sistema generalmente se conoce como
syslog
.syslog
"Syslog" es realmente un estándar que se implementa con un proceso de daemon genéricamente llamado syslogd (¡d es para daemon!). El demonio syslog predominante actualmente en uso en Linux, incluido ubuntu, es
rsyslogd
. Rsyslogd puede hacer mucho, pero tal como está configurado de fábrica en la mayoría de las distribuciones, emula un syslog tradicional, que clasifica las cosas en archivos de texto sin formato/var/log
. Puede encontrar documentación para ello en/usr/share/doc/rsyslog-doc-[version]
(cuidado, también hay un/usr/share/doc/rsyslog-[version]
, pero eso es solo avisos del paquete fuente comoNEWS
yChangeLog
). Si está allí, es html, pero Stack Exchange no permite incrustar enlaces de archivos locales:Entonces podrías intentar copiar pegar eso. Si no está allí, puede ser parte de un paquete separado que no está instalado. Consulte su sistema de embalaje (por ejemplo,
apt-cache search rsyslog | grep doc
).La configuración está en
/etc/rsyslog.conf
, que tiene una página de manualman rsyslog.conf
, aunque aunque la página de manual hace una buena referencia, puede ser menos penetrable como introducción. Afortunadamente, los fundamentos del stock rsyslog.conf se ajustan a los del syslog.conf tradicional, para el cual hay muchas presentaciones y tutoriales. Este , por ejemplo; lo que quiere quitar de eso, mientras mira en su rsyslog.conf local, es una comprensión de las instalaciones y prioridades ("prioridad" a veces se denomina nivel de registro), ya que son parte del estándar de syslog mencionado anteriormente. La razón por la cual este estándar es importante es porque rsyslog realmente obtiene sus cosas a través del núcleo, y lo que implementa el núcleo es el estándar.Con respecto a las
$
directivas en rsyslog.conf, estas son específicas de rsyslog y si instala ese paquete de documentos opcional encontrará una guía para ellasrsyslog_conf_global.html
.Diviértete ... si tienes curiosidad acerca de cómo las aplicaciones usan el registrador del sistema, mira
man logger
yman 3 syslog
.Rotación de registro
El medio normativo de los registros rotativos es a través de una herramienta llamada
logrotate
(y hay unaman logrotate
). El método normativo de usar logrotate es a través del demonio cron , aunque no tiene que hacerse de esa manera (por ejemplo, si tiende a apagar su escritorio todos los días, también puede hacerlo una vez en el arranque antes de que comience syslog , pero, obviamente, después de montar el sistema de archivos rw).Hay una buena introducción para iniciar sesión aquí . Tenga en cuenta que logrotate no es solo para cosas de syslog , sino que puede usarse con cualquier archivo. El archivo de configuración base es
/etc/logrotate.conf
, pero dado que la configuración tiene una directiva "incluir", comúnmente la mayoría de las cosas van a archivos individuales en el/etc/logrotate.d
directorio (aquí d es para el directorio, no para el demonio; logrotate no es un demonio).Una cosa importante a tener en cuenta al usar logrotate es cómo una aplicación volverá a actuar cuando su archivo de registro se "rote", es decir, se mueva , mientras la aplicación se está ejecutando. WRT (r) syslogd, simplemente dejará de escribir en ese registro (creo que hay una justificación de seguridad para esto). La forma habitual de lidiar con eso es decirle a syslog que se reinicie (y vuelva a abrir todos sus archivos), por lo que verá una
postrotate
directiva en logrotate conf files que envía SIGHUP al syslog daemon.fuente
syslog-ng
, habrá escrito todo lo que hay que decir sobre el registro de Linux. Excelente respuesta/etc/rsyslog.conf
. Por ejemplo: a menudo las cosas que están por encima de cierta prioridad entrarán/var/log/messages
, y las que están debajo de eso entrarán/var/log/notice
. También me gusta tener un registro que contenga todo, lo que hace que se superpongan doble y triple, pero si los mantiene rotados no es gran cosa.rsyslog
no es un envoltorio de demonioslogrotate
, ¿verdad? Porque ?