Saltar al contenido

¿Cómo limito el tamaño de mi syslog?

Este artículo fue evaluado por expertos así aseguramos la exactitud de este post.

Solución:

Debe averiguar qué está causando la gran cantidad de mensajes, ya que si soluciona este problema, entonces arreglará el gran archivo de registro.

Sin embargo, hasta entonces, puede colocar una base de rotación de registros en uno de los siguientes.

  • hora (por ejemplo, rotar todos los días)
  • Talla (por ejemplo, rotar cuando el archivo alcance los 10 MB)

Esto ya estará configurado en el sistema de forma predeterminada: /etc/logrotate.d/rsyslog

 /var/log/syslog

A partir de esto, puede ver que rotará el archivo /var/log/syslog a diario y mantener 7 copias del archivo girado.

Puede cambiar esto para rotar en un límite de tamaño, digamos 1 mb o reducir la cantidad de copias que almacena.

Advertencia: esto no solucionará la causa raíz de su problemasin embargo, le dará algo de tiempo, ya que evitará que el sistema de archivos se llene.

  • Fuente: /etc/logrotate.d/rsyslog
  • Fuente: hombre logrotate

Limitar el tamaño de logrotate

Abre el /etc/logrotate.d/rsyslog archivo de configuración

sudo nano /etc/logrotate.d/rsyslog

El archivo parece algo. me gusta

/var/log/syslog

    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript

....
...

Añadir, por ejemplo size 100k en paréntesis. Después debería verse como:

/var/log/syslog

    rotate 7
    size 100k
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript

Tenga en cuenta que esto limita el tamaño de archivo de los archivos giratorios y no el archivo syslog real. Guarda el archivo. La próxima vez que se inicie el trabajo logrotate chron, limitará el tamaño de los registros rotados.

Limitar el tamaño del syslog actual

Para limitar el tamaño de /var/log/syslogtienes que editar el /etc/rsyslog.d/50-default.confy establezca un tamaño de registro fijo.

Agregue o modifique esta configuración, cambiando la siguiente línea en /etc/rsyslog.d/50-default.conf:

.*;auth,authpriv.none       -/var/log/syslog

Aquí un extracto del manual de rsyslog:

Canales de salida se definen mediante una directiva $outchannel. Su sintaxis es la siguiente:

$outchannel name,file-name,max-size,action-on-max-size

name es el nombre del canal de salida (no el archivo), file-name es el nombre del archivo en el que se escribirá, max-size el tamaño máximo permitido y action-on-max-size un comando que se emitirá cuando el tamaño máximo es alcanzado. Este comando siempre tiene exactamente un parámetro. El binario es esa parte de action-on-max-size antes del primer espacio, su parámetro es todo lo que está detrás de ese espacio. Tenga en cuenta que se consulta el tamaño máximo ANTES de escribir el mensaje de registro en el archivo. Así que asegúrese de establecer este límite razonablemente bajo para que cualquier mensaje pueda caber. Para la versión actual, es útil configurarlo 1k más bajo de lo que esperaba. El tamaño máximo siempre debe especificarse en bytes; no hay símbolos especiales (como 1k, 1m,…) en este punto de desarrollo. Tenga en cuenta que $outchannel solo define un canal con “nombre”. No lo activa. Para ello, debe utilizar una línea de selección (ver más abajo). Esa línea de selección incluye el nombre del canal más un signo de $ al frente. Una muestra podría ser: . :omfile:$mychannel En su forma actual, los canales de salida brindan principalmente la capacidad de limitar el tamaño de un archivo de salida. Para ello, especifique un tamaño máximo. Cuando se alcance este tamaño, rsyslogd ejecutará el comando action-on-max-size y luego volverá a abrir el archivo y volverá a intentarlo. El comando debe ser algo así como un script de rotación de registros o algo similar.

Si no hay un comando action-on-max-size o el comando no resolvió la situación, rsyslogd cierra el archivo y nunca lo vuelve a abrir (excepto, por supuesto, huping). Esta lógica se integró cuando experimentamos problemas graves por primera vez con archivos de más de 2 gb, lo que podría llevar a que rsyslogd volcara el núcleo. En tales casos, es más apropiado dejar de escribir en un solo archivo. Mientras tanto, rsyslogd se ha corregido para admitir archivos de más de 2 gb, pero obviamente solo en los sistemas de archivos y las versiones del sistema operativo que lo hacen. Por lo tanto, aún puede tener sentido imponer un límite de tamaño de archivo de 2 gb.

Aquí el tamaño máximo es de 1 MB, coloque esta línea antes de la *.*; ... línea

$outchannel mysyslog,/var/log/syslog,1048576

y cambiar el *.*; ... línea en

*.*;auth,authpriv.none  :omfile:$mysyslog

Reinicie rsyslogd ether con

sudo systemctl restart  rsyslog.service

o

sudo service rsyslog restart

Para ver el tipo de estado de rsyslog

systemctl status rsyslog.service  

Sección de Reseñas y Valoraciones

Ten en cuenta mostrar este post si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *