De quen son os rexistros de OpenVPN: do daemon, de rsyslog ou de logrotate?
Un escritor, un rotador, unha política de retención. Escolle primeiro a ruta, nomea o daemon para un filtro estreito e demostra a reapertura cun só ficheiro rotado.
A rotación de rexistros rompe dun xeito previsible: tres compoñentes cren cada un que posúe o ficheiro, e o resultado é un rexistro rotado que segue medrando mentres o novo queda baleiro. O daemon mantén un descritor, logrotate renomea a ruta e rsyslog escribe nun lugar completamente distinto. Escolle un escritor e un rotador antes de engadir outra regra á morea. A lista de comprobación seguinte avanza nesa orde porque cada paso posterior depende dela.
Decide quen escribe o ficheiro
Hai dous deseños lexítimos. No primeiro, o proceso VPN escribe el mesmo un ficheiro mediante a súa propia opción log ou log-append. No segundo, envía os rexistros ao rexistro do sistema e rsyslog ou journald decide onde acaban.
Son alternativas, non capas. Un host que activa ambas acaba con dous ficheiros que non coinciden, e o que estás lendo adoita ser o obsoleto. Escolle a ruta a propósito e despois elimina o outro escritor.
Le a configuración efectiva do servizo antes de cambiar nada, incluídos os drop-ins que poidan sobrescribir o ficheiro de unidade. Unha directiva presente no perfil que editaches non demostra que sexa a que cargou o proceso en execución. Compara a unidade cos argumentos do proceso e despois cos ficheiros que realmente abriu.
Nomea o daemon para que o filtro poida ser estreito
Na ruta de syslog, dálle ao daemon unha identidade distinta e filtra por ela. Unha regra que coincide co nome de programa desta instancia VPN mantén os seus rexistros fóra dun ficheiro compartido cuxa política de retención pertence a outra cousa.
As regras estreitas tamén fan respondible a seguinte pregunta: que servizo produciu esta liña? Un filtro que coincide con todo o que conteña a palabra VPN recolle de bo grado o tráfico dun segundo túnel e difumina ambos. Coincide co identificador exacto que a unidade pasa ao rexistrador.
Pecha a regra despois da acción para que os rexistros non caian tamén no destino predeterminado. As liñas duplicadas en dous ficheiros parecen un fallo do rexistro e en realidade son unha parada ausente. Esa única omisión tamén duplica o custo en disco da política de retención.
Rota sen perder o descritor
Cando o daemon escribe o ficheiro, logrotate renomea a ruta pero o proceso conserva o seu descritor aberto. Os rexistros novos seguen entrando no ficheiro renomeado ata que algo obriga o proceso a reabrir a ruta orixinal, e por iso unha rotación pode parecer que funciona mentres o ficheiro novo segue baleiro.
A solución é unha acción postrotate que dispare o comportamento documentado de recarga ou reinicio do servizo. Sinalizar o rexistrador é unha acción completamente distinta e non fai nada por un daemon que ten o seu propio ficheiro.
Cando a reapertura é imposible, copytruncate é o recurso de reserva: copia o ficheiro e despois trúncao no mesmo sitio. Mantén válido o descritor a cambio de perder todo o escrito entre a copia e o truncado, así que é un intercambio e non unha solución. Baixo carga, ese oco pode tragarse xusto o fallo que intentas capturar.
Escolle unha das dúas por ficheiro e deixa a elección por escrito, porque mesturalas na mesma ruta produce ocos moi difíciles de atribuír despois. Un lector que atope ambos os patróns nun mesmo directorio non saberá cal é o que manda.
Fixa a retención segundo a xanela do incidente
A retención, a compresión e o tamaño máximo deberían derivarse de canto atrás investigas de verdade. Unha xanela de sete días con compresión e un tope de tamaño é un punto de partida razoable para moitos despregamentos; un número copiado dun titorial non o é.
Mantén a política nun só lugar. Se logrotate rota o ficheiro e rsyslog tamén o rota, gaña a segunda rotación e o esquema de nomes da primeira sobrevive como desorde. Escolle o dono, desactiva a outra rotación e anota esa decisión xunto á política.
A documentación de rsyslog cobre o seu modelo de encamiñamento e accións, mentres que a documentación do servizo OpenVPN segue sendo a autoridade para as opcións de rexistro do propio daemon. Ningunha das dúas decide a túa política de retención por ti.
Proba unha rotación e un evento novo
Forza unha única rotación e despois xera un evento novo, como unha autenticación fallida. Confirma que o rexistro novo aparece no ficheiro novo e que o ficheiro vello deixou de medrar.
Revisa tamén os permisos do ficheiro novo, porque unha rotación que o recrea con outro propietario rompe o escritor na seguinte escritura e produce un oco que parece unha caída. Compara o propietario e o modo coa conta do servizo antes de marchar. Despois confirma que o arquivo comprimido é lexible, xa que un arquivo que ninguén pode abrir non é retención. Unha lectura rápida do rexistro máis recente no ficheiro vello demostra tanto a compresión como os permisos.
Remata anotando o dono de cada paso: que compoñente escribe, cal rota e onde vive a política de retención. Ese rexistro é o que converte o próximo incidente de rexistro nunha comprobación de cinco minutos en lugar dunha tarde adiviñando que capa perdeu a liña.