Linux distribucije idealne su za bilo koju vrstu korporacijskog okruženja zahvaljujući svojoj sposobnosti prilagođavanja novim funkcijama i novim ulogama i, što je najbolje, besplatno zahvaljujući otvorenom kodu.
Imamo tisuće aplikacija ili pomoćnih programa dizajniranih za centraliziranu kontrolu nad svim aspektima sustava i na taj način, kao administratori ili IT osoblje, sa sigurnošću znaju kada dođe do kvara i znaju kako ga riješiti.
Unutar ovog širokog raspona mogućnosti nalazimo Logrotate, koji je uslužni program distribucije, a njegova je funkcija rotacija i kompresija datoteka dnevnika.
Ovaj je zadatak važan jer, ako ne poduzmete ništa na tim datotekama, može se utjecati na prostor na tvrdom disku, što dovodi do drugih vrsta općih pogrešaka.
U ovom slučaju koristit ćemo Ubuntu 17.10, a Logrotate je prema zadanim postavkama instaliran i već je konfiguriran za upravljanje zadacima rotacije dnevnika svih instaliranih paketa, uključujući rsyslog, zadani procesor dnevnika sustava.
Zatim ćemo vidjeti kako instalirati i koristiti ovaj vrijedni uslužni program.
1. Identificirajte verziju Logrotate instaliranog Linuxa
Prvi korak koji treba poduzeti je detaljno znati koju verziju Logrotatea imamo u, u ovom slučaju, Ubuntu 17.10. Da bismo to učinili, izvršavamo sljedeću naredbu:
logrotate -verzijaRezultat će biti sljedeći:
POVEĆAJTE
Ako Logrotate nije instaliran, dobit ćemo pogrešku. Alat možemo instalirati pomoću upravitelja paketa korištene Linux distribucije.
Ako je Logrotate instaliran, ali se broj verzije znatno razlikuje, možda ćemo imati problema s nekim postavkama uslužnog programa. Dokumentaciju o određenoj verziji Logrotatea možemo pogledati izravno na njegovoj man stranici:
čovjek logrotateMožemo vidjeti zadanu konfiguracijsku strukturu Logrotatea u Linux distribuciji:
POVEĆAJTE
2. Logrotate konfiguracija Linuxa
Informacije o konfiguraciji Logrotate općenito se mogu pronaći na dva mjesta u slučaju Ubuntua:
etc / logrotate.confOva datoteka sadrži neke zadane postavke i postavlja rotaciju za neke zapisnike koji nisu u vlasništvu niti jednog paketa sustava. Također koristi izjavu include za dobivanje postavki iz bilo koje datoteke u direktoriju /etc/logrotate.d.
/etc/logrotate.d/Ovaj direktorij je mjesto gdje će svaki paket koji instaliramo i treba nam pomoć pri rotaciji dnevnika postaviti svoju Logrotate konfiguraciju. U standardnoj instalaciji datoteke bi već trebale postojati za osnovne sistemske alate, kao što su apt, dpkg, rsyslog itd.
Prema zadanim postavkama, logrotate.conf će konfigurirati tjedne rotacije dnevnika (tjedno), s datotekama dnevnika u vlasništvu korijenskog korisnika i grupe syslog (su root syslog), s četiri datoteke dnevnika koje se čuvaju (rotirajte 4), a nove datoteke stvaraju se prazne zapise. nastalo nakon rotiranja struje (kreiranje).
Konfiguracijskoj datoteci Logrotate paketa možemo pristupiti u /etc/logrotate.d pomoću uslužnog programa cat:
mačka /etc/logrotate.d/apt
POVEĆAJTE
Ova datoteka sadrži konfiguracijske blokove za dvije različite datoteke dnevnika u direktoriju / var / log / apt /: term.log i history.log. Oboje imaju iste mogućnosti.
Svaka opcija koja nije postavljena u ovim konfiguracijskim blokovima naslijedit će zadane vrijednosti ili one postavljene u /etc/logrotate.conf. Opcije konfigurirane za apt zapisnike su:
rotirati 12Čuva dvanaest starih datoteka dnevnika.
MjesečnoRotirajte jednom mjesečno.
OblogBrine se o kompresiji rotiranih datoteka. Ovo prema zadanim postavkama koristi gzip i rezultira datotekama koje završavaju nastavkom .gz. Naredba za sažimanje može se promijeniti pomoću opcije compresscmd.
missingokNe zapisuje poruku o pogrešci ako datoteka dnevnika nedostaje.
nesvjestanNe rotira datoteku dnevnika ako je prazna.
Dostupne su još mnoge mogućnosti konfiguracije.
3. Konfigurirajte uslugu Linux Logrotate i dodajte konfiguraciju u /etc/logrotate.d/
Zatim ćemo konfigurirati konfiguracijsku datoteku za rukovanje zapisnicima usluge koju ćemo stvoriti.
Za upravljanje datotekama dnevnika za aplikacije izvan unaprijed zapakiranih i unaprijed konfiguriranih usluga sustava imamo dvije mogućnosti:
- Izradite novu konfiguracijsku datoteku Logrotate i postavite je na stazu /etc/logrotate.d/. Ovo će se svakodnevno izvoditi kao root korisnik zajedno sa svim ostalim standardnim poslovima Logrotate.
- Izradite novu konfiguracijsku datoteku i pokrenite je izvan zadane Ubuntu konfiguracije Logrotate. To je potrebno samo ako moramo pokrenuti Logrotate kao nekorijenski korisnik ili ako želite rotirati dnevnike češće nego dnevno (postavka po satu u /etc/logrotate.d/ ne bi bila učinkovita jer postavka sustava Logrotate radi samo jednom dnevno).
U ovom slučaju želimo konfigurirati rotaciju dnevnika za web poslužitelj koji stavlja access.log i error.log na stazu / var / log / Solvetic-app /. Izvest će se kao korisnik i grupa www-podataka.
Da bismo /etc/logrotate.d/ dodali neku konfiguraciju, prvo moramo otvoriti novu datoteku na sljedeći način:
sudo nano /etc/logrotate.d/solvetic-apptamo ćemo dodati sljedeće retke:
/var/log/solvetic-app/*.log {daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate systemctl ponovno učitavanje solutiontic-app ENDScript}
POVEĆAJTE
Promjene možemo spremiti pomoću kombinacije tipki Ctrl + O i izlazimo iz uređivača pomoću Ctrl + X.
Neke od novih konfiguracijskih direktiva u ovoj datoteci su:
stvoriti 0640 www-podaci www-podaciOvaj parametar stvara novu praznu datoteku dnevnika nakon rotacije, s navedenim dopuštenjima (0640), vlasnikom (www-podaci) i grupom (također www-podacima).
zajedničke skripteOva oznaka označava da se skripte dodane konfiguraciji izvode samo jednom po pokretanju, a ne za svaku rotiranu datoteku.
postrotate do krajaOvaj blok sadrži skriptu za pokretanje nakon rotiranja datoteke dnevnika. U tom slučaju možemo ponovno učitati našu rješavačku aplikaciju. To je ponekad potrebno da bi se aplikacija prebacila na novostvorenu datoteku dnevnika.
Moramo uzeti u obzir postrotate izvršenja prije provjere dnevnika. Kompresija bi mogla potrajati i softver bi se trebao odmah prebaciti na novu datoteku dnevnika. Za zadatke koji se moraju pokrenuti nakon komprimiranja zapisa, umjesto toga koristite blok lastaction.
Nakon prilagodbe konfiguracije koja najbolje odgovara našim potrebama i spremljene u /etc/logrotate.d, možemo je provjeriti izvršavanjem sljedećeg retka.
sudo logrotate /etc/logrotate.conf -debugOvo poziva logrotate, pokazuje na standardnu konfiguracijsku datoteku i aktivira način otklanjanja pogrešaka:
POVEĆAJTE
Ispisat će se informacije o tome koje datoteke dnevnika Logrotate obrađuje i što se na njima izvršava. Ako sve izgleda dobro, gotovi smo. Standardni posao Logrotate izvodit će se jednom dnevno i uključivat će vaše nove postavke.
4. Kako stvoriti samostalnu konfiguraciju zapisivanja Lograte Linux
Prvo ćemo stvoriti konfiguracijsku datoteku u našem matičnom direktoriju. Možemo ga otvoriti uređivačem teksta:
sudo nano /home/solvetic/logrotate.confU novu datoteku zalijepit ćemo sljedeće:
/home/solvetic/logs/*.log {po satu nedostaje okret 24 stvori stvori}
POVEĆAJTE
Promjene možemo spremiti i izaći iz datoteke.
Ova postavka rotirat će datoteke svakih sat vremena, komprimirajući i čuvajući dvadeset i četiri stara zapisa i stvarajući novu datoteku dnevnika koja će zamijeniti rotiranu datoteku. Da bismo provjerili radi li ispravno, možemo stvoriti datoteku dnevnika izvršavanjem sljedećih redaka:
cd ~ sudo mkdir zapisnici sudo touch logs / access.log
POVEĆAJTE
Sada kada na pravom mjestu imamo praznu datoteku dnevnika, pokrenut ćemo naredbu logrotate.
Izvršit ćemo sljedeće:
logrotate /home/solvetic/logrotate.conf --state / home / Solvertic / logrotate -state -verbose
POVEĆAJTE
Parametar --verbose ispisat će detaljne informacije o tome što radimo s Logrotateom. U ovom slučaju vidjet ćemo da se ništa nije rotiralo. Ovo je prvi put da Logrotate vidi ovu datoteku dnevnika, a kako znamo datoteka je stara nula sati i ne treba je rotirati.
Ako pogledamo datoteku statusa, vidjet ćemo da je Logrotate zabilježio određene podatke o izvršenju koje smo izvršili:
mačka / dom / riješeno / logrotate-stanjeVidjet ćemo sljedeće:
POVEĆAJTE
Logrotate je zabilježio zapise koje je analizirao i kada ih je zadnji put smatrao za rotaciju. Ako sat kasnije pokrenemo istu naredbu, zapis će se rotirati prema namjeni. Ako želite prisiliti Logrotate da rotira datoteku dnevnika kada drugačije ne bi trebalo, možemo upotrijebiti --force zastavu:
sudo logrotate /home/solvetic/logrotate.conf --state / home / solutiontic / logrotate -state --verbose -force
5. Stvaranje zakazanog zadatka za postizanje Linuxa
Konačno, moramo konfigurirati cron posao da izvodi Logrotate svaki sat. Da bismo to učinili, otvorili smo crontab našeg korisnika izvršavanjem sljedećeg:
crontab -eU otvorenu datoteku dodat ćemo sljedeći redak:
14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solutiontic / logrotate-state
POVEĆAJTE
Ovaj će se zadatak izvršavati u 14. minuti svakog sata, svaki dan. U osnovi radi s istom naredbom logrotate koju smo pokrenuli ranije, iako smo proširili logrotate na punu putanju / usr / sbin / logrotate. Datoteku možemo spremiti pomoću kombinacije tipki Ctrl + O i izaći iz nje pomoću Ctrl + X.
Tako smo vidjeli kako je Logrotate jednostavan, ali učinkovit uslužni program kada je u pitanju upravljanje i kontrola zapisa u bilo kojoj Linux distribuciji.