¿De quién son los registros de OpenVPN: del demonio, de rsyslog o de logrotate?
Un escritor, un rotador, una política de retención. Elija primero la ruta, nombre el demonio para un filtro estrecho y demuestre la reapertura con un solo archivo rotado.
La rotación de registros falla de una forma predecible: tres componentes creen ser dueños del archivo y el resultado es un registro rotado que sigue creciendo mientras el nuevo permanece vacío. El demonio mantiene un descriptor, logrotate renombra la ruta y rsyslog escribe en un lugar completamente distinto. Elija un escritor y un rotador antes de añadir otra regla a la pila. La lista de comprobación que sigue avanza en ese orden porque cada paso posterior depende de él.
Decida quién escribe el archivo
Hay dos diseños legítimos. En el primero, el proceso VPN escribe él mismo un archivo mediante su propia opción log o log-append. En el segundo, envía los registros al registro del sistema y rsyslog o journald decide dónde acaban.
Son alternativas, no capas. Un host que activa ambas acaba con dos archivos que no coinciden, y el que está leyendo suele ser el obsoleto. Elija la ruta a propósito y después elimine el otro escritor.
Lea la configuración efectiva del servicio antes de cambiar nada, incluidos los drop-ins que puedan sobrescribir el archivo de unidad. Una directiva presente en el perfil que editó no demuestra que sea la que cargó el proceso en ejecución. Compare la unidad con los argumentos del proceso y luego con los archivos que abrió en realidad.
Nombre el demonio para que el filtro sea estrecho
En la ruta de syslog, dé al demonio una identidad distinta y filtre por ella. Una regla que coincide con el nombre de programa de esta instancia VPN mantiene sus registros fuera de un archivo compartido cuya política de retención pertenece a otra cosa.
Las reglas estrechas también hacen respondible la siguiente pregunta: ¿qué servicio produjo esta línea? Un filtro que coincide con todo lo que contenga la palabra VPN recogerá encantado el tráfico de un segundo túnel y difuminará ambos. Coincida con el identificador exacto que la unidad pasa al registrador.
Cierre la regla después de la acción para que los registros no caigan también al destino predeterminado. Las líneas duplicadas en dos archivos parecen un fallo del registro y en realidad son una parada ausente. Esa única omisión también duplica el coste en disco de la política de retención.
Rote sin perder el descriptor
Cuando el demonio escribe el archivo, logrotate renombra la ruta pero el proceso conserva su descriptor abierto. Los registros nuevos siguen entrando en el archivo renombrado hasta que algo obliga al proceso a reabrir la ruta original, y por eso una rotación puede parecer que funciona mientras el archivo nuevo sigue vacío.
La solución es una acción postrotate que dispare el comportamiento documentado de recarga o reinicio del servicio. Señalizar al registrador es una acción completamente distinta y no hace nada por un demonio que tiene su propio archivo.
Cuando la reapertura es imposible, copytruncate es el recurso de reserva: copiar el archivo y luego truncarlo en el mismo sitio. Mantiene válido el descriptor a cambio de perder todo lo escrito entre la copia y el truncado, así que es un intercambio y no una solución. Bajo carga, ese hueco puede tragarse justo el fallo que intenta capturar.
Elija una de las dos por archivo y deje la elección por escrito, porque mezclarlas en la misma ruta produce huecos muy difíciles de atribuir después. Un lector que encuentre ambos patrones en un mismo directorio no sabrá cuál es el que manda.
Fije la retención según la ventana del incidente
La retención, la compresión y el tamaño máximo deberían derivarse de cuánto atrás investiga usted en la práctica. Una ventana de siete días con compresión y un tope de tamaño es un punto de partida razonable para muchos despliegues; un número copiado de un tutorial, no.
Mantenga la política en un solo lugar. Si logrotate rota el archivo y rsyslog también lo rota, gana la segunda rotación y el esquema de nombres de la primera sobrevive como desorden. Elija al dueño, desactive la otra rotación y anote esa decisión junto a la política.
La documentación de rsyslog cubre su modelo de enrutamiento y acciones, mientras que la documentación del servicio OpenVPN sigue siendo la referencia para las opciones de registro del propio demonio. Ninguna de las dos decide su política de retención por usted.
Pruebe una rotación y un evento nuevo
Fuerce una única rotación y luego genere un evento nuevo, como una autenticación fallida. Confirme que el registro nuevo aparece en el archivo nuevo y que el archivo viejo dejó de crecer.
Revise también los permisos del archivo nuevo, porque una rotación que lo recrea con otro propietario rompe al escritor en la siguiente escritura y produce un hueco que parece un fallo. Compare el propietario y el modo con la cuenta del servicio antes de irse. Después confirme que el archivo comprimido se puede leer, ya que un archivo que nadie puede abrir no es retención. Una lectura rápida del registro más reciente del archivo viejo demuestra tanto la compresión como los permisos.
Termine anotando el dueño de cada paso: qué componente escribe, cuál rota y dónde vive la política de retención. Ese registro es lo que convierte el próximo incidente de registro en una comprobación de cinco minutos en lugar de una tarde adivinando qué capa perdió la línea.