Skip to main content

Syslogd Linux y Comando Unix

LINUX Logger command (Abril 2025)

LINUX Logger command (Abril 2025)
Anonim

Sysklogd proporciona dos utilidades del sistema que brindan soporte para el registro del sistema y la captura de mensajes del kernel. El soporte de los sockets de dominio de Internet y Unix permite que este paquete de utilidades sea compatible con el registro local y remoto.

El registro del sistema es proporcionado por una versión desyslogd(8) Derivado de las fuentes de stock de BSD. El soporte para el registro del kernel es proporcionado porklogd(8) utilidad que permite que el registro del kernel se realice de forma independiente o como cliente de syslogd.

Syslogd proporciona un tipo de registro que utilizan muchos programas modernos. Cada mensaje registrado contiene al menos una hora y un campo de nombre de host, normalmente también un campo de nombre de programa, pero eso depende de cuán confiable sea el programa de registro.

Mientras que lasyslogd Las fuentes han sido fuertemente modificadas, un par de notas están en orden. En primer lugar, se ha realizado un intento sistemático para garantizar que syslogd siga su comportamiento predeterminado, BSD estándar. El segundo concepto importante a tener en cuenta es que esta versión de syslogd interactúa de manera transparente con la versión de syslog que se encuentra en las bibliotecas estándar. Si un binario vinculado a las bibliotecas compartidas estándar no funciona correctamente, nos gustaría ver un ejemplo del comportamiento anómalo.

El archivo de configuración principal. /etc/syslog.conf o un archivo alternativo, dado con el-F Opción, se lee al inicio. Se ignoran las líneas que comienzan con la marca de control (`` # '') y las líneas vacías. Si se produce un error durante el análisis, se ignora toda la línea.

Sinopsis

syslogd -una enchufe -re -F archivo de configuración -h -l lista de host -metro intervalo -norte -pag enchufe -r -s lista de dominios -v -X

Opciones

-una enchufe

Usando este argumento puedes especificar sockets adicionales de esesyslogd tiene que escuchar Esto es necesario si va a dejar que algún daemon se ejecute dentro de un entorno chroot (). Puede utilizar hasta 19 tomas adicionales. Si su entorno necesita aún más, tiene que aumentar el símbolo.MAXFUNIX dentro del archivo fuente syslogd.c. Las personas de OpenBSD describen un ejemplo para un daemon chroot () en http://www.psionic.com/papers/dns.html.

-re

Activa el modo de depuración. Usando esto el demonio no procederá atenedor(2) para establecerse en el fondo, pero opuesto a eso, permanecer en el primer plano y escribir mucha información de depuración en el tty actual. Vea la sección de DEBUGGING para más información.

-F archivo de configuración

Especifique un archivo de configuración alternativo en lugar de /etc/syslog.conf , que es el predeterminado.

-h

Por defecto, syslogd no reenviará los mensajes que recibe de los hosts remotos. La especificación de este interruptor en la línea de comandos hará que el daemon de registro reenvíe los mensajes remotos que reciba a los hosts de reenvío que se hayan definido.

-l lista de host

Especifique un nombre de host que se debe registrar solo con su nombre de host simple y no con fqdn. Se pueden especificar varios hosts utilizando el separador de dos puntos (``: '').

-metro intervalo

lossyslogd registra una marca de tiempo marca regularmente. El valor por defecto intervalo entre dos -- MARCA -- Las líneas son de 20 minutos. Esto se puede cambiar con esta opción. Configurando el intervalo a cero lo apaga por completo.

-norte

Evite el auto-fondo Esto es necesario especialmente si elsyslogd es iniciado y controlado poren eso(8).

-pag enchufe

Puede especificar un socket de dominio Unix alternativo en lugar de / dev / log .

-r

Esta opción permitirá a la instalación recibir un mensaje de la red utilizando un socket de dominio de Internet con el servicio de registro del sistema (ver (5)). El valor predeterminado es no recibir ningún mensaje de la red.

Esta opción se introduce en la versión 1.3 del paquete sysklogd. Tenga en cuenta que el comportamiento predeterminado es lo contrario a cómo se comportan las versiones anteriores, por lo que es posible que tenga que activarlo.

-s lista de dominios

Especifique un nombre de dominio que debe eliminarse antes de iniciar sesión. Se pueden especificar varios dominios utilizando el separador de dos puntos (``: ''). Tenga en cuenta que no se pueden especificar subdominios, sino solo dominios completos. Por ejemplo si-s north.de se especifica y el registro del host se resuelve en satu.infodrom.north.de no se cortaría ningún dominio, tendrá que especificar dos dominios como:-s north.de:infodrom.north.de.

-v

Imprimir la versión y salir.

-X

Deshabilita las búsquedas de nombres cuando recibas mensajes remotos. Esto evita puntos muertos cuando el servidor de nombres se ejecuta en la misma máquina que ejecuta el demonio syslog.

Señales

Syslogd Reacciona ante un conjunto de señales. Puede enviar fácilmente una señal asyslogd utilizando lo siguiente:

kill -SIGNAL `cat / var / run / syslogd.pid`

Suspiro

Esto permitesyslogd realizar una reinicialización. Todos los archivos abiertos se cierran, el archivo de configuración (por defecto es /etc/syslog.conf ) será releído y elsyslog(3) la instalación se inicia de nuevo.

Sigma

lossyslogd morirá.

SIGINT, SIGQUIT

Si la depuración está habilitada, se ignoran, de lo contrariosyslogd morirá.

SIGUSR1

Activa / desactiva la depuración. Esta opción solo puede ser usada sisyslogd se inicia con el-re opción de depuración.

SIGCHLD

Espere a que lleguen los niños si algunos nacieron, debido a los mensajes en la pared.

Diferencias de sintaxis del archivo de configuración

Syslogd utiliza una sintaxis ligeramente diferente para su archivo de configuración que las fuentes originales de BSD. Originalmente, todos los mensajes de una prioridad específica y superior se reenviaron al archivo de registro.

Por ejemplo, la siguiente línea causó que TODAS las salidas de los demonios que usan las instalaciones del demonio (depuración es la prioridad más baja, por lo tanto, cada superior también coincidan) / usr / adm / daemons :

# Ejemplo syslog.conf daemon.debug / usr / adm / daemons

Bajo el nuevo esquema, este comportamiento sigue siendo el mismo. La diferencia es la adición de cuatro nuevos especificadores, el asterisco (*) comodín, el signo de ecuación (=), el signo de exclamación (!), y el signo menos (-).

los* especifica que todos los mensajes para la instalación especificada deben dirigirse al destino. Tenga en cuenta que este comportamiento está degenerado al especificar un nivel de prioridad de depuración. Los usuarios han indicado que la notación de asterisco es más intuitiva.

los= el comodín se utiliza para restringir el registro a la clase de prioridad especificada. Esto permite, por ejemplo, enrutar solo los mensajes de depuración a un origen de registro particular.

Por ejemplo, la siguiente línea en syslog.conf dirigiría mensajes de depuración de todas las fuentes a la / usr / adm / debug expediente.

# Ejemplo de syslog.conf *. = Debug / usr / adm / debug

los! se utiliza para excluir el registro de las prioridades especificadas. Esto afecta a todas (!) Posibilidades de especificar prioridades.

Por ejemplo, las siguientes líneas registrarían todos los mensajes del correo de la instalación, excepto aquellos con la información de prioridad al / usr / adm / mail expediente. Y todos los mensajes de news.info (inclusive) a news.crit (excluyendo) se registrarán en el / usr / adm / news expediente.

# Muestra syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; news.! Crit / usr / adm / news

Puede usarlo intuitivamente como un especificador de excepción. La interpretación antes mencionada es simplemente invertida. Haciendo que puedas usar

mail.none

o

correo.!*

o

mail.! debug

para omitir todos los mensajes que vienen con un servicio de correo. Hay mucho espacio para jugar con él. :-)

los- solo se puede utilizar para prefijar un nombre de archivo si desea omitir la sincronización del archivo después de cada escritura.

Esto puede requerir cierta aclimatación para aquellos individuos acostumbrados al comportamiento BSD puro, pero los evaluadores han indicado que esta sintaxis es algo más flexible que el comportamiento BSD. Tenga en cuenta que estos cambios no deben afectar el estándarsyslog.conf(5) archivos. Debe modificar específicamente los archivos de configuración para obtener el comportamiento mejorado.

Soporte para el registro remoto

Estas modificaciones proporcionan soporte de red para la instalación syslogd. El soporte de red significa que los mensajes pueden reenviarse desde un nodo que ejecuta syslogd a otro nodo que ejecuta syslogd donde se registrarán realmente en un archivo de disco.

Para habilitar esto tienes que especificar el-r Opción en la línea de comando. El comportamiento por defecto es quesyslogd No escuchará la red.

La estrategia es hacer que syslogd escuche en un socket de dominio Unix para los mensajes de registro generados localmente. Este comportamiento permitirá a syslogd interoperar con el syslog que se encuentra en la biblioteca C estándar. Al mismo tiempo, syslogd escucha en el puerto de syslog estándar los mensajes reenviados desde otros hosts. Para que este trabajo funcione correctamenteservicios(5) archivos (típicamente encontrados en / etc ) debe tener la siguiente entrada:

syslog 514 / udp

Si esta entrada faltasyslogd ni puede recibir mensajes remotos ni enviarlos, porque el puerto UDP no se puede abrir. En lugar, syslogd Morirá inmediatamente, soplando un mensaje de error.

Para hacer que los mensajes se reenvíen a otro host, reemplace la línea de archivo normal en el syslog.conf archivo con el nombre del host al que se enviarán los mensajes ante una @.

Por ejemplo, para reenviar.TODOS mensajes a un host remoto utilizando el siguiente syslog.conf entrada:

# Ejemplo de archivo de configuración syslogd para # mensajes a un host remoto reenviar todos. *. * @hostname

Para reenviar todonúcleo los mensajes a un host remoto el archivo de configuración sería el siguiente:

# Archivo de configuración de muestra para reenviar todos los mensajes del kernel # a un host remoto. kern.

Si el nombre de host remoto no se puede resolver en el inicio, ya que el servidor de nombres puede no ser accesible (puede iniciarse después de syslogd), no tiene que preocuparse.Syslogd volverá a intentar resolver el nombre diez veces y luego se quejará. Otra posibilidad para evitar esto es colocar el nombre de host en / etc / hosts .

Con normalidadsyslogds obtendría bucles de syslog si envía mensajes que se recibieron de un host remoto al mismo host (o más complicado a un tercer host que lo envía de vuelta al primero, y así sucesivamente). En mi dominio (Infodrom Oldenburg) accidentalmente obtuvimos uno y nuestros discos se llenaron con el mismo mensaje. :-(

Para evitar esto en otras ocasiones, ya no se envían mensajes desde un host remoto a otro (o el mismo) host remoto. Si hay escenarios en los que esto no tiene sentido, escríbame (Joey) una línea.

Si el host remoto se encuentra en el mismo dominio que el host,syslogd se está ejecutando, solo se registrará el nombre de host simple en lugar de todo el fqdn.

En una red local, puede proporcionar un servidor de registro central para mantener toda la información importante en una máquina. Si la red se compone de diferentes dominios, no tiene que quejarse de registrar nombres completamente calificados en lugar de nombres de host simples. Es posible que desee utilizar la función strip-domain-s de este servidor. Puedes decirle alsyslogd para eliminar varios dominios distintos de aquel en el que se encuentra el servidor y solo registrar nombres de host simples.

Utilizando la-l opción también existe la posibilidad de definir hosts individuales como máquinas locales. Esto, también, da como resultado el registro de sus nombres de host simples y no los fqdns.

El socket UDP utilizado para reenviar mensajes a hosts remotos o para recibir mensajes de ellos solo se abre cuando es necesario. En versiones anteriores a 1.3-23, se abría cada vez, pero no se abría para leer o reenviar, respectivamente.

Salida a tuberías con nombre (FIFOs)

Esta versión de syslogd tiene soporte para registrar la salida en tuberías con nombre (fifos). Se puede usar un pipe fifo o con nombre como destino para los mensajes de registro al anteponer un símbolo pipy (`` | '') al nombre del archivo. Esto es útil para la depuración. Tenga en cuenta que el fifo debe crearse con el comando mkfifo antes de iniciar syslogd.

El siguiente archivo de configuración enruta los mensajes de depuración del kernel a un fifo:

# Configuración de ejemplo para enrutar los mensajes # de depuración del kernel SOLAMENTE a / usr / adm / debug que es un # canalización con nombre. kern. = debug | / usr / adm / debug

Problemas de instalación

Probablemente haya una consideración importante al instalar esta versión de syslogd. Esta versión de syslogd depende del formato correcto de los mensajes por parte de la función syslog. El funcionamiento de la función syslog en las bibliotecas compartidas cambió en algún lugar de la región de libc.so.4. 2-4 .n. El cambio específico fue anular el mensaje antes de transmitirlo a la / dev / log enchufe. El correcto funcionamiento de esta versión de syslogd depende de la terminación nula del mensaje.

Este problema normalmente se manifestará si se están utilizando en el sistema binarios vinculados estáticamente. Los binarios que utilizan versiones antiguas de la función syslog provocarán el registro de líneas vacías seguidas del mensaje con el primer carácter eliminado del mensaje. Volver a vincular estos binarios a versiones más nuevas de las bibliotecas compartidas corregirá este problema.

Ambossyslogd(8) y elklogd(8) puede ejecutarse desde init (8) o iniciarse como parte de la secuencia rc. *. Si se arranca desde init la opción. -norte debe configurarse, de lo contrario, obtendrás toneladas de demonios syslog iniciados. Esto es porqueen eso(8) depende de la ID del proceso.

Amenazas de seguridad

Existe la posibilidad de que el demonio syslogd se use como un conducto para un ataque de denegación de servicio. Gracias a John Morrison ([email protected]) por alertarme sobre este potencial. Un programa (mer) no autorizado podría inundar fácilmente el demonio syslogd con mensajes de syslog, lo que provocaría que los archivos de registro consumieran todo el espacio restante en el sistema de archivos. Por supuesto, la activación del registro en los sockets de dominio inet expondrá un sistema a riesgos fuera de los programas o individuos en la máquina local.

Existen varios métodos para proteger una máquina:

  1. Implemente el firewall del kernel para limitar qué hosts o redes tienen acceso al socket 514 / UDP.
  2. El registro puede dirigirse a un sistema de archivos aislado o no root que, si está lleno, no afectará a la máquina.
  3. Se puede usar el sistema de archivos ext2, que se puede configurar para limitar un cierto porcentaje de un sistema de archivos para que lo use solo la raíz.NOTA que esto requerirá que syslogd se ejecute como un proceso no root. TAMBIÉN NOTA esto evitará el uso del registro remoto ya que syslogd no podrá vincularse al socket 514 / UDP.
  4. La desactivación de los sockets de dominio inet limitará el riesgo para la máquina local.
  5. Use el paso 4 y, si el problema persiste y no es secundario a un programa / demonio deshonesto, obtenga una longitud de 3.5 pies (aprox. 1 metro) de vara succionadora * y converse con el usuario en cuestión. Varilla de bombeo def. --- 3/4, 7/8 o 1in. Varilla de acero endurecido, rosca macho en cada extremo. Uso primario en la industria petrolera en el oeste de Dakota del Norte y en otros lugares para bombear petróleo de los pozos de petróleo. Los usos secundarios son para la construcción de lotes de alimentación de ganado y para tratar con personas ocasionales recalcitrantes o beligerantes.

Depuración

Cuando la depuración está activada usando-re opción entoncessyslogd será muy detallado escribiendo mucho de lo que hace en la salida estándar. Cuando el archivo de configuración se vuelve a leer y se vuelve a analizar, verá una tabla que corresponde a la estructura de datos interna. Este tabular consta de cuatro campos:

número

Este campo contiene un número de serie que comienza por cero. Este número representa la posición en la estructura de datos interna (es decir, la matriz). Si se omite un número, puede haber un error en la línea correspondiente en /etc/syslog.conf .

modelo

Este campo es complicado y representa exactamente la estructura interna. Cada columna representa una instalación (refiérase asyslog(3)). Como puede ver, todavía hay algunas instalaciones que quedan libres para el uso anterior, solo se utilizan las más a la izquierda. Cada campo en una columna representa las prioridades (refiérase asyslog(3)).

acción

Este campo describe la acción particular que tiene lugar cada vez que se recibe un mensaje que coincide con el patrón. Referirse asyslog.conf(5) página de manual para todas las acciones posibles.

argumentos

Este campo muestra argumentos adicionales a las acciones en el último campo. Para el registro de archivos, este es el nombre de archivo para el archivo de registro; para el registro de usuarios esta es una lista de usuarios; para el registro remoto, este es el nombre de host de la máquina para iniciar sesión; para el registro de la consola esta es la consola usada; para tty-logging este es el tty especificado; El muro no tiene argumentos adicionales.

Ver también

registrador(1), syslog(2), (5)

Colaboradores

Syslogd Tomado de las fuentes de BSD, Greg Wettstein ([email protected]) realizó el puerto a Linux, Martin Schulze ([email protected]) corrigió algunos errores y agregó varias características nuevas.KlogdOriginalmente escrito por Steve Lord ([email protected]), Greg Wettstein realizó importantes mejoras.

Dr. Greg WettsteinDesarrollo de sistemas enjélicos

División de Investigación en Oncología. Instalaciones de computación.Roger Maris Cancer CenterFargo, ND[email protected]

Stephen TweedieDepartamento de Ciencias de la ComputaciónUniversidad de Edimburgo, Escocia[email protected]

Juha Virtanen[email protected]

Shane alderton[email protected]

Martin schulzeInfodrom Oldenburg[email protected]

Importante: Utilizar el hombre comando % hombre ) para ver cómo se usa un comando en su computadora en particular.

Artículos relacionados

  • sysklogd - Comando Linux - Comando Unix
  • rwall - que es rwa