Eit dashbord ber om eit tal for kor lenge tilkoplinga har vore oppe, og OpenVPN gjev det ikkje. Klienten veit når tunnelen kom opp, men berre viss noko registrerer det augneblinken før sesjonstilstanden går tapt. Den støtta staden er up-kroken, og verdien det er verdt å lagre er eit rådt epoch-sekund framfor ein formatert streng. Alt etter det er aritmetikk, pluss nokre få ordensreglar som avgjer om talet held seg ærleg.

Stadfest at krokane faktisk køyrer

Prov at kroken utløyser før du designar noko rundt han. Ein minimal klientkonfigurasjon treng script-security 2 pluss eksplisitte stigar up og down; utan tryggleikslinja nektar OpenVPN å køyre skriptet og seier det rett ut. Legg til up-restart og down-pre samstundes slik at omstarts- og nedtaksstigane oppfører seg føreseieleg.

La den første versjonen av kroken leggje miljøet sitt til ei fil og ikkje gjere noko anna. Det viser deg variabelnamna bygget ditt faktisk eksporterer, som dev og script_type, i staden for dei du hugsar frå ein annan versjon. Køyr éi tilkopling og éi fråkopling, og les deretter fila. Viss ingenting dukkar opp, stopp her, for eit tidsstempeldesign oppå ein krok som aldri køyrer vil sjå ut som ein overvakingsfeil i vekesvis.

Kontroller kva brukar kroken køyrer som. Med user og group sett slepp OpenVPN privilegium før det køyrer skript, så ein katalog root kan skrive i kan vere stengd for kroken. Vel stigen frå synsvinkelen til tenesta i staden for skalet ditt.

Registrer éin epoch-verdi og slett han medvite

up-kroken treng éi linje, date +%s > /run/openvpn-client.started, med stigen justert per instans. Ein epoch-verdi unngår seinare spørsmål om språk, tidssone og format, og det er det same talet ein overvakingsagent kan samanlikne med si eiga klokke.

Sletting tyder like mykje som skriving. down-kroken bør tømme eller fjerne fila, og down-pre sørgjer for at det skjer før grensesnittet blir lukka, noko som fjernar vindauget der fila skildrar ein tunnel som alt er borte. up-restart oppdaterer deretter stempelet ved ein intern omstart i staden for å la den opphavlege verdien stå. Utan det paret ein omstart etter ping-tidsavbrot gjev eit tal som held fram med å stige medan tunnelen blir gjenoppretta.

Vel ein stad med rett levealder. Ei fil under /run forsvinn ved omstart, noko som stemmer med røynda, medan ei fil under /tmp kan bli rydda uføreseieleg, og ei i konfigurasjonskatalogen overlever på ein måte som villedar. Set rettar slik at berre tenestebrukaren og overvakingslesaren kan lese henne.

Rekn ut oppetida utan å stole på logglinjer

Les det lagra sekundet, les det gjeldande sekundet, trekk frå. Når fila manglar eller er tom, er det ærlege svaret at ingen tunnel er aktiv, ikkje at oppetida er null, fordi dei to tilstandane bør utløyse ulike varsel. Hald rå sekund i overvakingsdataa, og formater dagar og timar i visingslaget. Ein formaterar som rundar av inne i eksportøren kastar bort presisjon som nokon vil ha under ei hending.

Å parse loggtidsstempel er den freistande snarvegen, og han feilar på tre måtar: formatet følgjer kva innstillingar som er sette, rotasjon fjernar historia, og gjenoppkoplingar viser seg som eigne sesjonar i staden for éin samanhengande tunnel. Kroken registrerer hendinga éin gong, i augneblinken ho skjer.

Når kontrollen køyrer på ein annan vert, send tidsstempelet i staden for varigheita slik at lesaren brukar si eiga klokke. Eit lite negativt resultat blir då lese som klokkeforskjell i staden for ein øydelagd krok.

Dekk gjenoppkoplingar, omstartar og fleire instansar

To tunnelar på éin vert treng to filer, nøkla på instansnamnet tenesta alt brukar. Ein delt stig tyder at den nyaste tilkoplinga overskriv starttida for kvar profil, og symptomet er eit tal som hoppar bakover når ein andre tunnel startar.

Gjenoppkoplingåtferd fortener sin eigen test, for det er der eit truverdig design stille rapporterer det gale. Tving ein omstart ved å droppe peeren eller sende eit signal til prosessen, og samanlikn deretter grensesnitto-tilstanden med fila. Tidsstempelet bør flytte seg framover i augneblinken tunnelen kjem tilbake.

På serversida ber statusfila ein connected-since-verdi per klient, som svarer på eit anna spørsmål: når serveren sist såg den peeren. Bruk han til krysskontroll i staden for som erstatning, sidan han forsvinn saman med sesjonen han skildrar. Ingen av målingane seier noko om helsa til applikasjonen bak tunnelen.

Køyr dei tre kontrollane som fangar ordensfeil

Test ei normal tilkopling, ei tvinga gjenoppkopling og ein rein stopp, og les grensesnittlista og fila saman etter kvar. Eit stempel som framleis er der etter ein rein stopp, eller ei fil som hevdar ein tunnel som grensesnittlista ikkje inneheld, peikar rett på krokordenen. Køyr kontrollane som tenestebrukaren og med stigane til tenesta, for eit root-skal kan sjå ei anna fil og gje eit sjølvsikkert gale svar. La deretter ein langsam pollar lese fila og stadfest at han aldri skriv til henne.

Ei avstemming kvart sekstiande sekund dekkjer varsling, og ingen krok bør rekne med at den pollaren lever. Hald dei to ansvarsområda skilde, og talet blir verande påliteleg når ei av sidene blir rulla ut på nytt.

Relaterte artiklar