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/syslog
tienes que editar el /etc/rsyslog.d/50-default.conf
y 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.