Ո՞ւմն են 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 ծառայության փաստաթղթերը մնում են հեղինակավոր դեմոնի սեփական մատյանային ընտրանքների համար։ Նրանցից ոչ մեկը ձեր փոխարեն չի որոշում ձեր պահպանման քաղաքականությունը։
Փորձարկեք մեկ պտտում և մեկ նոր իրադարձություն
Պարտադրեք մեկ պտտում, ապա ստեղծեք մեկ նոր իրադարձություն, օրինակ՝ ձախողված նույնականացում։ Հաստատեք, որ նոր գրառումը հայտնվում է նոր ֆայլում, և որ հին ֆայլը դադարել է աճել։
Ստուգեք նաև նոր ֆայլի թույլտվությունները, որովհետև պտտումը, որը վերստեղծում է այն այլ տիրոջով, կոտրում է գրողին հաջորդ գրության ժամանակ և ստեղծում է վթարի նմանվող բաց։ Նախքան հեռանալը համեմատեք տիրոջն ու ռեժիմը ծառայության հաշվի հետ։ Ապա հաստատեք, որ սեղմված արխիվը ընթեռնելի է, քանի որ արխիվը, որը ոչ ոք չի կարող բացել, պահպանում չէ։ Հին ֆայլի ամենանոր գրառման արագ ընթերցումը ապացուցում է և՛ սեղմումը, և՛ թույլտվությունները։
Ավարտեք՝ գրանցելով յուրաքանչյուր քայլի տիրոջը՝ որ բաղադրիչն է գրում, որը՝ պտտում, և որտեղ է ապրում պահպանման քաղաքականությունը։ Հենց այդ գրառումն է հաջորդ մատյանային պատահարը դարձնում հինգ րոպեանոց ստուգում՝ փոխարենը մի ամբողջ կեսօր գուշակելու, թե որ շերտը գցեց տողը։