Paleidžiate OpenVPN iš apvalkalo su konfigūracijos failu, o terminalas stovi visiškai be jokios išvesties. Jokio reklaminio pranešimo, jokios klaidos, jokio raginimo. Instinktas sako, kad paleisti nepavyko, todėl paleidžiate dar vieną kopiją, paskui dar vieną, ir mašinoje lieka kelios pusiau sukonfigūruotos instancijos. Prieš visa tai patikrinkite profilyje direktyvą, kuri jau nukreipė žurnalą į kitą vietą. Tyla yra konsolės savybė, o ne proceso.

Tyla turi du labai skirtingus paaiškinimus

Pirmasis – procesas veikia tinkamai ir rašo į failą, kurio nestebite. Antrasis – jis iškart baigėsi su klaida, užfiksuota tame pačiame faile.

Abu palieka tuščią terminalą, ir vienas klausimas juos skiria: ar dabar yra procesas ir kas yra faile, į kurį jam liepta rašyti. Atsakykite į tai, prieš vėl liesdami konfigūraciją. Paleidimas iš naujo vardan išvesties – tai būdas, kuriuo dvi instancijos pradeda kautis dėl vieno tunelio įrenginio ir to paties prievado, o tai sukelia klaidas, neturinčias nieko bendra su pirmine problema.

Raskite direktyvą, tada raskite procesą.

ps -o pid,args= -C openvpn
grep -nE '^\s*(log|log-append|cd|daemon|verb)\b' /etc/openvpn/server/server.conf

Raskite tikslą, į kurį rašo veikiantis procesas

Skaitykite profilį, su kuriuo procesas iš tikrųjų buvo paleistas, o ne tą, kurį redagavote. Paslaugos valdoma instancija paprastai įkelia kitą kelią ir dirba kitame darbiniame kataloge, todėl santykinis failo vardas išsiskleidžia visai ne ten, kur tikėjotės.

Aiški cd direktyva šį skirtumą dar labiau paryškina, nes santykinis kelias juda kartu su katalogo pakeitimu. Jei šią konfigūraciją paveldėjote, failas gali gulėti vietoje, kurios dabar niekas neieškotų.

Palyginkite failo modifikavimo laiką su paleidimo momentu. Praėjusios savaitės žurnalas yra praėjusios savaitės įrodymas. Tada perskaitykite paskutines pasikeitusio failo eilutes ir laikykite tai trūkstamu paleidimo pranešimu.

log prieš log-append: įrodymai ir ištrynimas

log-append papildo tai, kas jau yra faile. log atidaro failą rašymui ir jį sutrumpina, todėl perjungimas tarp jų gali ištrinti paleidimą, kurį ketinote skaityti.

Jei kas nors derindamas pakeitė direktyvą, ankstesni įrodymai jau dingo, o failo dydis atrodys įtartinai mažas. Tai verta žinoti prieš lyginant du paleidimus ir darant išvadą, kad kažkas pasikeitė. Ištrinkite žurnalą sąmoningai arba palikite jį, bet žinokite, ką padarėte. Įrodymai, kurių atsikratėte tyčia, yra lengviau suprantami nei tie, kuriuos praradote netyčia.

Nė viena parinktis nesukuria trūkstamų pirminių katalogų ir neužtikrina prieigos per failų sistemos teises ar paslaugos smėliadėžę. Kelias, kuris konfigūracijoje atrodo teisingas, vis tiek gali būti neįrašomas paskyrai, su kuria veikia demonas, ir tada demonas gali žlugti dar nieko nepranešęs. Prieš manydami, kad problema yra failo vardas, patikrinkite katalogo egzistavimą ir jo savininką.

Kai paslaugos apvalkalas užčiuopia išvestį

Naudojant systemd standartinė išvestis ir klaidos patenka į žurnalą, nebent aiški failo direktyva turi viršenybę, o gamintojo apvalkalas gali juos užčiuopti visiškai kitoje vietoje.

Štai kodėl tas pats profilis elgiasi skirtingai iš apvalkalo ir iš unit'o. Unit'o aplinka, jo darbinis katalogas ir standartiniai srautai skiriasi nuo jūsų interaktyvaus apvalkalo. Santykinis kelias gali išsiskleisti viename kontekste ir niekur nenukristi kitame. Kai du nesutaria, skaitykite unit'o apibrėžimą, o ne profilį.

Palyginkite du paleidimo būdus, o ne darykite išvadą, kad vienas jų sugedęs. Perskaitykite unit'o komandų eilutę ir jo aplinką, tada perskaitykite žurnalą už tą patį laiko tarpą. Jei apvalkalas nukreipia išvestį į savo failą, tas failas dabar yra jūsų žurnalas, o OpenVPN direktyvos nebeturi reikšmės, kur ėjo pranešimai.

Didinkite detalumą tik tada, kai jau galite jį perskaityti

Detalumo didinimas prieš surandant tikslą tik sukuria daugiau teksto vietoje, kurios nežiūrite.

Kai žinote, kur nukrenta išvestis, vidutinis lygis parodo, kaip profilis analizuojamas ir kaip bandoma jungtis. Paleidimo problemai pakanka dviejų ar trijų. Aukštesni lygiai pasiteisina, kai gedimas yra derybų detalė, ir jie taip pat greitai didina failą.

Tada skaitykite tikrąją klaidą. Tylus terminalas nieko neįrodo apie tai, ar tunelis pakilo, o faile užfiksuota klaida yra ta, kurią verta taisyti.

Susiję straipsniai