Tavoite
tavoite tämä opetusohjelma on oppia eri linux kernel log tasoilla, miten ne on järjestetty, ja miten voimme setup mitä viestit näkyvät konsolin riippuen niiden vakavuudesta.
Vaatimukset
- Pääkäyttäjän oikeudet muokata asetustiedostoja
Vaikeuksia
HELPPO
Johdanto
hallinta Linux kernel log files on yksi keskeinen osa koneen hallinto: lokit voi yksinkertaisesti ilmoittaa meille valtion daemon, tai näyttää kriittisiä viestejä tai varoituksia., Tässä opetusohjelmassa, me näemme eri tyyppi lokin taso käyttää linux-ytimen, miten he ovat järjestämässä vakavuus ja miten voimme suodattaa viestit näkyvät konsolin riippuen se.
Linux kernel log tasoilla
On periaatteessa kahdeksan kirjautua tasoa, joka viestin lähetti by linux-ytimen voi hyväksyä, alkaenlevel 0
ja vähentämällä vakavuus, kunneslevel 7
: alin log-tason tunniste, kriittisin yhteydessä.,
kun konsolin oletusarvoksi asetetaan lokitaso joko pysyvästi tai tilapäisesti, se toimii suodattimena, jolloin näytetään vain viestit, joiden lokitaso on sitä alempi (siis viestit, joiden vaikeusaste on korkeampi). Katsotaanpa lyhyesti, miten log tasot ovat järjestyksessä: ensimmäinen kirjautuminen taso on0
, jotka tunnistetaanKERN_EMERG
string. Tämä on korkein taso vakavuusjärjestyksessä: se on hyväksytty viesteillä järjestelmän epävakaudesta tai välittömistä kaatumisista.,
Loglevel1
taiKERN_ALERT
se mitä tulee heti. Tätä tasoa käytetään tilanteissa, joissa käyttäjän huomio on välittömästi tarpeen.
seuraavan kirjautua tasolla, jotta vakavuus onKERN_CRIT
, tai loglevel2
. Tätä vakavuustasoa käytetään kertomaan kriittisistä virheistä, sekä laitteistosta että ohjelmistosta.
Loglevel3
myös tunnistetaanKERN_ERR
merkkijono, se on seuraava mittakaavassa., Tämän tason viestejä käytetään usein ilmoittamaan käyttäjälle ei-kriittisistä virheistä, kuten esimerkiksi epäonnistuneesta tai ongelmallisesta laitetunnistuksesta tai yleisemmin kuljettajaan liittyvistä ongelmista.
Tilata RSS-ja UUTISKIRJE ja saat uusimmat Linux-uutiset, työpaikat, ura neuvonta-ja opetusohjelmia.,
KERN_WARNING
, tai loglevel4
se on kirjautuminen taso yleensä käyttää oletuksena useimmissa linux-jakeluissa. Tällä tasolla sitä käytetään näyttämään varoituksia tai viestejä ei-välittömistä virheistä.
Loglevel5
se onKERN_NOTICE
. Viestit, jotka käyttävät tätä vakavuustasoa, koskevat tapahtumia, jotka voivat olla huomionarvoisia.,
Loglevel6
se onKERN_INFO
: tämä on loki tasolla käyttää kattava viestejä siitä, että toiminta suoritetaan ytimen.
Lopuksi, olemmeKERN_DEBUG
, tai loglevel7
, jota käytetään pääasiassa testaus.
nykyisen oletuslokin tason
tarkistaminen järjestelmässämme käytetyllä oletuslogitasolla on erittäin helppoa. Meidän tarvitsee vain tutkia/proc/sys/kernel/printk
– tiedoston sisältöä., Niille teistä, jotka eivät tiedä,/proc
se onvirtual filesystem
: tiedostoja, sisälsi se ei ole oikeastaan levylle,mutta ovat visuaalinen esitys system valtion luoma kernel andmaintained muistiin. Tässä tapauksessa voimme esimerkiksi käyttää tiedostoa mentionedabove kyselläksemme tietoja oursystem – konsolin oletuslokitasosta. Kaikki meidän täytyy tehdä, on ajaa:
$ cat /proc/sys/kernel/printk
Tämä on tyypillinen lähtö komento:
4 4 1 7
ensimmäinen arvo meidän lähtö on nykyinenconsole_loglevel
., Tämä on tieto, jota etsimme: arvo,4
tässä tapauksessa edustaa log taso tällä hetkellä käytetään. Kuten sanottu ennen tämä tarkoittaa, että vain viestit hyväksymällä vakavuustaso korkeampi kuin se, näytetään konsolissa.
toinen arvo tuotos edustaadefault_message_loglevel
. Tätä arvoa käytetään automaattisesti viestejä ilman erityistä log taso: jos viesti ei liity kirjaudu tasolla, tämä yksi käyttää sitä.
lähdön kolmas arvo ilmoittaaminimum_console_loglevel
statuksen., Se ilmaisee pienimmän loglevel, joita voidaan käyttääconsole_loglevel
. Tässä käytetty taso on1
, korkein.
Lopuksi, viimeinen arvo edustaadefault_console_loglevel
, joka on oletuksena loglevel käytetäänconsole_loglevel
käynnistyksen aikana.,
täydellisyyden vuoksi on todettava, että samoja tietoja voidaan hakea myös käyttämälläsysctl
komento käynnissä:
$ sysctl kernel.printk
Muuttaa oletuksena konsoli log tasolla
Me vain näki, miten hakea tietoa nykyisestä loglevel käyttää konsolin. Joissakin tilanteissa saatamme haluta muuttaa tätä arvoa: katsotaanpa, miten voimme suorittaa tämän tehtävän.
kaikkein yksinkertainen menetelmä, jota voimme käyttää, on kirjoittaa uusi arvo/proc/sys/kernel/printk
tiedosto., Tämä on kuitenkin väliaikainen ratkaisu, eikä uusi asetus jatka koneen uudelleenkäynnistystä., Sanoa emme halua muuttaa oletuksena konsoli loglevel-kohtaan3
tässä on mitä meillä olisi ajaa:
$ echo "3" | sudo tee /proc/sys/kernel/printk
Tai jos käytätroot
tilin suoraan:
# echo "3" > /proc/sys/kernel/printk
katsomalla tiedoston sisältöä, voimme tarkistaa loglevel on nyt yksi meidän määritelty meidän komento:
$ cat /proc/sys/kernel/printk3 4 1 7
Voimme saada saman tuloksen käyttämälläsysctl
komento:
sudo sysctl -w kernel.printk=3
toistan sen jälleen: nämä ovat tilapäisiä, ei-pysyviä ratkaisuja., Muuttaa oletuksena loglevel jatkuvasti tavalla, meidän täytyy muuttaa/etc/default/grub
tiedosto, kulkeeloglevel
parametri ytimen komentorivillä käynnistyksen: Edellä on sisältö /etc/default/grub tiedosto, ja korosti, että se on parametri, joka olisi lisättäväGRUB_CMDLINE_LINUX
, joka sisältää ytimen komentorivin ohjeet. Tässä tapauksessa käytimmeloglevel=3
, koska halusimme käyttää erityisiä loglevel konsoli., Muokkaamisen jälkeen tiedosto ja tallentamalla muutokset, meidän täytyy ladata grub niin, että uusi kokoonpano on sovellettava seuraavan uudelleenkäynnistyksen: komento suorittaa tämän toiminnon riippuu jakelu me ovat käynnissä. Yleisesti komento on:
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Debian-pohjainen jakelu, kääre script käytetään periaatteessa tehdä sama operaatio:
$ sudo update-grub
grub kokoonpano on päivitetty, ja seuraavan uudelleenkäynnistyksen, määritetty log tasolla hyväksytään oletuksena.,
Johtopäätökset
tässä opetusohjelmassa olemme oppineet, miten linux-ytimen lokit ovat järjestetty riippuen niiden vakavuuden tasolla. Näimme myös, miten voimme muuttaa oletusasetusta niin, että konsolissa näytetään vain tiettyjä ytimen lähettämiä viestejä samoilla kriteereillä. Lopulta näimme, miten nämä muutokset voidaan tehdä pysyviksi.