Linux zapisuje zapise dok je program pokrenut. Linux log datoteke po redu. I drugi časopisi

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Uvod

Jedna od stvari koja GNU/Linux čini odličnim operativnim sustavom je ta da se gotovo sve što se događa na i sa sustavom može na neki način zabilježiti. Ove su informacije neprocjenjive za korištenje sustava na informiran način i trebale bi biti jedan od prvih resursa koje koristite za rješavanje problema sa sustavom i aplikacijama. Zapisi vam mogu reći gotovo sve što trebate znati, sve dok imate ideju gdje prvo potražiti.

Vaš Ubuntu sustav pruža vitalne informacije koristeći različite sistemske log datoteke. Ove datoteke dnevnika obično su obični ASCII tekst u standardnom formatu datoteke dnevnika, a većina ih se nalazi u tradicionalnom poddirektoriju dnevnika sustava /var/log. Mnoge generira daemon zapisnika sustava, syslogd u ime sustava i određenih aplikacija, dok neke aplikacije generiraju vlastite zapisnike pisanjem izravno u datoteke u /var/log .

Ovaj vodič govori o tome kako čitati i koristiti nekoliko od ovih datoteka zapisnika sustava, kako koristiti i konfigurirati demona zapisivanja sustava, syslogd i kako radi rotacija zapisnika. Vidite Resursi odjeljak za dodatne informacije.

Ciljna publika

Ovaj će vodič biti dovoljno jednostavan za korištenje ako imate iskustva s korištenjem konzole i uređivanjem tekstualnih datoteka pomoću uređivača teksta. Pogledajte kraj ovog dokumenta za neke bitne naredbe koje vam mogu pomoći da se snađete u tim datotekama ako ste relativno novi u naredbenom retku.

Dnevnici sustava

Dnevnici sustava prvenstveno se bave funkcioniranjem Ubuntu sustava, a ne nužno dodatnim aplikacijama koje dodaju korisnici. Primjeri uključuju mehanizme autorizacije, demone sustava, poruke sustava i sam sveobuhvatni zapisnik sustava, syslog.

Dnevnik autorizacije

Dnevnik autorizacije prati korištenje autorizacijskih sustava, mehanizama za autorizaciju korisnika koji traže korisničke lozinke, kao što je sustav Pluggable Authentication Module (PAM), naredba sudo, udaljene prijave na sshd i tako dalje. Datoteci zapisnika autorizacije može se pristupiti na /var/log/auth.log. Ovaj dnevnik je koristan za učenje o prijavama korisnika i korištenju naredbe sudo.

Koristite grep da smanjite glasnoću. Na primjer, da vidite samo informacije u zapisniku autorizacije koje se odnose na sshd prijave, koristite ovo:

grep sshd /var/log/auth.log | manje

Dnevnik demona

Daemon je program koji radi u pozadini, općenito bez ljudske intervencije, obavljajući neke operacije važne za pravilan rad vašeg sustava. Dnevnik demona na /var/log/daemon.log sadrži informacije o pokrenutim demonima sustava i aplikacija kao što su demon Gnome Display Manager gdm, Bluetooth HCI demon hcid ili demon MySQL baze podataka mysqld. To vam može pomoći u rješavanju problema s određenim demonom.

Opet, upotrijebite grep da pronađete određene informacije, uključite ime demona koji vas zanima.

Dnevnik otklanjanja pogrešaka

Zapisnik ispravljanja pogrešaka na /var/log/debug pruža detaljne poruke o ispravljanju pogrešaka iz Ubuntu sustava i aplikacija koje se prijavljuju na syslogd na razini DEBUG.

Dnevnik jezgre

Dnevnik kernela na /var/log/kern.log daje detaljan dnevnik poruka od Ubuntu Linux zrno. Ove se poruke mogu pokazati korisnima za, na primjer, rješavanje problema novog ili prilagođenog kernela.

Prstenasti međuspremnik jezgre

Prstenasti međuspremnik kernela zapravo nije log datoteka sama po sebi, već područje u pokrenutom kernelu za koje možete tražiti poruke o pokretanju kernela putem uslužnog programa dmesg. Da biste vidjeli poruke, koristite ovo:

dmesg | manje

Ili za traženje redaka koji spominju sustav Plug & Play, na primjer, koristite grep ovako:

dmesg | grep pnp | manje

Prema zadanim postavkama, skripta za inicijalizaciju sustava /etc/init.d/bootmisc.sh također šalje sve poruke o pokretanju sustava u datoteku /var/log/dmesg. Ovu datoteku možete pregledavati i pretraživati ​​na uobičajeni način.

Dnevnik sustava

Dnevnik sustava obično sadrži najviše informacija prema zadanim postavkama o vašem Ubuntu sustavu. Nalazi se na /var/log/syslog i može sadržavati informacije koje drugi dnevnici ne sadrže. Posavjetujte se sa Zapisnikom sustava kada ne možete pronaći željene informacije o zapisniku u drugom zapisniku. Također sadrži sve što je bilo u /var/log/messages.

Dnevnici aplikacije

Mnoge aplikacije također stvaraju zapise u /var/log. Ako ispišete sadržaj vašeg /var/log poddirektorija, vidjet ćete poznate nazive, kao što je /var/log/apache2 koji predstavlja zapise za web poslužitelj Apache 2, ili /var/log/samba , koji sadrži zapise za Samba server. Ovaj odjeljak vodiča predstavlja neke specifične primjere dnevnika aplikacije i informacije sadržane u njima.

Dnevnici HTTP poslužitelja Apache

Zadana instalacija za Apache2 na Ubuntu stvara poddirektorij dnevnika: /var/log/apache2. Unutar ovog poddirektorija nalaze se dvije datoteke dnevnika s dvije različite svrhe:

    /var/log/apache2/access.log - zapisi svake poslužene stranice i svake datoteke koju je učitao web poslužitelj.

    /var/log/apache2/error.log - zapisi svih stanja grešaka koje prijavljuje HTTP poslužitelj

Prema zadanim postavkama, svaki put kada Apache pristupi datoteci ili stranici, zapisnici pristupa bilježe IP adresu, vrijeme i datum, identifikacijski niz preglednika, HTTP kod rezultata i tekst stvarnog upita, koji će općenito biti GET za prikaz stranice. Pogledajte Apache dokumentaciju za potpuni pregled; dosta toga se može izvući iz ove datoteke, i doista postoje mnogi statistički paketi koji vrše analizu ovih zapisa.

Također, svaki put kada se pojavi bilo kakva greška, Apache dodaje redak u zapisnik grešaka. Ako pokrećete PHP s onemogućenim porukama o pogreškama i upozorenjima, to može biti vaš jedini način da identificirate greške.

CUPS Ispis zapisnika sustava

Common Unix Printing System (CUPS) koristi zadanu datoteku dnevnika /var/log/cups/error_log za pohranu informacija i poruka o pogreškama. Ako trebate riješiti problem s ispisom u Ubuntuu, ovaj zapisnik može biti dobro mjesto za početak.

Dnevnik lovca na rootkite

Uslužni program Rootkit Hunter (rkhunter) provjerava vaš Ubuntu sustav na stražnja vrata, sniffere i rootkite, što su sve znakovi kompromitacije vašeg sustava. Dnevnik koji koristi rkhunter nalazi se na /var/log/rkhunter.log.

Zapisi Samba SMB poslužitelja

Server Message Block Protocol (SMB) poslužitelj, Samba, popularno se koristi za dijeljenje datoteka između vašeg Ubuntu računala i drugih računala koja podržavaju SMB protokol. Samba čuva tri različite vrste zapisa u poddirektoriju /var/log/samba:

    log.nmbd - poruke koje se odnose na Sambinu NETBIOS preko IP funkcionalnosti (mrežne stvari)

    log.smbd - poruke koje se odnose na Sambinu SMB/CIFS funkcionalnost (stvari za dijeljenje datoteka i ispisa)

    log. - poruke koje se odnose na zahtjeve za uslugama s IP adrese sadržane u nazivu datoteke dnevnika, na primjer, log.192.168.1.1.

Dnevnik poslužitelja X11

Zadani X11 Windowing poslužitelj koji se koristi s Ubuntuom je Xorg X11 poslužitelj, a pod pretpostavkom da vaše računalo ima definiran samo jedan zaslon, ono pohranjuje poruke dnevnika u datoteku /var/log/Xorg.0.log. Ovaj dnevnik je koristan za dijagnosticiranje problema s vašim X11 okruženjem.

Dnevnici koji nisu čitljivi

Neke datoteke dnevnika koje se nalaze u poddirektoriju /var/log dizajnirane su tako da ih mogu čitati aplikacije, ne nužno i ljudi. Slijede neki primjeri takvih log datoteka koje se pojavljuju u /var/log.

Dnevnik neuspješnih prijava

Dnevnik neuspješnih prijava koji se nalazi na /var/log/faillog zapravo je dizajniran da se analizira i prikazuje pomoću naredbe faillog. Na primjer, za ispis nedavnih neuspješnih prijava upotrijebite ovo:

faillog

Dnevnik zadnjih prijava

Posljednji zapisnik prijava na /var/log/lastlog obično ne bi trebali analizirati i ispitivati ​​ljudi, već bi ga trebali koristiti zajedno s naredbom lastlog. Na primjer, da biste vidjeli popis prijava s naredbom lastlog, prikazanu jednu stranicu po ekranu s naredbom manje, upotrijebite sljedeću naredbu:

posljednji zapis | manje

Dnevnik zapisa o prijavi

Datoteka /var/log/wtmp sadrži zapise o prijavi, ali za razliku od /var/log/lastlog gore, /var/log/wtmp se ne koristi za prikaz popisa nedavnih prijava, već je umjesto toga koriste drugi uslužni programi kao što je who naredba za prikaz popisa trenutno prijavljenih korisnika. Ova naredba će prikazati korisnike koji su trenutno prijavljeni na vašem računalu:

WHO

Demon za bilježenje sustava (syslogd)

Demon za bilježenje sustava syslogd, također poznat kao sysklogd, čeka poruke za bilježenje iz brojnih izvora i usmjerava poruke na odgovarajuću datoteku ili mrežno odredište. Poruke koje se bilježe u syslogd obično sadrže uobičajene elemente kao što su nazivi hostova sustava i vremenske oznake uz specifične podatke dnevnika.

Konfiguracija syslogd

Konfiguracijska datoteka syslogd demona je /etc/syslog.conf. Svaki unos u ovoj datoteci sastoji se od dva polja, selektora i radnje. Polje selektora specificira značajku koja se bilježi, kao što je na primjer auth objekt koji se bavi autorizacijom i razinu prioriteta za evidentiranje takvih informacija, kao što je info, ili upozorenje. Polje akcije sastoji se od cilja za podatke dnevnika, kao što je standardna datoteka dnevnika (tj. /var/log/syslog) ili naziv glavnog računala udaljenog računala na koji se šalju podaci dnevnika.

Eho poruka na syslogd s Loggerom

Uredan uslužni program postoji u alatu za bilježenje, koji omogućuje proizvoljno postavljanje poruka u zapisnik sustava (tj. /var/log/syslog). Na primjer, pretpostavimo da je vaše korisničko ime buddha i da želite unijeti poruku u syslog o posebno ukusnoj pizzi koju jedete, možete koristiti naredbu kao što je sljedeća na odzivniku terminala:

logger Ova pizza iz Vinnys Gourmet Rocks

i završili biste s linijom u datoteci /var/log/syslog poput ove:

12. siječnja 23:34:45 localhost buddha: Ova pizza iz Vinnys Gourmet Rocks

Možete čak odrediti oznaku iz koje dolaze poruke i preusmjeriti izlaznu standardnu ​​pogrešku.

# # uzorak pogreške zapisivača jive # logmsg="/usr/bin/logger -s -t MyScript " # objavi što je ova skripta, čak i zapisniku $logmsg "Directory Checker FooScript Jive 1.0" # testiraj postojanje Freda" s home dir na ovom stroju if [ -d /home/fred ]; zatim $logmsg "I. Fredov kućni imenik pronađen" else $logmsg "E. Fredov kućni imenik je bio Nije pronađeno. "Boo Hoo." Izlaz 1 fi

Izvršavanje ove skripte kao chkdir.sh na stroju gdje Fred nema kućni direktorij, /home/fred, daje sljedeće rezultate:

bumpy@butters:~$./chkdir.sh MyScript: Provjera direktorija FooScript Jive 1.0 MyScript: E. Fred's Home Directory NIJE pronađen bumpy@butters:~$tail -n 2 /var/log/syslog 12. siječnja 23:23:11 localhost MyScript: Provjera direktorija FooScript Jive 1.0 12. siječnja 23:23:11 localhost MyScript: E. Fredov kućni imenik NIJE pronađen. Boo Hoo.

Dakle, kao što vidite, primili smo poruke putem standardne pogreške, na odzivniku terminala, a pojavljuju se i u našem syslogu.

Rotacija dnevnika

Prilikom pregledavanja popisa direktorija u /var/log ili bilo kojem od njegovih poddirektorija, možete naići na datoteke dnevnika s imenima kao što su daemon.log.0 , daemon.log.1.gz i tako dalje. Što su ove datoteke dnevnika? To su "rotirane" datoteke dnevnika. Odnosno, automatski su preimenovani nakon unaprijed definiranog vremenskog okvira i započeo je novi izvorni dnevnik. Nakon još duljeg vremena log datoteke su komprimirane pomoću gzip uslužnog programa kao u slučaju primjera daemon.log.1.gz. Svrha rotacije dnevnika je arhiviranje i komprimiranje starih dnevnika tako da zauzimaju manje prostora na disku, ali da su i dalje dostupni za pregled prema potrebi. Što upravlja ovom funkcijom? Naravno, naredba logrotate! Tipično, logrotate se poziva iz cron skripte za cijeli sustav /etc/cron.daily/logrotate i dalje se definira konfiguracijskom datotekom /etc/logrotate.conf. Pojedinačne konfiguracijske datoteke mogu se dodati u /etc/logrotate.d (gdje su, na primjer, pohranjene konfiguracije apache2 i mysql).

Ovaj vodič neće pokrivati ​​mnoštvo načina na koje se logrotate može konfigurirati za rukovanje automatskom rotacijom bilo koje datoteke dnevnika na vašem Ubuntu sustavu. Za više detalja, provjerite Resursi odjeljak ovog vodiča.

BILJEŠKA: Također možete rotirati sistemske zapisničke datoteke putem cron.daily skripte /etc/cron.daily/sysklogd umjesto korištenja logrotate. Zapravo, uslužni program savelog može proizvesti neočekivane rezultate pri rotaciji dnevnika na koji konfiguracija logrotate-a izgleda nema učinka. U tim slučajevima, trebali biste provjeriti skriptu cron.daily sysklogd u /etc/cron.daily/sysklogd i pročitati stranicu s uputama za savelog da biste vidjeli ne radi li savelog zapravo rotaciju na način koji nije onaj koji ste odredili s logrotirati.

Bitne naredbe

Ako ste tek počeli upotrebljavati konzolu i naredbeni redak Linuxa, ove će vas naredbe pokrenuti do točke u kojoj možete raditi s datotekama dnevnika na osnovnoj razini.

Početak rada

Za promjenu u direktorij dnevnika, gdje se nalazi većina ovih datoteka, koristite naredbu cd. Ovo štedi potrebu za upisivanjem punog naziva staze za svaku sljedeću naredbu:

cd /var/log

Uređivanje datoteka

Datoteke možete pregledavati i uređivati ​​u GEditu ili Kateu, jednostavnim uređivačima teksta koji dolaze s Ubuntuom i Kubuntuom, ali oni mogu biti pretjerani kada sve što želite učiniti je pogledati datoteku ili napraviti jednostavne promjene. Najlakši editor za korištenje s konzole je nano, koji je manje moćan, ali i manje kompliciran od vima ili emacsa. Naredba za uređivanje određene datoteke dnevnika /var/log/example.log koristeći nano je:

nano primjer.log

Pritisnite Ctrl+X za izlaz. Pitat će vas želite li spremiti promjene kada izađete, ali osim ako ga ne pokrenete s naredbom sudo, u datoteke neće biti moguće pisati. Općenito, naravno, nećete htjeti spremiti svoje promjene u datoteke dnevnika.

Pregledavanje datoteka

Jednostavno pogledati datoteku, uređivač je pretjeran. Upotrijebite manje naredbu koja lista datoteku jedan po jedan ekran:

manje primjer.log

Ne trebate sudo da biste pogledali datoteku. Pritisnite h za pomoć ili q za izlaz. Tipke kursora i tipke za stranicu gore/dolje radit će kako se očekuje, a tipka za kosu crtu ("/") će napraviti velika i mala slova osjetljivo pretraživanje; tipka n ponavlja zadnje pretraživanje.

Pregledavanje početka datoteka

Da biste vidjeli prvih deset redaka datoteke, koristite naredbu head:

glava primjer.log

Da biste vidjeli neki drugi broj redaka od početka datoteke, dodajte -n prekidač, ovako:

glava -n 20 primjer.log

Pregledavanje kraja datoteka

Da biste vidjeli zadnjih deset redaka datoteke, analogna naredba je tail:

rep primjer.log

Opet, prekidač -n daje vam kontrolu nad brojem redaka koje prikazuje:

rep -n 20 primjer.log

Gledanje datoteke koja se mijenja

Također, prekidač -f ("slijedi") stalno stavlja rep u petlju čekati novi dodaci datoteci koju prikazuje. Ovo je korisno za praćenje datoteka koje se ažuriraju u stvarnom vremenu:

rep -f primjer.log

Pritisnite Ctrl+C za izlazak iz petlje.

Pretraživanje datoteka

Budući da datoteke dnevnika mogu biti velike i nezgrapne, pomaže vam da se možete usredotočiti. Naredba grep pomaže vam da izbrišete samo sadržaj koji vas zanima. Da biste pronašli sve retke u datoteci koji sadrže riječ "sustav", na primjer, upotrijebite ovo:

grep "sustav" primjer.log

Da biste pronašli sve retke koji sadrže "sustav" na početku retka, koristite ovo:

grep "^sustav" primjer.log

Obratite pažnju na simbol umetanja, regularni izraz koji odgovara samo početku retka. Ovo je manje korisno za standardne datoteke dnevnika, koje uvijek počinju datumom i vremenom, ali može biti zgodno inače. Nemaju sve datoteke standardni format.

Kad god je rezultat grepa još uvijek predug, možete ga provući kroz manje:

grep "sustav" primjer.log | manje

Resursi

Dodatne informacije o zapisnicima sustava i aplikacija te syslogd-u dostupne su putem sljedećih izvora:

Lokalni resursi sustava

Stranica priručnika sustava za uslužni program međuspremnika prstena jezgre dmesg

Stranica priručnika sustava za naredbu faillog (i također konfiguracijsku datoteku faillog putem man 5 faillog)

Stranica priručnika sustava za uslužni program za pretraživanje uzorka grep

Stranica priručnika za glavni uslužni program

Stranica priručnika sustava za demon zapisnika jezgre (klogd)

Sistemski priručnik za posljednju naredbu koja prikazuje zadnje prijavljene korisnike

Stranica priručnika sustava za uslužni program za manje stranica

Stranica priručnika sustava za sučelje naredbenog retka zapisivača za uslužni program syslog

Stranica priručnika sustava za uslužni program logrotate

Stranica priručnika sustava za uslužni program za spremanje datoteke dnevnika savelog

Stranica priručnika sustava za demon zapisnika sustava (syslogd)

Stranica priručnika sustava za konfiguracijsku datoteku syslogd

Stranica priručnika sustava za pomoćni program repa

Ako počnete administrirati Linux, budite spremni na činjenicu da će pregledavanje i analiza log datoteka oduzeti najveći dio vremena koje provodite u konzoli. Analiza dnevnika je glavni (i najčešće jedini) način za razumijevanje ponašanja poslužitelja.

Dnevnik često sadrži tisuće redaka, štoviše, može se povećati za još nekoliko unosa svake sekunde. I preporučljivo je gledati ga uživo, prateći reakciju na određene radnje. Ovdje će nam pomoći dva pomoćna programa tail and less.

Pregledavanje zapisa u Linuxu pomoću tail-a.

tail (u prijevodu rep) omogućuje pregled 10 posljednji redovi datoteka. Ako trebaš više, samo reci. Na primjer, 25:

# rep -n 25 /var/log/httpd/log_pogreški

[hc@host~] # rep -n 25 /var/log/httpd/log_pogreški

Ili možete jednostavno:

# rep -25 /var/log/httpd/error_log

[hc@host~] # rep -25 /var/log/httpd/error_log

Druga korisna opcija koja se može proslijediti je -f. S ovim parametrom, tail ispisuje navedeni broj zadnjih redaka i nastavlja čitati dodane retke dok ne pritisnete Ctrl+C - tj. promjene možete pratiti uživo u log datoteci:

# rep -5f /home/sites/web/site.ru/logs/site.ru.log 178.45.0.0 - - "GET / HTTP/1.0" 200 17401 "http://site.ru/allsorts/" "Mozilla /5.0 (iPad; CPU OS 8_0_2 poput Mac OS X) AppleWebKit/600.1.4 (KHTML, poput Gecka) Verzija/8.0 Mobile/12A405 Safari/600.1.4" 217.118.0.0 - - "GET /allsorts HTTP/1.0" 301 - "http://site.ru/" 217.118.0.0 - - "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 kao Mac OS X) AppleWebKit/601.1.46 (KHTML, kao Gecko) Verzija/9.0 Mobile/13C75 Safari/601.1" 85.95.0.0 - - "GET / HTTP/1.0" 200 17401 "http://vk.com/away.php " "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, kao Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50" 85.95.0.0 - - "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, kao Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50"

[hc@host~] # rep -5f /home/sites/web/site.ru/logs/site.ru.log

178.45.0.0 - - [ 23. siječnja 2016. : 19 : 45 : 02 + 0300 ] "GET / HTTP/1.0" 200 17401 "http://site.ru/allsorts/" "Mozilla/5.0 (iPad; CPU OS 8_0_2 poput Mac OS X) AppleWebKit/600.1.4 (KHTML, poput Gecka) Verzija/8.0 Mobile/12A405 Safari/600.1.4"

217.118.0.0 - - [ 23 / siječnja / 2016 : 19 : 46 : 34 + 0300 ] "GET /allsorts HTTP/1.0" 301 - "http://site.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 poput Mac OS X) AppleWebKit/601.1.46 (KHTML, poput Gecka) Verzija/9.0 Mobile/13C75 Safari/601.1"

217.118.0.0 - - [ 23 / siječnja / 2016 : 19 : 46 : 35 + 0300 ] "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 poput Mac OS X) AppleWebKit/601.1.46 (KHTML, poput Gecka) Verzija/9.0 Mobile/13C75 Safari/601.1"

85.95.0.0 - - [ 23 / siječnja / 2016 : 19 : 47 : 34 + 0300 ] "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, kao Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50"

Ali najveća pogodnost tail-a je da se nekoliko datoteka može proslijediti kao parametri, tj. možete pratiti više povezanih datoteka dnevnika u isto vrijeme:

# tail -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log ==> /home/ sites/web/site.ru/logs/site.ru.log<== 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/delivery-feature-6.png HTTP/1.1" 200 18165 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/delivery-truck.png HTTP/1.1" 200 15243 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/scooter-icon-small.png HTTP/1.1" 200 4322 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/link-button-shadow.png HTTP/1.1" 200 7792 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/header-bg.png HTTP/1.1" 200 194475 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" ==>/var/log/httpd/domains/site.ru.error.log<== client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php

[hc@host~] # tail -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log

== > /home/sites/web/site. ru/logs/site. ru. log<= =

37.113.0.0 - - [23. siječnja 2016.: 19:55:45 +0300] "GET /wp-content/themes/bigroll/img/delivery-feature-6.png HTTP/1.1" 200 18165 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 poput Mac OS X) AppleWebKit/601.1.46 (KHTML, poput Gecka) Verzija/9.0 Mobile/13C75 Safari/601.1"

"GET /wp-content/themes/bigroll/img/delivery-truck.png HTTP/1.1" 200 15243 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 poput Mac OS X) AppleWebKit/601.1.46 (KHTML, poput Gecka) Verzija/9.0 Mobile/13C75 Safari/601.1"

37.113.0.0 - - [23/siječanj/2016: 19:55:46 +0300] "GET /wp-content/themes/bigroll/img/scooter-icon-small.png HTTP/1.1" 200 4322 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 poput Mac OS X) AppleWebKit/601.1.46 (KHTML, poput Gecka) Verzija/9.0 Mobile/13C75 Safari/601.1"

37.113.0.0 - - [23/siječanj/2016: 19:55:46 +0300] "GET /wp-content/themes/bigroll/img/link-button-shadow.png HTTP/1.1" 200 7792 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 poput Mac OS X) AppleWebKit/601.1.46 (KHTML, poput Gecka) Verzija/9.0 Mobile/13C75 Safari/601.1"

37.113.0.0 - - [23/siječanj/2016: 19:55:46 +0300] "GET /wp-content/themes/bigroll/img/header-bg.png HTTP/1.1" 200 194475 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 poput Mac OS X) AppleWebKit/601.1.46 (KHTML, poput Gecka) Verzija/9.0 Mobile/13C75 Safari/601.1"

== > /var/log/httpd/domains/site. ru. greška. log<= =

[Srijeda, 20. siječnja 04: 38: 36 2016] [pogreška] [klijent 46.166.0.0] klijent odbijen konfiguracijom poslužitelja: /home/sites/web/site. ru/public_html/xmlrpc. php

[Srijeda, 20. siječnja 13:15:43 2016.] [pogreška] [klijent 69.84.0.0] klijent odbijen konfiguracijom poslužitelja: /home/sites/web/site. ru/public_html/xmlrpc. php

[Srijeda, 20. siječnja 20: 48: 58 2016] [pogreška] [klijent 185.112.0.0] klijent odbijen konfiguracijom poslužitelja: /home/sites/web/site. ru/public_html/xmlrpc. php

[Srijeda, 20. siječnja 22:42:02 2016.] [pogreška] [klijent 5.255.0.0] konfiguracija poslužitelja odbila klijenta: /home/sites/web/site. ru/public_html/xmlrpc. php

Imajte na umu da sam upotrijebio konstrukciju -s 3 - koristeći ovaj ključ, interval ažuriranja postavlja se u sekundama, tj. u ovom slučaju, datoteke će se ponovno čitati jednom svake 3 sekunde.

Pregledavanje zapisa na Linuxu uz manje.

Unatoč svoj svojoj jednostavnosti i praktičnosti, tail ima jedan značajan nedostatak - prikazuje samo posljednje retke i nemate priliku vidjeti što se dogodilo prije tih zapisa ili u određenom trenutku. Za takve situacije, manje korisnosti je bolje prilagođeno.

Otvorimo datoteku:

# manje /var/log/httpd/domains/big-roll.ru.error.log

[hc@host~] # manje /var/log/httpd/domains/big-roll.ru.error.log

Kao što vidite, sadržajem datoteke možemo se lako kretati pomoću strelica kursora i tipki PgUp i PgDn.
Zapamtite još nekoliko korisnih ključeva:
q – izlaz;
g – ide na početak datoteke;
G – idi na kraj datoteke;
Ng – idi na redak N (na primjer, redak 14 14g);
N% – idite na poziciju N% (na primjer, 35%);
F – prelazak na način praćenja ažuriranja datoteke, tj. analog rep -f ;
/uzorak – izravno (niz datoteku) pretraživanje pomoću uzorka uzorka;
?uzorak – revers (gore u datoteku);
n – sljedeće podudaranje uzorka pretraživanja;
N – prethodna utakmica;
Izlaz iz načina praćenja Ctrl+C ;
Potpuni popis svih ostalih tipki i modova možete sami vidjeti pritiskom na h – pomoć (toplo preporučam da pritisnete ovo).

Linux administrator bi trebao moći čitati i razumjeti različite vrste poruka koje generiraju svi Linux sustavi kako bi riješio problem. Te poruke, zvane zapisnici, pokreću Linux i aplikacije koje se izvode na njemu. Linux kontinuirano stvara, pohranjuje i reciklira te zapisnike kroz razne konfiguracijske datoteke, programe, naredbe i demone. Ako znate čitati ove datoteke i optimalno koristiti razne naredbe koje ćemo spomenuti u ovom vodiču, možete rješavati probleme kao profesionalac!

Važno je napomenuti da Linux svoje log datoteke čuva u /var/log direktoriju u tekstualnom formatu.

Pregledavanje zapisnika sustava na Ubuntuu

Da biste došli do srži problema ili da biste vidjeli ponaša li se vaša aplikacija ili sustav na željeni način, možete pogledati sistemske zapisničke datoteke grafički ili putem naredbenog retka na sljedeće načine:

  • Uslužni program Gnome Logs (grafika)
  • Uslužni program za preglednik datoteka zapisnika (grafika)
  • Linux terminal (naredbeni redak)

Pregledajte zapisničke datoteke kroz Gnome zapisnike

'Dnevnici' su zadani uslužni program koji dolazi s najnovijim verzijama Ubuntua, npr. Ubuntu 18.04 LTS (Bionic Beaver). Da biste mu pristupili,

Tip Dnevnici u ploči Ubuntu:

Moći ćete vidjeti otvoren uslužni program Zapisnici, s opcijom pregledavanja zapisa za aplikacije, sustav, sigurnost i hardver.

Klikni na Sustav kartica za pregled zapisnika sustava:

Ovdje možete vidjeti sve sistemske zapisnike zajedno s vremenom kada su generirani. Kroz ovaj prozor možete izvršiti sljedeće radnje:

  • Prikažite sadržaj dnevnika klikom na njega.
  • Potražite dnevnik klikom na ikonu za pretraživanje, a zatim unosom ključnih riječi u traku za pretraživanje. Traka za pretraživanje također nudi niz filtara koje možete primijeniti kako biste točno odredili Što(Odaberite polje dnevnika da biste filtrirali zapise prema njemu) i Kada(Odaberite raspon vremenskih oznaka unosa dnevnika koji će se prikazati) koje želite vidjeti:

  • Također možete izvesti zapisnike u datoteku klikom na gumb za izvoz koji se nalazi u gornjem desnom kutu prozora Dnevnici. Zatim možete spremiti datoteku dnevnika tako da navedete naziv i mjesto.

Kroz Log File Viewer

Log File Viewer je zadani uslužni program koji dolazi sa starijim verzijama Ubuntua. Ako vaše izdanje Ubuntua nema ovu aplikaciju prema zadanim postavkama, možete je preuzeti i instalirati putem Ubuntu softvera.

Da biste pristupili Pregledniku datoteka dnevnika:

  • Unesi Dnevnik r u Ubuntu Dashu
  • Ako ste instalirali ovaj program putem Ubuntu softvera, možete ga pokrenuti traženjem u Ubuntu softveru na sljedeći način, a zatim klikom na Pokreni dugme:

Preglednik datoteka zapisnika pojavit će se na sljedeći način:


Lijeva ploča prozora prikazuje niz zadanih kategorija dnevnika, a desna ploča prikazuje popis dnevnika za odabranu kategoriju.

Klikni na syslog karticu za pregled zapisnika sustava. Možete tražiti određeni dnevnik pomoću ctrl+F kontrolu i zatim unesite ključnu riječ. Kada se generira novi događaj dnevnika, automatski se dodaje na popis dnevnika i možete ga vidjeti u podebljanom obliku. Također možete filtrirati svoje zapise kroz Filteri izbornik koji se nalazi u gornjoj traci izbornika.

Kako biste vidjeli dnevnik za određenu aplikaciju, kliknite Otvoren opcija iz Datoteka Jelovnik. Sljedeće Otvori zapisnik otvorit će se prozor za odabir dnevnika između:

Kliknite datoteku dnevnika i kliknite Otvoren. Sada ćete moći vidjeti zapise iz odabrane datoteke dnevnika u Pregledniku datoteka dnevnika.

Pregledajte zapisničke datoteke putem terminala

Također možete pregledati zapisnike sustava putem naredbenog retka, tj. Ubuntu terminala.

Otvorite terminal i unesite sljedeću naredbu:

Ova naredba dohvaća sve poruke iz međuspremnika kernela. Rezultat možete vidjeti na sljedeći način:

Vidjet ćete da je to puno informacija. Ove informacije će biti korisne samo ako primijenimo neke filtre da vidimo ono što želimo vidjeti.

Prilagodba dmesg izlaza

  • Kako biste vidjeli poruke svojim tempom, koristite sljedeću naredbu:

$ dmesg | manje

Ova naredba će prikazati samo određeni broj poruka po ekranu. Možete pritisnuti Enter kako biste prešli na sljedeću poruku ili pritisnite Q za izlaz iz naredbe.

  • Kako biste pretražili poruku koja sadrži određenu ključnu riječ, koristite sljedeću naredbu:
$dmesg |grep

Na primjer, ako želite pretražiti sve poruke koje sadrže riječ core, možete koristiti sljedeću naredbu:

$dmesg |grep jezgra

Terminal će sada prikazati samo one poruke koje sadrže riječ "core" u crvenoj boji.

Otvorite datoteku dnevnika s naredbom cat

Naredba dmesg otvara sve zapisnike iz direktorija /var/log. Kako biste otvorili log datoteku s nekog drugog mjesta, koristite sljedeću naredbu:

$mačka

$ cat /var/log/syslog

Ova naredba će ispisati zapise iz syslog datoteke na ekran. Opet ćete primijetiti da ova naredba ispisuje sve informacije i nije je lako preletjeti. I ovdje možete koristiti filtre 'grep' i 'less' za prikaz željenog rezultata na sljedeći način:

$cat |grep

$ mačka | manje

Zapisivanje u zapisnik sustava

Ponekad moramo pisati prilagođene poruke u zapisnik našeg sustava tijekom postupka rješavanja problema. Programi Gnome Log i Log File Viewer napravljeni su za prikaz prilagođene poruke koju možete napisati putem terminala.

Otvorite Ubuntu terminal i upišite sljedeću naredbu:

$logger “Ovo je prilagođena poruka”


Možete vidjeti prilagođenu poruku dnevnika, na kraju gornjeg popisa dnevnika, prikazanu u grafičkom pregledniku datoteka dnevnika.

Također možete koristiti naredbu logger unutar skripte za pružanje dodatnih informacija. U tom slučaju upotrijebite sljedeću naredbu unutar svoje skripte:

$ logger -t naziv skripte “Ovo je prilagođena poruka”

Vježbajući uz ovaj vodič, možete naučiti rješavati probleme sa svojim sustavom i aplikacijama pristupom i razumijevanjem zapisnika sustava.

Kako pregledati datoteke zapisnika sustava na Ubuntu 18.04 LTS

Administratori sustava i obični korisnici Linuxa često moraju pogledati datoteke dnevnika kako bi riješili probleme. Zapravo, ovo je prva stvar koju svaki administrator sustava treba učiniti kada se pojavi bilo kakva greška u sustavu.

Sam operativni sustav Linux i pokrenute aplikacije generiraju različite vrste poruka koje se bilježe u različitim datotekama dnevnika. Linux koristi poseban softver, datoteke i direktorije za pohranjivanje datoteka dnevnika. Znajući koje datoteke sadrže zapisnike kojih programa pomoći ćete uštedjeti vrijeme i brže riješiti problem.

U ovom ćemo članku pogledati glavne dijelove Linux sustava zapisivanja, datoteke dnevnika, kao i uslužne programe pomoću kojih možete pregledavati zapisnike Linuxa.

Većina datoteka dnevnika Linuxa nalazi se u mapi /var/log/ Možete ispisati datoteke dnevnika za svoj sustav pomoću naredbe ls:

Rw-r--r-- 1 root root 52198 10. svibnja 11:03 alternative.log
drwxr-x--- 2 root root 4096 14. studeni 15:07 apache2
drwxr-xr-x 2 root root 4096 25. travnja 12:31 apparmor
drwx------ 2 root root 4096 5. svibnja 10:15 revizija
-rw-r--r-- 1 root root 33100 10. svibnja 10:33 boot.log

U nastavku ćemo pogledati 20 različitih Linux log datoteka koje se nalaze u /var/log/ direktoriju. Neki od ovih zapisa nalaze se samo na određenim distribucijama, na primjer dpkg.log se nalazi samo na sustavima temeljenim na Debianu.

/var/log/messages- sadrži globalne zapisnike Linux sustava, uključujući one koji se bilježe pri pokretanju sustava. Nekoliko vrsta poruka bilježi se u ovom dnevniku: pošta, cron, razne usluge, kernel, autentifikacija i druge.

/var/log/dmesg- sadrži poruke primljene od kernela. Zapisuje mnoge poruke tijekom faze pokretanja, prikazuju informacije o hardverskim uređajima koji su inicijalizirani tijekom procesa pokretanja. Možete reći da je ovo još jedan zapisnik Linux sustava. Broj poruka u zapisniku je ograničen, a kada se datoteka napuni, sa svakom novom porukom stare će biti prebrisane. Također možete vidjeti poruke iz ovog dnevnika pomoću naredbe dmseg.

/var/log/auth.log- sadrži podatke o autorizaciji korisnika u sustavu, uključujući prijave korisnika i mehanizme autentifikacije koji su korišteni.

/var/log/boot.log- Sadrži informacije koje se bilježe kada se sustav podigne.

/var/log/daemon.log- Uključuje poruke raznih pozadinskih demona

/var/log/kern.log- Također sadrži poruke iz kernela, korisne u rješavanju grešaka u prilagođenim modulima ugrađenim u kernel.

/var/log/lastlog- Prikazuje informacije o posljednjoj sesiji svih korisnika. Ovo nije tekstualna datoteka i morate upotrijebiti naredbu lastlog da biste je vidjeli.

/var/log/maillog /var/log/mail.log- zapisnici poslužitelja e-pošte koji rade na sustavu.

/var/log/user.log- Informacije iz svih zapisa na razini korisnika.

/var/log/Xorg.x.log- Dnevnik poruka X poslužitelja.

/var/log/alternatives.log- Informacije o radu programa ažuriranja-alternativa. Ovo su simboličke veze na zadane naredbe ili biblioteke.

/var/log/btmp- Linux log datoteka sadrži informacije o neuspjelim pokušajima prijave. Za pregled datoteke prikladno je koristiti naredbu last -f /var/log/btmp

/var/log/čaše- Sve poruke vezane uz tisak i printere.

/var/log/anaconda.log- sve poruke snimljene tijekom instalacije spremaju se u ovu datoteku

/var/log/yum.log- Zapisuje sve informacije o instalacijama paketa koristeći Yum.

/var/log/cron- Kad god Cron demon počne izvršavati program, on piše izvještaj i poruke iz samog programa u ovu datoteku.

/var/log/sigurno- sadrži podatke vezane uz autentifikaciju i autorizaciju. Na primjer, SSHd ovdje bilježi sve, uključujući neuspjele pokušaje prijave.

/var/log/wtmp ili /var/log/utmp - Dnevnici sustava Linux , sadrže dnevnik prijava korisnika. Pomoću naredbe wtmp možete saznati tko je prijavljen i kada.

/var/log/faillog- Dnevnik sustava Linux, sadrži neuspješne pokušaje prijave. Koristite naredbu faillog za prikaz sadržaja ove datoteke.

/var/log/mysqld.log- Linux log datoteke s MySQL poslužitelja baze podataka.

/var/log/httpd/ ili /var/log/apache2- log datoteke linux11 Apache web poslužitelja. Dnevnici pristupa nalaze se u datoteci access_log, a zapisi pogrešaka u error_logu

/var/log/lighttpd/- Linux zapisnici lighttpd web poslužitelja

/var/log/conman/- Log datoteke ConMan klijenta,

/var/log/mail/- ovaj direktorij sadrži dodatne zapise poslužitelja pošte

/var/log/prelink/- Prelink povezuje biblioteke i izvršne datoteke kako bi se ubrzao proces učitavanja. /var/log/prelink/prelink.log sadrži informacije o .so datotekama koje je izmijenio program.

/var/log/audit/- Sadrži informacije koje je generirao auditd demon.

/var/log/setroubleshoot/ - SE Linux koristi setroubleshootd demon (SE Trouble Shoot Daemon) za prijavu sigurnosnih problema. Ovaj dnevnik sadrži poruke ovog programa.

/var/log/samba/- sadrži informacije i zapisnike sa Samba datotečnog poslužitelja, koji se koristi za povezivanje s Windows dijeljenim datotekama.

/var/log/sa/- Sadrži .cap datoteke prikupljene paketom Sysstat.

/var/log/sssd/- Koristi ga sigurnosni demon sustava, koji upravlja udaljenim pristupom imeniku i mehanizmima provjere autentičnosti.

Pregledavanje zapisa u Linuxu

Za pregled zapisa na Linuxu, zgodno je koristiti nekoliko uslužnih programa naredbenog retka Linuxa. To može biti bilo koji uređivač teksta ili poseban uslužni program. Najvjerojatnije će vam trebati prava superkorisnika za pregled zapisa u Linuxu. Ovo su naredbe koje se najčešće koriste u te svrhe:

  • zgrep
  • zmore

Neću ulaziti u detalje svake od ovih naredbi, budući da je većina njih već bila detaljno raspravljena na našoj web stranici. Ali navest ću nekoliko primjera. Pregledavanje zapisa Linuxa vrlo je jednostavno:

Gledamo dnevnik /var/log/messages, s mogućnošću pomicanja:

manje /var/log/messages

Pregledajte Linux zapisnike u stvarnom vremenu:

rep -f /var/log/messages

Otvorite dmesg log datoteku:

mačka /var/log/dmesg

Prvi redovi dmesg-a:

glava /var/log/dmesg

Izbacujemo samo pogreške iz /var/log/messages:

grep -i pogreška /var/log/messages

Osim toga, možete vidjeti zapisnike na Linuxu koristeći grafičke pomoćne programe. System Log Viewer može se koristiti za jednostavno pregledavanje i praćenje sistemskih zapisa na Linux prijenosnom ili osobnom računalu.

Program možete instalirati na bilo koji sustav s instaliranim X poslužiteljem. Također, bilo koji grafički uređivač testa može se koristiti za pregled zapisa.

zaključke

U direktoriju /var/log možete pronaći sve potrebne informacije o radu Linuxa. Iz današnjeg članka naučili ste dovoljno da znate gdje tražiti i što tražiti. Sada vam pregledavanje zapisa u Linuxu neće stvarati probleme. Ako imate pitanja, pitajte u komentarima!

Postavljanje simbola crte (|) ispred naziva datoteke omogućit će vam korištenje fifo (prvi ušao - prvi izašao, prvi ušao, prvi izašao) ili imenovana cijev kao primatelj poruka. Prije pokretanja (ili ponovnog pokretanja) syslogda, morate stvoriti fifo pomoću naredbe mkfifo. Ponekad se FIFO koristi za otklanjanje pogrešaka.

Terminal i konzola

Terminal kao što je /dev/console.

Daljinski stroj

Za prosljeđivanje poruka drugom hostu ispred naziva hosta stavite simbol (@). Imajte na umu da se poruke ne prosljeđuju s računala primatelja. (za ovaj zadatak za rad na klijentu i poslužitelju u datoteci /etc/services linija mora biti napisana syslog 514/udp, a UTP port 514 je otvoren)

popis korisnika

Popis korisnika koji primaju poruke odvojen zarezima (ako je korisnik prijavljen). Ovo često uključuje root korisnika.

Svi registrirani korisnici

Da biste obavijestili sve registrirane korisnike pomoću zidne naredbe, koristite znak zvjezdice (*).

Primjer jednostavnog syslog.conf:

# Ispis svih kernel poruka na konzolu. #kern.* /dev/console # Svi dnevnici na razini informacija ili višoj, osim poruka e-pošte, i # ne bilježite autentifikacijske poruke ili cron daemon poruke! *.info;mail.none;authpriv.none;cron.none /var/log/messages # Zabilježite poruke koje sadrže osjetljive # podatke o autentifikaciji u zasebnu datoteku, bez obzira na njihovu razinu. authpriv.* /var/log/secure # Sve poruke iz sustava pošte također se pišu u posebnu datoteku. mail.* -/var/log/maillog # Bilježi poruke planera u /var/log/cron cron.* /var/log/cron # Poruke za hitne slučajeve trebaju odmah primiti # svi korisnici sustava *.emerg * # Spremanje poruka vijesti razine kritičnosti i više u zasebnu datoteku. uucp,news.crit /var/log/spooler # Spremite poruke o pokretanju u boot.log local7.* /var/log/boot.log

Kao i kod mnogih konfiguracijskih datoteka, sintaksa je sljedeća:

  • Redovi koji počinju s # i prazni redovi se zanemaruju.
  • Simbol * se može koristiti za označavanje svih kategorija ili svih prioriteta.
  • Posebna ključna riječ none specificira da se zapisivanje za ovu kategoriju ne bi trebalo izvoditi za ovu akciju.
  • Crtica ispred naziva datoteke (kao -/var/log/maillog u ovom primjeru) označava da se dnevnik ne bi trebao sinkronizirati nakon svakog unosa. Ako vam se sustav sruši, možete izgubiti podatke, ali onemogućavanje sinkronizacije poboljšat će performanse.

U sintaksi konfiguracijske datoteke možete staviti ispred prioriteta znak! za označavanje da se radnja ne bi trebala primijeniti, od ove razine i više. Slično tome, može se dati prioritet znak = da naznači da se pravilo odnosi samo na ovu razinu, ili != pokazati da se pravilo odnosi na sve razine osim na ovu. Ispod je nekoliko primjera (postoji mnogo drugih primjera u man syslog.conf):

# Pošaljite sve kernel poruke u /var/log/kernel. # Pošaljite sve kritične poruke i poruke više razine na udaljeni sysloger stroj i na konzolu # Pošaljite sve informacije, obavijesti i poruke razine upozorenja na /var/log/kernel-info # kern.* /var/log/kernel kern.crit @ sysloger kern .crit /dev/console kern.info;kern.!err /var/log/kernel-info # Pošalji sve poruke sustava pošte osim razine informacija u /var/log/mail. mail.*;mail.!=info /var/log/mail

Pokušao sam što jasnije prikazati rad syslogd-a u dijagramu:

Pokretanje demona syslogd

Pokretanje demona zapisivanja pokreće se tijekom inicijalizacije sustava pomoću skripte /etc/rc.d/init.d/syslog, međutim, da biste postavili parametre pokretanja, nema potrebe prilagođavati ovu skriptu - počevši od verzije 7.2, opcije pokretanja čitaju se iz zasebne konfiguracijske datoteke /etc/sysconfig/syslog (/etc/default/syslogu debianu).

Evo nekih mogućih parametri pokretanja demona syslogd:

  • -a /mapa/utičnica- određivanje dodatne utičnice za slušanje (ne zaboravite prvo kreirati utičnicu)
  • -d- mod za ispravljanje grešaka. U ovom slučaju, demon ne ide u pozadinu i šalje sve poruke trenutnom terminalu;
  • -f naziv-konfiguracijske-datoteke. Određuje naziv alternativne konfiguracijske datoteke koja će se koristiti umjesto zadanog /etc/syslog.conf;
  • -l popis domaćina- određivanje popisa hostova čija imena ne bi trebala biti napisana s punim nazivom domene (FQDN - Full Qualified Domain Name);
  • -m minuta- sysklogd koji radi bez ove opcije zapisuje poruke kategorije oznaka u dnevnik svakih 20 minuta. Koristeći -m opciju, možete ili promijeniti interval između oznaka ili potpuno otkazati izdavanje takvih poruka;
  • -p utičnica- postavljanje alternativnog UNIX socketa (umjesto zadanog slušanja /dev/log);
  • -r- dopuštenje za primanje poruka s udaljenih računala;
  • -x- zabrana određivanja naziva računala prema njegovoj adresi kako bi se spriječilo zamrzavanje pri radu na istom računalu s DNS poslužiteljem.
  • -v- pokazati verziju i završiti posao

Nakon što se syslogd demon pokrene, kreira se statusna datoteka /var/lock/subsys/syslog nulte duljine i datoteka s identifikacijskim brojem procesa /var/run/syslogd.pid.

Pomoću naredbe
kill -SIGNAL `cat /var/run/syslogd.pid`

možeš li poslati syslogd demon jedan od sljedećih signala: SIGHUP- ponovno pokrenite demona; SIGTERM- završetak radova; SIGUSR1- omogućiti/onemogućiti način otklanjanja pogrešaka.

Zapravo, postoje dva demona za bilježenje koji rade na sustavu - syslogd I klogd. Oba demona su uključena u paket sysklogd.

Demon klogd odgovoran je za bilježenje događaja koji se događaju jezgra sustava. Potreba za zasebnim klogd demonom je zato što kernel ne može koristiti standardnu ​​funkciju syslog. Činjenica je da su standardne C biblioteke (uključujući biblioteku u kojoj se nalazi funkcija syslog) namijenjene samo za korištenje redovite aplikacije. Budući da kernel također treba funkcije zapisivanja, uključuje vlastite biblioteke koje nisu dostupne aplikacijama. Stoga kernel koristi vlastiti mehanizam za generiranje poruka.

Demon klogd je dizajniran za organiziranje obrade tih poruka. U principu, ovu obradu bi mogao obaviti potpuno neovisno i neovisno o syslogd-u, na primjer zapisivanjem tih poruka u datoteku, ali u većini slučajeva koristi se zadana postavka klogd-a, u kojoj se sve poruke iz kernela prosljeđuju na isti syslogd demon.

Automatska rotacija (ažuriranje dovršenih datoteka) i arhiviranje zapisa

Tijekom vremena, log datoteka ima tendenciju rasta, posebno kada se usluga intenzivno izvodi. Sukladno tome, potrebno je moći kontrolirati veličinu trupaca. To se radi pomoću logrotate naredbe, koji se obično izvodi cron demon. O radu crona govorit ću u sljedećim člancima. glavni cilj logrotate naredbe je povremeno sigurnosno kopiranje zapisa i stvaranje novih čistih zapisa. Više generacija zapisa se sprema i kada posljednja generacija zapisnika dođe do kraja svog životnog vijeka, može se arhivirati (komprimirati). Rezultat se može poslati poštom, primjerice, osobi odgovornoj za vođenje arhive.

Za određivanje redoslijeda rotacije i arhiviranja dnevnika koristite konfiguracijska datoteka /etc/logrotate.conf . Možete postaviti različitu učestalost za različite dnevnike, kao što su dnevni, tjedni ili mjesečni, također možete kontrolirati broj akumuliranih generacija, a također možete odrediti hoće li i kada kopije arhiva biti poslane upravitelju arhive. Prikazano ispod primjer datoteke /etc/logrotate.conf:

# prvo se postavljaju zadani parametri (globalne opcije) # ažuriraj log datoteke tjedno tjedno # pohranjuj arhivu dnevnika za zadnja 4 tjedna rotiraj 4 # kreiraj novu (praznu) datoteku nakon rotacije (ažuriraj) kreiraj # odkomentiraj ako želiš spremljene datoteke su komprimirane #compress # omogući postavke rotacije iz navedenog direktorija uključujući /etc/logrotate.d # ne pohranjuj wtmp ili btmp -- postavke rotacije podataka dnevnika su sljedeće: /var/log/wtmp ( missingok mjesečno kreiranje 0664 root utmp rotate 1 ) / var/log/btmp ( missingok mjesečno kreiranje 0664 root utmp rotate 1 ) # određeni syslogovi mogu se konfigurirati ispod

Globalne opcije se nalaze na početku datoteku logrotate.conf. Koriste se prema zadanim postavkama osim ako je negdje drugdje navedeno nešto specifičnije. U primjeru se cjepanice okreću tjedni a sigurnosne kopije se čuvaju za četiri tjedni Čim se dnevnik rotira, novi se automatski stvara umjesto starog dnevnika. datoteku logrotate.conf može sadržavati specifikacije iz drugih datoteka. Dakle, uključuje sve datoteke iz imenika /etc/logrotate.d.

Ovaj primjer također sadrži posebna pravila za /var/log/wtmp I /var/log/btmp(pohranjivanje podataka o uspješnim i neuspješnim pokušajima prijave u sustav), koji se izmjenjuju mjesečno. Ako datoteke nedostaju, neće se generirati poruka o pogrešci. Stvorena je nova datoteka i spremljena je samo jedna sigurnosna kopija.

U ovom primjeru, kada sigurnosna kopija dosegne posljednju generaciju, briše se jer nije određeno što s njom učiniti.

Sigurnosne kopije dnevnika također se mogu izraditi kada dnevnici dosegnu određenu veličinu, a skripte se mogu stvoriti iz skupova naredbi za pokretanje prije ili nakon operacije sigurnosne kopije. Primjer:

/var/log/messages ( rotiraj 5 mail logadmin@sysloger veličina 100k postrotiraj /usr/bin/killall -HUP syslogd endscript )

U ovom primjeru rotacija /var/log/messages proizvodi kada dosegne veličinu od 100 KB. Skuplja se pet sigurnosnih kopija, a kada najstarija sigurnosna kopija istekne, šalje se e-poštom na logadmin@sysloger. Naredbena riječ postrotate omogućuje skriptu koja ponovno pokreće demon syslogd nakon završetka rotacije slanjem HUP signala. Naredbena riječ endscript potrebna je za prekid skripte, a također i ako postoji skripta za prerotiranje. Pogledajte man stranice za logrotate za više informacija.

Mogućnosti navedeno u konfiguracijskoj datoteci logrotate.conf:

  • oblog| nocompress(starije verzije mogu, ali ne moraju biti komprimirane pomoću gzipa)
  • kompresiraticmd(određuje program za kompresiju, zadano je gzip)
  • uncompresscmd(određuje program za dekompresiju, zadano je ungzip)
  • kompresiratiext(određuje sufiks za komprimirane datoteke)
  • kompresije(postavlja parametre programa za kompresiju; zadana je "-9", tj. maksimalna kompresija za gzip)
  • copytruncate| nocopytruncate(obično se stara verzija preimenuje i kreira se nova verzija dnevnika; kada je ovaj parametar postavljen, logrotate kopira zapisnik u novu datoteku, a zatim skraćuje staru; koristi se ako program koji je kreirao dnevnik ne zna kako da ga zatvorite; unosi napravljeni u intervalu između kopiranja i skraćivanja se gube, ali bi li pomoglo da program koji kreira dnevnik, umjesto u načinu dodavanja, jednostavno piše u datoteku pomoću internog pokazivača?)
  • stvoriti[grupa vlasnika dozvola] | nestvoriti(odmah nakon preimenovanja stare verzije dnevnika, a prije pozivanja postrotate, kreira se novi dnevnik s navedenim atributima - prava pristupa postavljaju se u oktalnom obliku, kao u chmod.2; ako atributi nisu navedeni, tada se preuzimaju iz starog dnevnika)
  • dnevno(verzije u seriji mijenjaju se svakodnevno)
  • odgoditikompresiju| nodelaycompress(neki programi ne zatvaraju dnevnik odmah, u kojem slučaju se kompresija mora odgoditi do sljedećeg ciklusa)
  • pogreškeelektronička pošta(kome poslati izvješća o greškama)
  • proširenjesufiks(postavlja sufiks dodan nazivima datoteka tijekom rotacije ispred sufiksa kompresije)
  • ako je prazan| obavijestiprazan(promijeni verzije čak i ako je datoteka prazna; zadano)
  • uključitinaziv datoteke| naziv-direktorija (tekstualno zamijenite datoteku ili sve datoteke iz navedenog direktorija; poddirektoriji, posebne datoteke i datoteke sa sufiksima s popisa izuzetaka nisu uključene; ne mogu se koristiti unutar odjeljka)
  • poštaadresa| nomail(kada promjena verzije dovodi do potrebe brisanja starog dnevnika, zatim slanja na navedenu adresu)
  • mailfirst(ne šaljite izbrisanu verziju dnevnika, već prvu)
  • maillast(pošalji izbrisanu verziju dnevnika; zadano)
  • missingok| nomissingok(ne šalji poruke o pogrešci ako dnevnik nedostaje)
  • mjesečno(verzije se mijenjaju mjesečno)
  • staridirimenik| noolddir(tijekom promjene verzije, zapisnik se premješta u navedeni direktorij; mora biti na istom fizičkom uređaju)
  • postrotirati(svi daljnji redovi do retka endscripta izvode se kao naredbe ljuske nakon procesa promjene verzije)
  • prerotirati(svi daljnji redovi do retka endscripta izvršavaju se prije procesa promjene verzije)
  • rotiratibroj(koliko starih verzija pohraniti; ako je 0, onda nijedna)
  • veličinabajt(promjena verzije se događa ako veličina dnevnika premašuje navedeni broj; možete koristiti sufikse "k" - kilobajt - i "M" - megabajt)
  • dijeljene skripte| nosharedscripts(izvršite naredbe prerotate i postrotate samo jednom za sve datoteke opisane u odjeljku)
  • tabuext[+] popis sufiksa(određivanje popisa sufiksa isključenja za uključivanje; ako je naveden znak plus, tada dodavanje, inače zamjena; zadano: .rpmorig, .rpmsave, .rpmnew, ",v", .swp i "~")
  • tjedni(verzije se mijenjaju svaki tjedan)

Ispitivanje i praćenje dnevnika

Unosi dnevnika obično sadrže vremensku oznaku, naziv glavnog računala na kojem se izvodi proces koji se opisuje i naziv procesa. Pregledaj zapisnike možete koristiti pager program, na primjer, manje, možete tražiti određene unose (na primjer, poruke jezgre od određenog demona) pomoću naredbe grep:

# manje /var/log/messages # grep "ppp" /var/log/messages | rep 17. prosinca 16:34:25 proxy pppd: Veza prekinuta. 17. prosinca 16:34:25 proxy pppd: Izlaz. 17. prosinca 16:35:57 proxy pppd: LCP prekinut od strane ravnopravnog (^P]kV^@

Računalo možda neće raditi stalno i isključiti se, recimo, noću. Stoga se unosi u /var/log/messages ciklički pohranjuju od pokretanja računala do gašenja, što se može vidjeti u porukama:

17. prosinca 08:32:56 syslog-poslužitelj syslogd 1.4-0: ponovno pokretanje. 17. prosinca 08:32:56 syslog-poslužitelj syslog: pokretanje syslogd-a uspješno 17. prosinca 08:32:56 syslog-server kernel: klogd 1.4-0, izvor dnevnika = /proc/kmsg pokrenut. 17. prosinca 08:32:56 syslog-poslužitelj syslog: pokretanje klogd-a uspjelo

17. prosinca 08:32:56 jezgra syslog-poslužitelja: Naredbeni redak jezgre: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2 17. pro 08:32:56 jezgra syslog-poslužitelja: Memorija: Dostupno 125652k/130560k (1365k kod kernela, 4200k rezervirano, 92k podataka, 236k init, 0k highmem) 17. prosinca 08:32:56 syslog-server kernel: CPU: Intel(R) Pentium(R) 4 CPU 1.60GHz stepping 02

Također, u ovoj datoteci možete pronaći informacije o memoriji diska (uključujući informacije o geometriji diska, strukturi particija i korištenim prekidima), informacije o perifernim uređajima, o pokretanju pojedinačnih usluga, informacije o povezivanju datotečnih sustava i poruke o prijavama korisnika, kao kao i poruke o greškama.

Ponekad može biti potrebno zapisnici sustava praćenja za traženje aktualnih događaja. Na primjer, možete pokušati uhvatiti događaj koji se rijetko događa u trenutku kada se dogodi. U ovom slučaju možete koristiti naredbu rep s opcijom -f za praćenje sadržaja zapisnika sustava. Primjer:

# tail -f /var/log/messages | grep syslog-server 17. pro 16:46:09 syslog-poslužitelj pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 17. pro 16:46:09 syslog-poslužitelj pppd: Skripta /etc/ppp/ip-up završeno (pid 12552), status = 0x0 17. prosinca 16:46:49 syslog-poslužitelj pptpd: CTRL: Klijent 85.175.197.65 kontrolna veza započeta 17. prosinca 16:46:49 syslog-poslužitelj pptpd: CTRL: Pokretanje poziva (pokretanje pppd-a, otvaranje GRE) 17. prosinca 16:46:49 syslog-poslužitelj pppd: Dodatak /usr/lib/pptpd/pptpd-logwtmp.so učitan.

Osim log datoteka navedenih u /etc/syslog.conf, postoje i druge datoteke, na primjer datoteka koja pohranjuje informacije o procesu pokretanja sustava prije pokretanja syslogda, kao i datoteke koje imaju binarni format i pohranjuju informacije o zadnjoj prijavi korisnika u sustav, o svim uspješnim prijavama korisnika odnosno svim neuspješnim prijavama korisnika. Također u /var/log/ direktoriju mogu postojati log datoteke takvih demona kao što su web poslužitelj ili proxy poslužitelj. Format ovih datoteka sličan je zapisnicima syslogd.

Na kraju, želio bih naglasiti da ovaj protokol nije baš siguran, jer syslog ne sadrži nikakvu zaštitu od krivotvorenja poruka. Još gore, korištenje UDP protokola omogućuje napadačima slanje poruka u ime bilo kojeg glavnog računala. Vaša lokalna mreža trebala bi biti zaštićena od primanja paketa s lažiranim lokalnim adresama (iako vas to neće spriječiti da šaljete lažne poruke unutar lokalne mreže) i od primanja paketa izvana na portu 514/udp. Poznati su slučajevi preopterećenja diska lažnim porukama.

Protokoli syslog i UDP ne osiguravaju zajamčenu isporuku (poruke se mogu izgubiti zbog zagušenja mreže ili presresti, oštećene poruke se brišu bez upozorenja), ispravan redoslijed isporuke (poruka o završetku procesa može stići prije poruke o njegovom početku) ), ili prioritetnu isporuku.

Povjerljivost poruka nije zajamčena, budući da se prenose u čistom tekstu.

Ako prilikom postavljanja generatora poruka navedete netočnu adresu kolektora ili releja, tada neće biti poruka o pogrešci - poruke će biti izbrisane (ili zapisane u nečiji dnevnik).

Predloženo je nekoliko projekata za poboljšanje syslog protokola. Na primjer, RFC 3195 predlaže sustav zapisivanja temeljen na TCP-u (syslog-conn) koji osigurava da se poruke isporučuju ispravnim redoslijedom. Projekt syslog-sign predlaže pružanje provjere autentičnosti, naručivanja, integriteta poruka i otkrivanje poruka koje nedostaju generiranjem posebnih poruka koje sadrže digitalni potpis bloka prethodnih poruka, očuvanjem standardnog protokola i formata syslog-a i korištenjem UDP-a.

Ukratko:

Linux ima jedan demon odgovoran za bilježenje događaja na lokalnom sustavu i udaljenim sustavima. Svi događaji se prikupljaju iz /dev/log utičnice, UDP porta - 514, kao i od “pomagača” - klogd daemona, koji šalje poruke iz kernela. Sve prikupljene poruke syslogd demon filtrira kroz pravila u datoteci /etc/syslog.conf i distribuira prema pravilima na odgovarajuća odredišta. Dnevnici se povremeno skraćuju. Učestalost je određena datotekom logrotate.conf i naredbom logrotate koju pokreće sistemski planer - cron.

To je sve za danas. Nadam se da sam sve opisao što jasnije. S vremenom ću dopuniti članak!

Srdačan pozdrav, McSim!



reci prijateljima
Pročitajte također