Коме припадају OpenVPN дневници: демону, rsyslog-у или logrotate-у?
Један писач, један ротатор, једна политика чувања. Прво изаберите пут, именујте демона за узак филтер и докажите поновно отварање једном ротираном датотеком.
Ротација дневника квари се на предвидив начин: три компоненте свака мисли да поседује датотеку, а резултат је ротирани дневник који наставља да расте док нова датотека остаје празна. Демон држи дескриптор, logrotate преименује путању, а rsyslog пише сасвим другде. Изаберите једног писача и један ротатор пре него што на гомилу додате још једно правило. Листа провера испод иде тим редом јер сваки каснији корак зависи од ње.
Одлучите ко пише датотеку
Два нацрта су легитимна. У првом VPN процес сам пише датотеку преко своје опције log или log-append. У другом шаље записе системском дневнику, а rsyslog или journald одлучује где ће завршити.
То су алтернативе, а не слојеви. Домаћин који укључи оба завршава са две датотеке које се не слажу, а она коју читате често је застарела. Изаберите путању намерно, а затим уклоните другог писача.
Прочитајте делотворну конфигурацију услуге пре него што било шта промените, укључујући drop-in датотеке које могу надјачати unit датотеку. Директива присутна у профилу који сте уредили није доказ да је то она коју је учитао процес који ради. Упоредите unit са аргументима процеса, а затим са датотекама које је заиста отворио.
Именујте демона да филтер буде узак
На syslog путу дајте демону засебан идентитет и филтрирајте по њему. Правило које одговара називу програма ове VPN инстанце држи њене записе изван заједничке датотеке чија политика чувања припада нечему другом.
Уска правила чине одговоривим и следеће питање: која услуга је произвела овај ред? Филтер који одговара свему што садржи реч VPN радо ће прикупити саобраћај другог тунела и замутити обоје. Упоређујте по тачном идентификатору који unit предаје дневнику.
Затворите правило након радње да записи не би пали и у подразумевано одредиште. Двоструки редови у две датотеке изгледају као грешка у евидентирању, а заправо су недостајуће заустављање. Тај једини пропуст такође удвостручује диск трошак политике чувања.
Ротирајте без губитка дескриптора
Када демон пише датотеку, logrotate преименује путању, али процес задржава свој отворени дескриптор. Нови записи настављају у преименовану датотеку док нешто не натера процес да поново отвори изворну путању; зато ротација може изгледати успешно док нова датотека остаје празна.
Решење је радња postrotate која покреће документовано понашање поновног учитавања или рестарта услуге. Слање сигнала дневнику је сасвим друга радња и не чини ништа за демона који држи сопствену датотеку.
Тамо где је поновно отварање немогуће, copytruncate је причува: копирајте датотеку, а затим је скратите на месту. Одржава дескриптор важећим по цену губитка свега записаног између копирања и скраћивања, па је то размена, а не решење. Под оптерећењем тај процеп може прогутати управо квар који покушавате да ухватите.
Изаберите једно од два по датотеци и запишите избор, јер њихово мешање на истој путањи ствара процепе које је касније веома тешко приписати. Читалац који у једном директоријуму нађе оба обрасца не може да каже који је меродаван.
Поставите чување према прозору инцидента
Чување, компресија и највећа величина треба да произилазе из тога колико дубоко стварно истражујете. Прозор од седам дана са компресијом и горњом границом величине разумно је полазиште за многа увођења; број преписани из приручника није.
Држите политику на једном месту. Ако logrotate ротира датотеку и rsyslog је такође ротира, побеђује друга ротација, а шема именовања прве опстаје као неред. Изаберите власника, искључите другу ротацију и забележите ту одлуку поред политике.
Документација rsyslog-а покрива његов модел усмеравања и радњи, док документација услуге OpenVPN остаје меродавна за сопствене опције евидентирања демона. Ниједна од њих не одлучује о вашој политици чувања уместо вас.
Испитајте једну ротацију и један нови догађај
Присилите једну ротацију, а затим генеришите један нови догађај, на пример неуспелу аутентификацију. Потврдите да се нови запис појављује у новој датотеци и да је стара датотека престала да расте.
Проверите и дозволе на новој датотеци, јер ротација која је поново ствара са другим власником ломи писача при следећем упису и ствара процеп који изгледа као пад. Упоредите власника и режим са налогом услуге пре него што одете. Затим потврдите да је компресована архива читљива, јер архива коју нико не може да отвори није чување. Брзо читање најновијег записа у старој датотеци доказује и компресију и дозволе.
Завршите тако што ћете забележити власника сваког корака: која компонента пише, која ротира и где живи политика чувања. Тај запис претвара следећи инцидент са дневницима у петоминутну проверу уместо поподнева нагађања који је слој испустио ред.