Kun kohtaat ongelmia palvelimesi suorituskyvyn kanssa, ensimmäinen asia, joka sinun on tehtävä, on tarkistaa Linux-lokit . Järjestelmälokista löydät hyödyllisiä diagnostiikkaviestejä käyttöjärjestelmän eri osista, kuten kernelin tai eri palveluiden osalta, joten löydät todennäköisesti vian syyn sieltä.
Jokainen lokin viesti syntyy käyttöjärjestelmän tiettyjen tapahtumien seurauksena: käyttäjästä, valtuutuksesta palvelun sulkemiseen tai sovellusvirheeseen. Näillä tapahtumilla on erilaiset prioriteetit sen mukaan, kuinka kriittisiä ne ovat. Linuxissa on seuraavan tyyppisiä tapahtumia:
emerg- epäonnistuminen, korkein prioriteetti;alert- kiireellinen varoitus;crit- kriittinen tapahtuma;err- tavallinen virhe;warn- tavallinen varoitus;notice- ilmoitus;info- tiedotusviesti;debug- virheenkorjaustiedot;
Tällä hetkellä Linuxin tärkeimmät lokien keruupalvelut ovat rsyslog ja systemd-journald . Ne sopivat useimpiin nykyaikaisiin jakelupaketteihin ja toimivat itsenäisesti.
rsyslog
Tämän palvelun lokit sijaitsevat kansiossa ” /var/log/ ” tavallisten tekstitiedostojen muodossa. Lokiviestit sijoitetaan eri tiedostoihin tapahtuman tyypistä riippuen. Esimerkiksi ” /var/log/auth.log ” sisältää tietoja käyttäjien valtuutuksista järjestelmässä ja ” /var/log/kern.log ” sisältää ytimen viestejä. Tiedostonimet voivat vaihdella eri jakelupaketeissa, joten katsotaanpa asetustiedostoa saadaksesi käsityksen siitä, missä ” /etc/rsyslog.d/50-default.conf ” sijaitsee.
Nämä säännöt näyttävät, mikä tiedosto sisältää minkäkin lokiviestityypin. Vasen osa näyttää viestityypin seuraavassa muodossa " [Lähde].[Prioriteetti] " ja oikea osa näyttää lokitiedoston nimen. Viestin tyyppiin voidaan lisätä merkki " * ". Se tarkoittaa tyhjää arvoa tai " ei mitään ", joka poistaa viestin luettelosta. Tarkastellaanpa kahta ensimmäistä sääntöä tarkemmin.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Ensimmäinen sääntö tarkoittaa, että kaikki valtuutusmekanismilta vastaanotetut viestit tallennetaan tiedostoon " /var/log/auth.log ". Kaikki valtuutusyritykset (sekä onnistuneet että epäonnistuneet) rekisteröidään tähän tiedostoon. Toinen sääntö osoittaa, että kaikki muut paitsi valtuutukseen liittyvät viestit tallennetaan tiedostoon " /var/log/syslog ". Nämä kaksi tiedostoa ovat yleensä suosituimpia. Seuraavat säännöt määrittelevät polun, johon kernel-lokit tallennetaan " kern.* " ja sähköpostipalvelun lokit " mail.* ".
Lokitiedostot voidaan avata millä tahansa tekstieditorilla, kuten less , cat tai tail . Avataan tiedosto ” /var/log/auth.log ” .
less /var/log/auth.log
Tiedoston jokainen rivi on erillinen sovelluksesta tai palvelusta saatu viesti. Kaikilla viesteillä niiden lähteestä riippumatta on yksi muoto ja ne koostuvat viidestä osasta. Otetaan esimerkkinä kuvakaappauksessa korostettu viesti.
- Viestin aikaleima - "12. helmikuuta 06:18:33"
- Viestin lähettäneen tietokoneen nimi - "vds"
- Viestin lähettäneen sovelluksen tai palvelun nimi - "sshd"
- Prosessin tunnus - [653]
- Viestin teksti - "Hyväksytty salasana mihailille 188.19.42.165 portista 2849 ssh2"
Tämä oli esimerkki onnistuneesta SSH-yhteydestä.
Ja tältä näyttää epäonnistunut kirjautumisyritys:
Tämä tiedosto tallentaa myös komennot, joilla on lisäoikeudet
Avataan tiedosto / var/log/syslog
Korostettu viesti kuvakaappauksessa on viesti verkkoliitännän sulkemisesta.
Tiedon etsimiseen pitkistä tekstitiedostoista käytä grep- apuohjelmaa. Löydät kaikki pptpd- palvelusta vastaanotetut viestit tiedostosta " /var/log/syslog ".
grep 'pptpd' /var/log/syslog
Diagnostiikan aikana voit käyttää Tail -apuohjelmaa, joka voi näyttää useita tiedostojen viimeisiä rivejä. Komennolla ” tail -f /var/log/syslog ” voit tarkastella lokien tallennusta reaaliajassa.
Rsyslog -palvelu on erittäin joustava ja tehokas. Sitä voidaan käyttää lokien keräämiseen sekä paikallisissa järjestelmissä että yritystasolla. Löydät täydellisen dokumentaation viralliselta verkkosivustolta https://www.rsyslog.com/
Lokien kierto Linuxissa
Lokien tallennus tapahtuu jatkuvasti, joten tiedostojen koko kasvaa jatkuvasti. Kiertomekanismi varmistaa vanhojen lokien automaattisen arkistoinnin ja uusien tiedostojen luomisen. Säännöistä riippuen tämä voi tapahtua päivittäin, viikoittain, kuukausittain tai kokorajoituksen mukaan. Kun uusia lokeja luodaan, vanhat voidaan yksinkertaisesti poistaa tai lähettää sähköpostitse. Lokien kierrätyksen suorittaa logrotate- apuohjelma. Löydät pääasetukset tiedostosta " /etc/logrotate.conf ". Tiedostojen sisältöä käsitellään myös kansiossa " /etc/logrotate.d/ " .
Uudet säännöt voidaan kirjata pääasetustiedostoon. On kuitenkin parasta luoda erillinen tiedosto hakemistoon ” /etc/logrotate.d/ ”. Oletusarvoisesti tässä hakemistossa on muutamia tiedostoja.
Katsotaanpa tiedostoa ” /etc/logrotate.d/rsyslog ”, joka sisältää rsyslog- palvelun lokien rotaatiosäännöt.
Ensin säännön tulee sisältää polku lokitiedostoon ja sitten kaikki ohjeet kaarevissa suluissa.
- kierrä 7 - säilytettävien tiedostojen määrä - 7
- päivittäin - Luo uusi tiedosto joka päivä
- puristaa - pakkaa ja arkistoi vanhat tiedostot
Kuvakaappauksesta näet, että kansiossa ” /var/log/ ” on pääloki ” syslog ” ja 7 arkistoa, jotka vastaavat asetustiedoston sääntöjä.
Löydät tarkemman kuvauksen logrotate-komennosta käyttöoppaasta suorittamalla komennon " man logrotate ".
Linux-lokien kerääminen - päiväkirja
Lokien keruupalvelu systemd-journald on osa systemd:n alustusjärjestelmää . Linuxin lokitiedostot tallennetaan kansioon " /var/log/journal/ " erityisessä muodossa, ja ne voidaan avata journalctl -apuohjelmalla . Tietueiden muoto on täsmälleen sama kuin rsyslogissa.
Komento journalctl ilman attribuutteja näyttää kaikki tietueet, mutta se ei sovellu suuremmille lokeille. Katsotaanpa joitakin tämän apuohjelman ominaisuuksia.
journalctl -b- näytä kaikki tietueet viimeisestä käynnistyksestäjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- Näytä ennätys tietyn ajanjakson sisälläjournalctl -u pptpd- näyttää tietueita tietystä palvelustajournalctl -k- näytä ytimen viestitjournalctl -p err- näyttää tietyn prioriteetin viestit, korkeamman prioriteetin viestit tässä tapauksessa (kritiikki, hälytys, emerg)journalctl -f- Näytä viestit reaaliajassa
Paremman joustavuuden saavuttamiseksi voit yhdistää nämä vaihtoehdot. Näytämme kaikki pptpd- palvelun virheet.
journalctl -u pptpd -p err
Jos määrität suoritettavan tiedoston polun attribuuttina, apuohjelma näyttää kaikki tämän tiedoston lähettämät viestit. Näytetään kaikki tiedoston " /usr/bin/sudo " lähettämät viestit 18. helmikuuta 2020 klo 04.15 alkaen. Itse asiassa se näyttää kaikki komennot, jotka on suoritettu korkeammilla oikeuksilla.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Selvittääksesi kuinka paljon levytilaa lokitiedostot vievät seuraavan komennon suorittamiseen
journalctl --disk-usage
Jos haluat rajoittaa lokitiedoston 1 Gb:iin, suorita seuraava komento
journalctl --vacuum-size=1G
Binääritiedostojen avaaminen
Tarkastellaan nyt joitakin erikoistiedostoja kansiossa ” /var/log/ ”, johon kaikki kirjautumisyritykset tallennetaan. Nämä tiedostot ovat binääritiedostoja ja ne voidaan avata vain erikoisohjelmilla.
/var/log/wtmp sisältää tietoja onnistuneista kirjautumisyrityksistä. Avaa se viimeisellä apuohjelmalla.
/var/log/btmp - sisältää kaikki epäonnistuneet kirjautumisyritykset. Sen voi avata lastb-komennolla lisäoikeuksilla. Attribuutti -n määrittää näytettävien rivien määrän tiedoston lopusta lukien.
/var/log/lastlog - Sisältää kunkin tilitietueen viimeisimmän kirjautumisajan. Se voidaan avata lastlog- komennolla