La línia temporal d’un incident VPN sol començar amb dues marques de temps que difereixen uns minuts i amb una pantalla que mostra una hora diferent. La temptació és triar-ne una com a correcta i reescriure l’altra. Totes dues poden ser correctes, perquè les van escriure rellotges diferents sobre esdeveniments diferents. El mite és que una VPN té un sol rellotge; la feina és esbrinar quin component va escriure cada camp.

El mite: la VPN té un sol rellotge

El client escriu un esdeveniment quan intenta una connexió. La passarel·la escriu un esdeveniment quan rep o accepta aquest intent. El recol·lector escriu una hora d’arribada quan rep el missatge de la passarel·la. Són tres esdeveniments, i cadascun queda segellat pel rellotge en què va confiar el component que l’escriu. Col·lapsar-los en una sola línia temporal és una comoditat que amaga la discrepància que intenteu explicar.

Els números solen diferir de segons a minuts, i això és normal. El que importa és si la diferència és un retard de lliurament, un desfasament del rellotge o un esdeveniment realment diferent. Decidir quin dels dos mireu requereix l’origen de cada camp, no una opinió més ferma sobre quina màquina té raó.

Llegiu l’origen abans del valor

Abans de comparar valors, identifiqueu qui va produir cadascun i de quin camp es tracta. Un missatge syslog porta una marca de temps de l’origen, tal com descriu RFC 5424, i el format també pot portar informació de qualitat del temps que descriu la sincronització i la precisió. El mateix format permet que l’origen no enviï cap marca de temps quan no pot llegir l’hora del sistema, cosa que és en si mateixa un senyal útil.

journalctl -o short-iso --utc -n 20
logger -t vpn-check "test event"

El client també pot enviar un valor de temps com a metadades de l’aplicació, i el servei que l’emmagatzema hauria d’etiquetar-lo com a declarat pel client en lloc de tractar-lo com a verificat de manera independent. Aquesta etiqueta és la diferència entre una prova i una afirmació. Quan exporteu registres per a un cas, manteniu junts el nom del camp, l’origen i el desfasament. Reduir-los a una hora local agradable destrueix precisament la informació que necessiteu.

Atureu-vos si no podeu dir quin component va escriure un camp. Comparar-lo amb qualsevol altra cosa és endevinar.

La visualització de la zona horària no és un instant diferent

El mateix instant mostrat com a 10:00Z i com a 18:00+08:00 no és una discrepància, i tractar-lo com a tal fa perdre mig dia. Convertiu tots dos a UTC abans de comparar i manteniu el text original al costat de la conversió. Una fracció decimal en un costat i segons enters a l’altre tampoc no és cap conflicte. La precisió no és l’exactitud: un valor amb mil·lisegons pot venir d’un rellotge que va errar per minuts.

date -u +%FT%TZ
timedatectl

El retard de lliurament és l’altra explicació habitual. La passarel·la registra quan va acceptar la connexió, i el recol·lector registra quan el missatge li va arribar, de manera que el buit entre tots dos és temps de transport. Aquest buit diu alguna cosa sobre la canonada de registres, no sobre la sessió VPN. Etiqueteu-lo com a hora d’arribada i deixa de competir amb l’hora de l’esdeveniment.

Correlacioneu sense reescriure les proves

Conserveu les marques de temps originals i afegiu una columna derivada si necessiteu una visió comuna. Expliqueu la conversió a les notes en lloc d’editar els registres d’origen, perquè l’origen és el que revisarà un revisor posterior. Preserveu l’hora d’arribada del recol·lector per separat allà on existeixi.

chronyc tracking
journalctl --utc -u openvpn-client@work -n 50 --no-pager

Canviar el rellotge d’un dispositiu no és un control de privadesa i no reescriu registres que un altre sistema ja té. També fa més difícil comparar les proves de suport i pot trencar les comprovacions de certificats i de codi que depenen del temps. Manteniu els rellotges sincronitzats per al funcionament ordinari i tracteu qualsevol desviació deliberada com una falla a investigar. Si els dos registres semblen fora de seqüència, mireu la sincronització del rellotge i el lliurament abans de construir una història nova.

El mite que cal retirar és que hi hagi un sol temps de la VPN. Pregunteu què va escriure cada camp i què va passar quan ho va fer, i la línia temporal es converteix en un conjunt d’observacions etiquetades en lloc d’una contradicció.

Articles relacionats