Kai susiduriate su bet kokiomis serverio veikimo problemomis, pirmiausia turite tai padaryti patikrinkite savo Linux žurnalus. Sistemos žurnale galite rasti naudingų diagnostikos pranešimų iš skirtingų operacinės sistemos komponentų, pvz., branduolio ar įvairių paslaugų, todėl greičiausiai ten rasite gedimo priežastį.
Kiekvienas žurnalo pranešimas generuojamas dėl tam tikrų operacinės sistemos įvykių: nuo vartotojo, autorizacijos iki paslaugos išjungimo ar programos gedimo. Šie įvykiai turi skirtingus prioritetus, priklausomai nuo jų kritiškumo. „Linux“ sistemoje yra šie įvykių tipai:
emerg- nesėkmė, aukščiausias prioritetas;alert- skubus įspėjimas;crit- kritinis įvykis;err- įprasta klaida;warn- įprastas įspėjimas;notice- pranešimas;info- informacinis pranešimas;debug- derinimo informacija;
Šiuo metu pagrindinės „Linux“ žurnalų surinkimo paslaugos yra rsyslog bei systemd-žurnalas. Jie derinami su dauguma šiuolaikinių platinimo paketų ir veikia savarankiškai.
rsyslog
Šios paslaugos žurnalai yra „/ var / log /“ aplanką įprastų tekstinių failų pavidalu. Žurnalo pranešimai dedami į skirtingus failus, atsižvelgiant į įvykio tipą. Pavyzdžiui, „/var/log/auth.log“ yra informacija apie naudotojų autorizaciją sistemoje ir „/var/log/kern.log" yra branduolio pranešimai. Failų pavadinimai gali skirtis skirtinguose platinimo paketuose, todėl pažvelkime į konfigūracijos failą, kad suprastumėte, kas kur yra "/etc/rsyslog.d/50-default.conf".
Šios taisyklės parodo, kuriame faile yra kiekvieno tipo žurnalo pranešimai. Kairėje dalyje rodomas pranešimo tipas tokia forma "[Šaltinis].[Prioritetas]“ ir dešinėje rodomas žurnalo failo pavadinimas. Rašant pranešimo tipą “*" simbolis gali būti pridėtas. Tai reiškia tuščią reikšmę arba "nė vienas“, kuris pašalina jį iš sąrašo. Pažvelkime į pirmas dvi taisykles atidžiau.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Pirmoji taisyklė reiškia, kad visi pranešimai, gauti iš autorizacijos mechanizmo, bus įrašyti į „/var/log/auth.log" failą. Visi autorizavimo bandymai (ir sėkmingi, ir ne) bus užregistruoti šiame faile. Antroji taisyklė nurodo, kad visi pranešimai, išskyrus tuos, kurie yra susiję su įgaliojimu, bus įrašyti į "/ var / log / syslog" failą. Šie du failai paprastai yra populiariausi. Šios taisyklės apibrėžia branduolio žurnalų saugojimo kelią "kern.*“ ir pašto paslaugų žurnalai “paštu.*"
Žurnalo failus galima atidaryti naudojant bet kurį teksto rengyklę, pvz mažiau, kaip, uodega. Atidarykime „/var/log/auth.log“ failą
less /var/log/auth.log
Kiekviena failo eilutė yra atskiras pranešimas, gautas iš programos ar paslaugos. Visi pranešimai, nepaisant jų šaltinio, yra vieno formato ir susideda iš 5 dalių. Kaip pavyzdį paimkime pažymėtą pranešimą ekrano kopijoje.
- Pranešimo laiko žyma – „Vasario 12 d. 06:18:33“
- Kompiuterio, iš kurio buvo išsiųstas pranešimas, pavadinimas – „vds“
- Programos ar paslaugos, kuri išsiuntė pranešimą, pavadinimas - „sshd“
- Proceso ID – [653]
- Pranešimo tekstas – „Priimtas slaptažodis mihail iš 188.19.42.165 prievado 2849 ssh2“
Tai buvo sėkmingo prisijungimo prie SSH pavyzdys.
Štai kaip atrodo nesėkmingas prisijungimo bandymas:
Šis failas taip pat įrašo komandas su išplėstiniais leidimais
Atidarykime / var / log / syslog failas
Ekrano kopijoje paryškintas pranešimas yra pranešimas apie tinklo sąsajos išjungimą.
Norėdami ieškoti informacijos per ilgus tekstinius failus, naudokite grep naudingumas. Galite rasti visus pranešimus, gautus iš pptpd paslauga „/ var / log / syslog“ failą.
grep 'pptpd' /var/log/syslog
Diagnostikos metu galite naudoti uodega programa, kuri gali rodyti kelias paskutines failų eilutes. komanda“tail -f / var / log / syslog“ leis žiūrėti žurnalų įrašymą realiuoju laiku.
Tarnyba rsyslog yra labai lankstus ir galingas. Jis gali būti naudojamas rąstų kirtimui vietinėse sistemose ir įmonės lygiu. Visą dokumentaciją galite rasti oficialioje svetainėje https://www.rsyslog.com/
Žurnalų rotacija Linux sistemoje
Žurnalų įrašymas vyksta nuolat, todėl failų dydis nuolat auga. Sukimosi mechanizmas užtikrina automatinį senų žurnalų archyvavimą ir naujų failų kūrimą. Priklausomai nuo taisyklių, tai gali vykti kasdien, kas savaitę, kas mėnesį arba pagal dydžio limitą. Sukūrus naujus žurnalus, senus galima tiesiog ištrinti arba išsiųsti el. paštu. Rąstų sukimąsi atlieka pasiekti naudingumas. Pagrindinę konfigūraciją galite rasti „/etc/logrotate.conf" failą. Failų turinys taip pat apdorojamas "/etc/logrotate.d/“Aplanką
Naujas taisykles galima prisijungti prie pagrindinio konfigūracijos failo. Tačiau geriausia sukurti atskirą failą „/etc/logrotate.d/Pagal numatytuosius nustatymus šiame kataloge yra keli failai
Pažvelkime į failą "/etc/logrotate.d/rsyslog“, kuriame yra žurnalų rotacijos taisyklės rsyslog paslaugos.
Pirma, taisyklėje turi būti kelias į žurnalo failą, o tada visos gairės turi būti pateiktos lenktuose skliaustuose.
- pasukti 7 - saugotinų failų skaičius - 7
- kasdien - kiekvieną dieną sukurkite naują failą
- suspausti - suspausti ir archyvuoti senus failus
Ekrano kopijoje galite matyti, kad „/ var / log /“ aplanke yra pagrindinis žurnalas “sistemos dienoraštis“ ir 7 archyvai, atitinkantys konfigūracijos failo taisykles.
Išsamesnį logrotate aprašymą galite rasti vadove, vykdydami „vyras logrotate“ komanda
Linux žurnalų rinkimas – žurnalas
Rąstų nuėmimo paslauga systemd-žurnalas yra inicijavimo sistemos dalis systemd. „Linux“ žurnalo failai saugomi „/var/log/journal/“ specialiu formatu ir gali būti atidarytas naudojant Journalctl naudingumas. Įrašų formatas yra toks pat kaip ir rsyslog.
Komanda Journalctl be atributų rodo visus įrašus, bet netinka didesniems žurnalams. Pažvelkime į kai kurias šios programos parinktis.
journalctl -b- rodyti visus įrašus nuo paskutinio startojournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- rodyti įrašą per tam tikrą laikotarpįjournalctl -u pptpd- rodyti tam tikros paslaugos įrašusjournalctl -k- rodyti branduolio pranešimusjournalctl -p err- rodyti tam tikro prioriteto pranešimus, šiuo atveju aukštesnio prioriteto pranešimus (kritinis, įspėjimas, atsiradimas)journalctl -f- rodyti pranešimus realiuoju laiku
Norėdami užtikrinti didesnį lankstumą, šias parinktis galite derinti. Parodykime visas klaidas pptpd tarnyba
journalctl -u pptpd -p err
Jei kaip atributą nurodysite kelią į vykdomąjį failą, programa parodys visus šio failo siunčiamus pranešimus. Parodykime visus pranešimus, išsiųstus iš failo “/usr/bin/sudo” nuo 04:15 18 m. vasario 2020 d. Tiesą sakant, bus rodomos visos komandos, vykdomos su didesniais leidimais.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Norėdami sužinoti, kiek vietos diske užima žurnalo failai, norint vykdyti šią komandą
journalctl --disk-usage
Norėdami apriboti žurnalo failą iki 1 Gb, vykdykite šią komandą
journalctl --vacuum-size=1G
Dvejetainių failų atidarymas
Dabar pažvelkime į kai kuriuos specialius failus „/ var / log /” aplanką, kuriame saugomi visi bandymai prisijungti Šie failai yra dvejetainiai ir gali būti atidaryti tik specialiomis programomis.
/var/log/wtmp yra informacijos apie sėkmingus prisijungimo bandymus. Norėdami jį atidaryti, naudokite paskutinę programą.
/var/log/btmp - yra visi nesėkmingi prisijungimo bandymai. Jį galima atidaryti naudojant lastb su išplėstiniais leidimais. Atributas -n apibrėžia eilučių, rodomų nuo failo pabaigos, skaičių.
/var/log/lastlog - yra kiekvieno paskyros įrašo paskutinio prisijungimo veiksmo laikas. Jį galima atidaryti su paskutinis žurnalas