108.2 Registro del sistema - Ejercicios

Pregunta 1

En rsyslog, que significa la regla mail.=warning /var/log/mail.warn?

a) Registra todos los mensajes de la facility mail con prioridad warning y superiores b) Registra solo los mensajes de la facility mail con prioridad exacta warning c) Registra todos los mensajes excepto los de prioridad warning d) Registra los mensajes de todas las facilities con prioridad warning

Respuesta

b) Registra solo los mensajes de la facility mail con prioridad exacta warning

El operador = antes de la prioridad indica que solo se registra esa prioridad exacta. Sin el operador =, la regla mail.warning registraria la prioridad warning y todas las superiores (err, crit, alert, emerg). Los operadores de prioridad en syslog son: sin operador (esa y superiores), = (solo esa exacta), ! (excepto esa y superiores), y none (excluir la facility).


Pregunta 2

Cual es el orden correcto de las prioridades de syslog, de mayor a menor severidad?

a) debug, info, notice, warning, err, crit, alert, emerg b) emerg, alert, crit, err, warning, notice, info, debug c) emerg, crit, alert, err, warning, notice, info, debug d) alert, emerg, crit, err, warning, notice, info, debug

Respuesta

b) emerg, alert, crit, err, warning, notice, info, debug

Las 8 prioridades de syslog en orden de mayor a menor severidad son: emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), debug (7). Una regla mnemotecnica util es: “Every Alley Cat Eats Wet Noodles In December” (Emerg, Alert, Crit, Err, Warning, Notice, Info, Debug).


Pregunta 3

Que comando envia un mensaje personalizado a syslog con facility local0 y prioridad info desde un script bash?

a) syslog -p local0.info "Mensaje" b) logger -p local0.info -t miscript "Mensaje" c) journalctl --send "local0.info" "Mensaje" d) rsyslog -f local0 -p info "Mensaje"

Respuesta

b) logger -p local0.info -t miscript "Mensaje"

El comando logger se utiliza para generar mensajes syslog desde la linea de comandos o scripts. La opcion -p especifica la facility y prioridad en formato facility.priority, y -t agrega una etiqueta (tag) al mensaje. Los comandos syslog, rsyslog y journalctl --send no existen con esa sintaxis.


Pregunta 4

Cual es la diferencia entre /var/log/wtmp y /var/log/btmp?

a) wtmp registra los intentos fallidos y btmp los logins exitosos b) wtmp registra los logins exitosos y btmp los intentos de login fallidos c) Ambos registran la misma informacion pero en formato diferente d) wtmp es para el sistema y btmp es para las aplicaciones

Respuesta

b) wtmp registra los logins exitosos y btmp los intentos de login fallidos

/var/log/wtmp registra los logins exitosos del sistema y se lee con el comando last. /var/log/btmp registra los intentos de login fallidos y se lee con el comando lastb (requiere permisos de root). Ambos son archivos binarios que no se pueden leer directamente con cat o less; se necesitan los comandos especializados last y lastb respectivamente.


Pregunta 5

En la configuracion de rsyslog, que diferencia hay entre *.* @192.168.1.100:514 y *.* @@192.168.1.100:514?

a) @ envia por TCP y @@ envia por UDP b) @ envia por UDP y @@ envia por TCP c) @ envia en texto plano y @@ envia cifrado con TLS d) No hay diferencia, ambas envian por TCP

Respuesta

b) @ envia por UDP y @@ envia por TCP

En rsyslog, un solo @ indica envio de logs al servidor remoto usando UDP, mientras que doble @@ indica envio usando TCP. Una regla mnemotecnica es: @ = UDP (un arroba, un protocolo simple), @@ = TCP (dos arrobas, protocolo con mas garantias). TCP es mas fiable porque garantiza la entrega, pero genera mas overhead. UDP es mas rapido pero puede perder mensajes.


Pregunta 6

Que comando de journalctl muestra los logs del servicio sshd desde hace 2 horas con prioridad error o superior?

a) journalctl --service sshd --since "2h" --level err b) journalctl -u sshd --since "2 hours ago" -p err c) journalctl -f sshd -t "2 hours" -p error d) journalctl --unit=sshd --time=2h --priority=3

Respuesta

b) journalctl -u sshd --since "2 hours ago" -p err

En journalctl, la opcion -u filtra por unidad de servicio systemd, --since especifica el tiempo de inicio (acepta formatos como “2 hours ago”, “yesterday”, o fechas absolutas), y -p filtra por prioridad (la prioridad indicada y todas las superiores). La prioridad err incluye err, crit, alert y emerg.


Pregunta 7

Como se limita el espacio en disco del journal de systemd a un maximo de 200MB de forma permanente?

a) Ejecutando journalctl --vacuum-size=200M b) Configurando SystemMaxUse=200M en /etc/systemd/journald.conf c) Editando MaxDiskUsage=200M en /etc/rsyslog.conf d) Ejecutando systemctl set-property systemd-journald MaxSize=200M

Respuesta

b) Configurando SystemMaxUse=200M en /etc/systemd/journald.conf

Para limitar de forma permanente el espacio del journal, se configura la directiva SystemMaxUse=200M en la seccion [Journal] de /etc/systemd/journald.conf, seguido de un reinicio del servicio con systemctl restart systemd-journald. La opcion A (journalctl --vacuum-size=200M) realiza una limpieza inmediata pero no establece un limite permanente. Las opciones C y D no son sintaxis validas.


Pregunta 8

En logrotate, que hace la directiva copytruncate?

a) Copia el archivo rotado y lo comprime inmediatamente b) Copia el contenido al archivo rotado y trunca el original a cero c) Crea una copia de seguridad antes de eliminar el archivo d) Trunca el archivo sin hacer copia

Respuesta

b) Copia el contenido al archivo rotado y trunca el original a cero

La directiva copytruncate copia el contenido del archivo de log al archivo rotado y luego trunca el archivo original a cero bytes. Esto es util para aplicaciones que mantienen el archivo abierto y no pueden ser senalizadas para reabrir el archivo (ya que el descriptor de archivo sigue apuntando al mismo inodo). Sin copytruncate, logrotate mueve el archivo y crea uno nuevo, lo cual requiere que la aplicacion reabra el archivo.


Pregunta 9

Que valor de Storage en /etc/systemd/journald.conf hace que el journal sea persistente creando automaticamente el directorio si no existe?

a) Storage=auto b) Storage=persistent c) Storage=volatile d) Storage=permanent

Respuesta

b) Storage=persistent

Con Storage=persistent, el journal almacena los logs de forma persistente en /var/log/journal/ y crea el directorio automaticamente si no existe. Con Storage=auto (valor por defecto), el almacenamiento es persistente solo si el directorio /var/log/journal/ ya existe; si no existe, los logs se guardan de forma volatil en /run/log/journal/. Storage=volatile almacena solo en RAM y Storage=permanent no es un valor valido.


Pregunta 10

Cual de los siguientes comandos muestra los mensajes del buffer del anillo del kernel con marcas de tiempo legibles?

a) dmesg -H b) dmesg -T c) dmesg -l d) dmesg -c

Respuesta

b) dmesg -T

La opcion -T de dmesg muestra las marcas de tiempo en formato legible para humanos (fecha y hora completas) en lugar de los segundos desde el arranque del sistema. La opcion -H muestra el formato legible para humanos (human-readable) con paginacion. La opcion -l filtra por nivel de severidad (por ejemplo, dmesg -l err). La opcion -c muestra los mensajes y limpia el buffer.


Pregunta 11

Que comando de journalctl muestra los logs del arranque anterior al actual?

a) journalctl -b 0 b) journalctl -b -1 c) journalctl --previous-boot d) journalctl -k -1

Respuesta

b) journalctl -b -1

journalctl -b -1 muestra los logs del arranque anterior al actual. La opcion -b sin argumento o -b 0 muestra los logs del arranque actual. -b -2 mostraria los del arranque anterior al anterior, y asi sucesivamente. Para ver la lista de arranques disponibles se usa journalctl --list-boots. Esta funcionalidad requiere que el journal sea persistente (almacenado en /var/log/journal/); con almacenamiento volatil solo se dispone del arranque actual.


Pregunta 12

Que regla de rsyslog registra todos los mensajes de prioridad info o superior, EXCEPTO los de la facility mail?

a) *.info;mail.none /var/log/messages b) *.info;!mail /var/log/messages c) *.info -mail /var/log/messages d) info.*;mail.exclude /var/log/messages

Respuesta

a) *.info;mail.none /var/log/messages

La regla *.info;mail.none /var/log/messages registra todos los mensajes (*) con prioridad info o superior, excepto los de la facility mail (indicado por .none). El punto y coma ; separa multiples selectores en una misma regla. El modificador .none excluye completamente una facility. Se pueden excluir multiples facilities: *.info;mail.none;cron.none /var/log/messages.


Pregunta 13

Donde almacena journald los logs de forma volatil (se pierden al reiniciar)?

a) /var/log/journal/ b) /run/log/journal/ c) /tmp/journal/ d) /var/log/syslog

Respuesta

b) /run/log/journal/

Cuando el journal de systemd esta configurado como volatil (o cuando Storage=auto y no existe /var/log/journal/), los logs se almacenan en /run/log/journal/. El directorio /run/ es un sistema de archivos en RAM (tmpfs), por lo que su contenido se pierde al reiniciar el sistema. Para almacenamiento persistente se usa /var/log/journal/. Con Storage=persistent en /etc/systemd/journald.conf, journald crea automaticamente el directorio /var/log/journal/ si no existe.


Pregunta 14

Que opcion de journalctl permite seguir los logs en tiempo real, similar a tail -f?

a) journalctl -t b) journalctl -r c) journalctl -f d) journalctl --live

Respuesta

c) journalctl -f

journalctl -f (follow) muestra las ultimas entradas del journal y sigue mostrando las nuevas entradas en tiempo real, de forma similar a tail -f en archivos de log tradicionales. Se puede combinar con otros filtros: journalctl -f -u sshd sigue los logs del servicio sshd en tiempo real, o journalctl -f -p err sigue solo los mensajes con prioridad error o superior. La opcion -r muestra los logs en orden inverso (mas recientes primero).


Pregunta 15

Que facility de syslog se usa para mensajes del kernel?

a) daemon b) kern c) syslog d) system

Respuesta

b) kern

La facility kern se usa para mensajes del kernel de Linux. Otras facilities importantes son: auth/authpriv (autenticacion y seguridad), cron (servicio cron), daemon (demonios del sistema), mail (sistema de correo), user (aplicaciones de usuario), lpr (sistema de impresion), syslog (mensajes internos del propio syslog), y local0 a local7 (8 facilities para uso personalizado). La facility system no existe en syslog.


Pregunta 16

Que directiva de logrotate evita rotar un archivo si esta vacio?

a) missingok b) notifempty c) noempty d) skipempty

Respuesta

b) notifempty

La directiva notifempty de logrotate indica que no se debe rotar el archivo si esta vacio, evitando crear archivos rotados innecesarios. missingok indica que no se genere un error si el archivo de log no existe. Otras directivas comunes: compress (comprimir archivos rotados), delaycompress (comprimir en la siguiente rotacion), copytruncate (copiar y truncar en vez de mover), y dateext (usar fecha como extension).


Pregunta 17

Que comando reduce el tamano del journal de systemd eliminando las entradas mas antiguas de 2 semanas?

a) journalctl --vacuum-size=2weeks b) journalctl --vacuum-time=2weeks c) journalctl --clean --older-than=2w d) systemctl clean journald --time=2weeks

Respuesta

b) journalctl --vacuum-time=2weeks

journalctl --vacuum-time=2weeks elimina las entradas del journal que tienen mas de 2 semanas de antiguedad. Para limitar por tamano se usa --vacuum-size=100M (reduce a un maximo de 100 MB). Estos comandos realizan una limpieza puntual. Para establecer limites permanentes se configuran las directivas SystemMaxUse, SystemMaxFileSize y MaxRetentionSec en /etc/systemd/journald.conf. Para ver el espacio usado: journalctl --disk-usage.


Pregunta 18

Que configuracion en syslog-ng define un objeto de tipo filtro?

a) source s_local { ... }; b) destination d_auth { ... }; c) filter f_auth { ... }; d) log { ... };

Respuesta

c) filter f_auth { ... };

En syslog-ng, la configuracion se basa en cuatro tipos de objetos: source (define de donde se reciben los mensajes), destination (define donde se envian), filter (define criterios de filtrado como facility y prioridad), y log (conecta source, filter y destination). Un filtro tipico seria: filter f_auth { facility(auth, authpriv); };. La configuracion se encuentra en /etc/syslog-ng/syslog-ng.conf.


Pregunta 19

Que comando de journalctl muestra solo los mensajes del kernel, de forma similar a dmesg?

a) journalctl -u kernel b) journalctl -k c) journalctl --kernel-only d) journalctl -f kern

Respuesta

b) journalctl -k

journalctl -k muestra solo los mensajes del kernel, de forma equivalente a dmesg. Se puede combinar con otras opciones: journalctl -k -b -1 muestra los mensajes del kernel del arranque anterior, y journalctl -k -p err muestra solo los mensajes del kernel con prioridad error o superior. A diferencia de dmesg, que muestra el buffer del anillo del kernel actual, journalctl -k puede acceder a mensajes del kernel de arranques anteriores si el journal es persistente.


Pregunta 20

Que significa el prefijo - antes de un archivo de destino en una regla de rsyslog, como en *.*;auth.none -/var/log/syslog?

a) Que el archivo se crea si no existe b) Que la escritura es asincrona (no se fuerza un sync despues de cada mensaje) c) Que el archivo se trunca antes de escribir d) Que los mensajes se escriben en orden inverso

Respuesta

b) Que la escritura es asincrona (no se fuerza un sync despues de cada mensaje)

El prefijo - antes de la ruta de un archivo en rsyslog indica escritura asincrona: no se fuerza un sync() al disco despues de cada mensaje escrito. Esto mejora el rendimiento significativamente, especialmente en sistemas con alto volumen de logs, pero implica un riesgo minimo de perder algunos mensajes si el sistema se apaga abruptamente. Sin el prefijo -, rsyslog fuerza un sync despues de cada escritura, lo que es mas seguro pero mas lento.


Pregunta 21

Escribe el comando para ver los logs del servicio nginx usando journalctl.

Respuesta

journalctl -u nginx

El comando journalctl -u nginx filtra y muestra solo los logs de la unidad de servicio nginx de systemd. La opcion -u (unit) acepta el nombre del servicio con o sin el sufijo .service. Se puede combinar con otras opciones: -f para seguimiento en tiempo real, -p err para filtrar por prioridad, --since "1 hour ago" para limitar por tiempo, y -n 50 para mostrar solo las ultimas 50 entradas.


Pregunta 22

Escribe el comando para enviar un mensaje de prueba a syslog con la etiqueta mibackup y prioridad local0.info.

Respuesta

logger -p local0.info -t mibackup

El comando logger genera mensajes syslog desde la linea de comandos o scripts. La opcion -p especifica la facility y prioridad en formato facility.priority, y -t establece una etiqueta (tag) para identificar el origen del mensaje. El texto del mensaje se puede pasar como argumento: logger -p local0.info -t mibackup "Backup completado". Es una herramienta esencial para registrar eventos en scripts de administracion.


Pregunta 23

Escribe el comando para ver las ultimas 20 entradas del journal de systemd sin paginador.

Respuesta

journalctl -n 20 —no-pager

El comando journalctl -n 20 --no-pager muestra las ultimas 20 entradas del journal sin usar un paginador (como less), enviando la salida directamente a stdout. La opcion -n (lines) limita el numero de entradas mostradas. --no-pager es util en scripts o cuando se quiere procesar la salida con otros comandos. Sin -n, journalctl muestra todas las entradas desde el inicio del journal.


Pregunta 24

Escribe el comando para forzar la ejecucion de logrotate en modo debug (simulacion sin ejecutar).

Respuesta

logrotate -d /etc/logrotate.conf

El comando logrotate -d /etc/logrotate.conf ejecuta logrotate en modo debug, simulando la rotacion sin realizar ningun cambio real. Es util para verificar que la configuracion es correcta antes de aplicarla. Para forzar una rotacion real: logrotate -f /etc/logrotate.conf. Para ejecutar normalmente: logrotate /etc/logrotate.conf. Logrotate se ejecuta tipicamente mediante cron de forma diaria.


Pregunta 25

Escribe el comando para ver el espacio en disco utilizado por el journal de systemd.

Respuesta

journalctl —disk-usage

El comando journalctl --disk-usage muestra el espacio en disco total utilizado por los archivos del journal de systemd. Es util para monitorear el crecimiento del journal y decidir si es necesario realizar una limpieza con journalctl --vacuum-size=TAMANO o journalctl --vacuum-time=TIEMPO. Para limitar permanentemente el tamano, se configura SystemMaxUse en /etc/systemd/journald.conf.