Журналдарды айналдыру болжамды түрде бұзылады: үш компоненттің әрқайсысы файлды өзімдікі деп ойлайды, ал нәтижесінде жаңа файл бос тұрғанда өсе беретін айналдырылған журнал пайда болады. Демон дескрипторды ұстайды, logrotate жолдың атын өзгертеді, ал rsyslog мүлдем басқа жерге жазады. Үйіндіге тағы бір ереже қоспас бұрын бір жазушы мен бір айналдырушыны таңдаңыз. Төмендегі тексеру тізімі дәл осы ретпен жүреді, өйткені әр келесі қадам оған тәуелді.

Файлды кім жазатынын шешіңіз

Екі жоба да заңды. Біріншісінде VPN процесі өзінің log немесе log-append параметрі арқылы файлды өзі жазады. Екіншісінде жазбаларды жүйелік журналға жібереді, ал rsyslog немесе journald олардың қайда түсетінін шешеді.

Бұлар баламалар, қабаттар емес. Екеуін де қосқан хост келіспейтін екі файлмен қалады, ал сіз оқып отырған файл көбіне ескіргені болады. Жолды әдейі таңдап, содан кейін екінші жазушыны алып тастаңыз.

Бірдеңені өзгертуден бұрын қызметтің әрекеттегі конфигурациясын оқыңыз, оның ішінде unit файлын қайта жаза алатын drop-in файлдарын да. Сіз өңдеген профильдегі директива оның жұмыс істеп тұрған процесс жүктеген директива екеніне дәлел емес. Unit-ті процесс аргументтерімен, содан кейін ол шын мәнінде ашқан файлдармен салыстырыңыз.

Сүзгі тар болуы үшін демонға ат беріңіз

syslog жолында демонға бөлек сәйкестік беріп, соған сүзгі жасаңыз. Осы VPN данасының бағдарлама атына сәйкес келетін ереже оның жазбаларын сақтау саясаты басқа нәрсеге тиесілі ортақ файлдан тыс ұстайды.

Тар ережелер келесі сұрақты да жауап беруге болатын етеді: бұл жолды қай қызмет шығарды? VPN сөзі бар барлығына сәйкес келетін сүзгі екінші туннельдің трафигін де қуана жинап, екеуін де бұлдыратады. Unit журналға беретін нақты идентификаторға сәйкестендіріңіз.

Жазбалар әдепкі межеге де түспеуі үшін әрекеттен кейін ережені жабыңыз. Екі файлдағы қайталанған жолдар журнал қатесіне ұқсайды, шын мәнінде бұл жетіспейтін тоқтау. Сол бір қалып қою сақтау саясатының дискілік құнын да екі еселейді.

Дескрипторды жоғалтпай айналдырыңыз

Демон файлды жазғанда, logrotate жолдың атын өзгертеді, бірақ процесс өзінің ашық дескрипторын сақтайды. Жаңа жазбалар аты өзгерген файлға жалғаса береді, тек бірдеңе процесті бастапқы жолды қайта ашуға мәжбүр еткенше; сондықтан айналдыру жұмыс істеп жатқандай көрінуі мүмкін, ал жаңа файл бос қалады.

Шешім — қызметтің құжатталған қайта жүктеу немесе қайта іске қосу мінезін іске қосатын postrotate әрекеті. Журналға сигнал жіберу мүлдем басқа әрекет және өз файлын ұстап отырған демонға ештеңе жасамайды.

Қайта ашу мүмкін болмаған жерде copytruncate — қосалқы шешім: файлды көшіріңіз, содан кейін орнында қырқыңыз. Дескрипторды жарамды ұстайды, бірақ көшіру мен қырқу арасында жазылғанның бәрін жоғалтады, сондықтан бұл шешім емес, айырбас. Жүктеме кезінде сол саңылау ұстағыңыз келген ақаудың өзін жұтып қоюы мүмкін.

Әр файл үшін екеуінің біреуін таңдап, таңдауды жазып қойыңыз, өйткені оларды бір жолда араластыру кейін телу өте қиын саңылаулар тудырады. Бір қалтадан екі үлгіні де тапқан оқырман қайсысы басты екенін айта алмайды.

Сақтауды оқиға терезесінен белгілеңіз

Сақтау, сығу және ең үлкен өлшем шын мәнінде қаншалықты артқа қарай зерттейтініңізден туындауы керек. Сығу мен өлшем шегі бар жеті күндік терезе көптеген орналастырулар үшін орынды бастау нүктесі; оқулықтан көшірілген сан ондай емес.

Саясатты бір жерде ұстаңыз. Егер logrotate файлды айналдырса және rsyslog та оны айналдырса, екінші айналдыру жеңеді, ал біріншісінің атау схемасы былық ретінде қалады. Иесін таңдаңыз, екінші айналдыруды өшіріңіз және сол шешімді саясаттың қасына жазыңыз.

rsyslog құжаттамасы оның маршруттау және әрекет үлгісін қамтиды, ал OpenVPN қызметінің құжаттамасы демонның өз журнал параметрлері үшін беделді болып қалады. Екеуінің ешқайсысы сіздің орныңызға сақтау саясатын шешпейді.

Бір айналдыру мен бір жаңа оқиғаны сынап көріңіз

Бір ғана айналдыруды мәжбүрлеп, содан кейін бір жаңа оқиға жасаңыз, мысалы сәтсіз аутентификация. Жаңа жазба жаңа файлда пайда болғанын және ескі файлдың өсуін тоқтатқанын растаңыз.

Жаңа файлдың рұқсаттарын да тексеріңіз, өйткені оны басқа иемен қайта құратын айналдыру келесі жазуда жазушыны бұзады және құлауға ұқсайтын саңылау тудырады. Кетпес бұрын иесі мен режимін қызмет тіркелгісімен салыстырыңыз. Содан кейін сығылған мұрағаттың оқылатынын растаңыз, өйткені ешкім аша алмайтын мұрағат сақтау емес. Ескі файлдағы ең жаңа жазбаны жылдам оқу сығуды да, рұқсаттарды да дәлелдейді.

Әр қадамның иесін жазып, аяқтаңыз: қай компонент жазады, қайсысы айналдырады және сақтау саясаты қайда тұрады. Дәл сол жазба келесі журнал оқиғасын қай қабат жолды түсіріп алғанын болжауға кететін жарты күннің орнына бес минуттық тексеріске айналдырады.

Қатысты мақалалар