Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:naplozas

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Előző változat
Utolsó változat Következő változat mindkét oldalon
oktatas:linux:naplozas [2019/03/12 20:44]
oktatas:linux:naplozas [2021/07/01 22:45]
admin [dmesg]
Sor 1: Sor 1:
 +[[oktatas:​linux|<​ Linux]]
  
 +====== Linux naplózás ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2016, 2018, 2019
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​szit.hu
 +
 +===== A naplózásról =====
 +
 +A Linux alapú rendszerek fejlett naplózási lehetőségekkel rendelkeznek. ​
 +Egy Linux rendszeren mindig érdemes belenézni az ilyen fájlokba, mert
 +azok értelmes és logikus feljegyzéseket tartalmaz a rendszer állapotáról,​
 +hibáiról, történéseiről.
 +
 +Mi a naplózás célja?
 +  * hibák felderítése
 +  * biztonsági audit
 +  * a rendszer finomhangolása
 +  * állapotok nyomon követése
 +  * szolgáltatás használati szokásainak feltérképezése
 +  * stb.
 +
 +Mit lehet naplózni?
 +  * Józsi mikor lépet be tegnap este?
 +  * János mit nézett meg tegnap este?
 +  * Mikor indult újra a rendszer?
 +  * Milyen címről léptek be tegnap 8-9 között?
 +  * Ki kapott levelet?
 +  * Betörtek?
 +  * Voltak tegnap eset sikertelen belépési kísérletek?​
 +  * Milyen csomag lett feltelepítve tegnapelőtt?​
 +  * Melyik országból jöttek a felhasználók?​
 +  * Tegnap használták az adott programot?
 +  * Jóska honnan jelentkezett be?
 +  * stb.
 +
 +
 +===== Programok a naplózás területén =====
 +
 +Az első naplózó program a sendmail program kiegészítéseként készült. ​
 +Hamar jött a gondolat, hogy az egész rendszeren lehetne használni. ​
 +A neve sylsog lett. Kezdetben minden Linux rendszerre ezt került
 +fel. A syslog hibáinak kiküszöbölésére jött létre a syslog-ng,
 +amit gyorsabbnak és hatékonyabbnak tartanak. A Debian GNU/Linux
 +rendszereken manapság az rsyslog terjedt el, amely kompatibilis
 +a syslog rendszerrel. ​
 +
 +Naplózó démonok:
 +
 +  * rsyslog
 +  * syslog-ng
 +  * inetutils-syslogd
 +
 +
 +A fent felsorolt démonok mind csomagnevek is a Debian alapú rendszerekben.
 +
 +Esetleg külső forrásból:​
 +  http://​metalog.sourceforge.net/​
 +
 +A Debian GNU/Linux rendszerek alapértelmezett naplózó rendszere (2016) a rsyslog.
 +
 +A programozók rendelkezésre áll egy syslog() nevű függvény, amelyet
 +beépíthetnek a programjukba. A rendszergazdán múlik, hogy a fenti
 +programok közül melyik naplózó rendszer fogadja a naplózásra ​
 +küldött adatokat. ​
 +
 +
 +Naplóba írhatunk:
 +
 +  logger szöveg
 +
 +A logger /​var/​log/​syslog-ot írja.
 +
 +
 +Napló elemző:
 +  logcheck
 +
 +
 +===== Fájlok =====
 +
 +A /var/log/ könyvtár tartalma alapesetben:​
 +
 +  * auth.log
 +    * felhasználói azonosítás
 +  * btmp
 +    * sikertelen belépések -- last -f /​var/​log/​btmp
 +  * daemon.log
 +    * démonokról tartalmaz információt
 +  * debug
 +    * a naplózóban DEBUG szintre állított programok írnak ide
 +  * dmesg
 +    * a kernel gyűrűpuffer (kernel ring buffer)
 +  * dpkg.log
 +    * telepített,​ törölt csomagok
 +  * faillog
 +    * sikertelen belépési kísérletek
 +  * kern.log
 +    * a kernel beállításai
 +  * lastlog
 +    * legutóbbi bejelentkezési adatok minden felhasználó számára
 +  * mail.info
 +    * mail.log
 +  * mail.log
 +    * levelek
 +  * messages
 +    * globális rendszerüzenetek,​ induláskori üzenetek
 +  * syslog
 +    * a legtöbb log
 +    * általában a messages is benne van
 +  * wtmp
 +    * bejelentkezési információk
 +
 +
 +
 +
 +<​code>​
 +# last -f /​var/​log/​btmp
 +root     ​tty3 ​                        Sat Oct 29 21:48   still logged in
 +janos   :​0 ​          :​0 ​              Tue Oct 25 17:19    gone - no logout ​
 +janos   :​0 ​          :​0 ​              Wed Oct 19 18:55 - 17:19 (5+22:​23) ​  
 +janos   :​0 ​          :​0 ​              Mon Oct 17 21:25 - 18:55 (1+21:​30) ​  
 +janos   :​0 ​          :​0 ​              Sun Oct  9 21:12 - 21:25 (8+00:​13) ​  
 +janos   :​0 ​          :​0 ​              Sat Oct  8 11:10 - 21:12 (1+10:​01) ​  
 +janos   :​0 ​          :​0 ​              Tue Oct  4 19:58 - 11:10 (3+15:​12) ​  
 +janos   :​0 ​          :​0 ​              Mon Oct  3 23:35 - 19:58  (20:​23) ​   ​
 +
 +btmp begins Mon Oct  3 23:35:15 2016
 +</​code>​
 +
 +Egyéb:
 +  * alternatives.log
 +    * alternatív alrendszer
 +  * fontconfig.log
 +    * beállított font könyvtárak
 +
 +Az egyes programok általában saját könyvtárat hoznak létre a naplóállományaik számára.
 +
 +===== Üzenetek prioritása =====
 +
 +Az üzenetek prioritása:​
 +  * emerg: vészhelyzet;​ a rendszer valószínűleg használhatatlan
 +  * alert: azonnali lépések szükségesek
 +  * crit: kritikus állapotok
 +  * err: hiba
 +  * warn: figyelmeztetés;​ ebből hiba lehet
 +  * notice: normális állapot, de ez fontos üzenet
 +  * info: információs üzenet
 +  * debug: hibakövetési információ
 +
 +
 +
 +===== A napló megtekintése =====
 +
 +  * cat
 +  * more
 +  * less
 +  * nano
 +  * mcedit
 +  * vi
 +  * tail
 +  * grep
 +  * zcat -- gzip tömörített fájlok olvasása
 +  * zgrep
 +  * zmore
 +  * head
 +  * tailf
 +  * dmesg -- a  kernel ring buffer megtekintése
 +  * multitail
 +
 +
 +A tail paranccsal real-time-ban figyelhetjük a naplókat:
 +  tail -f /​var/​log/​syslog
 +
 +MATE grafikus felületen a mate-system-log programmal tekinthetjük meg
 +a naplófájlokat. A /var/log könyvtár az adm csoportba van. 
 +Tegyük a felhasználót ebbe a csoportba.
 +
 +A mutlitail használata:​
 +  multitail -i /​var/​log/​syslog -i /​var/​log/​auth.log
 +
 +===== rsyslog =====
 +
 +  # nano /​etc/​rsyslog.conf
 +  # ls /​etc/​rsyslog.d/​
 +
 +
 +Naplózás a 12 teletype-ra:​
 +
 +Szerkesszük az rsyslog.conf fájlt:
 +  mcedit /​etc/​rsyslog.conf
 +
 +De készíthetünk egy külön fájlt is:
 +  mcedit /​etc/​rsyslog.d/​50-default.conf
 +
 +Az rsyslog.conf végére vagy a 50-default.conf fájlba írjuk:
 +
 +<​code>​
 +*.*/​dev/​tty12
 +</​code>​
 +
 +Indítsuk újra rsyslog szervert:
 +  /​etc/​init.d/​rsyslog restart
 +
 +Naplózás más számítógépre:​
 +  mcedit /​etc/​rsyslog.d/​50-default.conf
 +Írjuk bele:
 +<​code>​
 +*.* @gépnév
 +</​code>​
 +
 +
 +
 +===== Rotálás =====
 +
 +A naplófájlok egy idő után túl nagyok lennének, ha nem lennének
 +időnként letörölve. A naplófájlok rotációban,​ átnevezésre,​ majd
 +később tömörítésre kerülnek. Egy idő után pedig törlésre kerülnek.
 +
 +Ezt a feladatot látja el a logrotate program.
 +
 +A logrotate program fő beállításai a következő helyen találhatók:​
 +  /​etc/​logrotate.conf
 +
 +A logrotate beállításai a következő könyvtárban lehet:
 +  /​etc/​logrotate.d/​
 +
 +A könyvtárban minden program számára készíthetünk egy 
 +állományt,​ amelyben leírjuk a rotációt. ​
 +===== A logger program =====
 +
 +A felhasználók a logger paranccsal képesek a syslog fájlba naplózni. ​
 +Például:
 +  logger üzenet
 +
 +==== A felhasználók korlátozása ====
 +
 +Bármelyik felhasználó írhat /​var/​log/​syslog fájlba:
 +  logger "​Működik a naplózás"​
 +
 +Ezt megteheti név nélkül is, konzolra írással együtt:
 +  logger -p 0 -t kernel "​Működik a naplózás"​
 +
 +<​code>​
 +groupadd log
 +chmod 660 /dev/log
 +chown root.log /dev/log
 +</​code>​
 +
 +Ezek után csak azok írhatnak a naplóba, akik bele kerültek a log csoportba.
 +
 +===== rsyslog naplózószerver =====
 +
 +==== Központi szerver beállítása ====
 +
 +A beállítások elvégezhetők a /​etc/​rsyslog.conf állományban vagy
 +a tetszőleges névvel, .conf kiterjesztéssel létrehozunk magunak
 +egyet a /​etc/​rsyslog.d könyvtárban.
 +
 +Hozzunk létre egy logserver.conf állományt:​
 +  nano /​etc/​rsyslog.d/​logserver.conf
 +
 +Tartalma a következő legyen:
 +<​code>​
 +$ModLoad imtcp
 +$InputTCPServerRun 514
 +
 +$AllowedSender TCP, 127.0.0.1, 192.168.5.0/​24,​ gepnev1, gepnev2.domain
 +$template LogFiles,"/​var/​log/​%HOSTNAME%/​%PROGRAMNAME%.log"​
 +*.* ?LogFiles
 +</​code>​
 +
 +A beállítás után indítsuk újra a rsyslog szervert:
 +  systemctl restart rsyslog
 +
 +A %HOSTNAME% helyet IP cím is lehet a könyvtárnév:​
 +  $template LogFiles,"/​var/​log/​%fromhost-ip%/​%PROGRAMNAME%.log"​
 +
 +Ha megadunk egy gépnevet az $AllowedSender sorban, annak feloldhatónak
 +kell lennie IP címre. Ha DNS szerveren keresztül nem érhető el,
 +akkor állítsuk be az /etc/hosts fájlban.
 +
 +
 +
 +==== Kliens beállítása ====
 +
 +A beállítások elvégezhetők a /​etc/​rsyslog.conf állományban vagy
 +a tetszőleges névvel, .conf kiterjesztéssel létrehozunk magunak
 +egyet a /​etc/​rsyslog.d könyvtárban.
 +
 +Hozzunk létre egy logserver.conf állományt:​
 +  nano /​etc/​rsyslog.d/​logserver.conf
 +
 +Tartalma a következő legyen:
 +<​code>​
 +# Távoli syslog szerver beállítása TCP protokollon
 +*.* @@192.168.5.1:​514
 +</​code>​
 +
 +Indítsuk újra az rsyslog szervert:
 +  systemctl restart rsyslog
 +
 +Figyeljünk a kliens gépnevére (hostname)! A szerveroldalon mindig
 +a kliens gépnevével azonos könyvtárba kerülnek a naplóbejegyzések.
 +A kliens gépnevének állítása után a rsyslogot is indítsuk újra:
 +  hostnamectl set-hostname tenger
 +  systemctl restart rsyslog
 +
 +
 +==== Ellenőrzés ====
 +Az 514 port ellenőrzése:​
 +  ss -ltn
 +
 +Bejegyzés küldése:
 +  logger "​Működik"​
 +
 +A bejegyzésnek szerepelnie kell a kliens syslog állományában és 
 +a szerver root.log állományában.
 +
 +
 +===== journalctl =====
 +
 +A journalctl a systemd naplózórendszer kezelője.
 +
 +A systemd a naplókat a man //​systemd-journald//​ szerint az alábbi helyeken tárolhatja:​
 +
 +<​code>​
 +/​run/​log/​journal/​machine-id/​*.journal
 +/​run/​log/​journal/​machine-id/​*.journal~
 +/​var/​log/​journal/​machine-id/​*.journal
 +/​var/​log/​journal/​machine-id/​*.journal~
 +</​code>​
 +
 +
 +Kérdezzük le, a merevlemezen mennyi helyet foglal a systemd naplója:
 +  journalctl --disk-usage
 +
 +A kimenet a következőhöz hasonló lehet:
 +  Archived and active journals take up 8.0M in the file system.
 +
 +
 +A journalctl önmagában kiadva az összes bejegyzést mutatja szűrés nélkül:
 +  journalctl
 +
 +==== Lekérdezés egység (Unit) alapján ====
 +
 +
 +Egy szolgáltatáshoz tartozó bejegyzések megtekintése:​
 +  journalctl _SYSTEMD_UNIT=ssh.service
 +
 +Másik példa:
 +  journalctl _SYSTEMD_UNIT=avahi-daemon.service
 +
 +A -u kapcsolóval:​
 +  journalctl -u ssh.service
 +
 +
 +Egy adott program által generált napló:
 +  journalctl /​usr/​sbin/​sshd
 +
 +PID alapján:
 +  journalctl _PID=7285
 +
 +==== A rendszerindítás üzenetei ====
 +
 +Az aktuális rendszerindítási üzeneteket a -b kapcsolóval lehet megtekinteni: ​
 +  journalctl -b
 +
 +
 +Ha a tartós tárolás be van állítva, akkor megnézhetjük az aktuális előtti ​
 +rendszerindítási üzeneteket is:
 +  journalctl -b -1
 +
 +Kettővel ez előtti:
 +  journalctl -b -2
 +
 +Rendszerindítási azonosítók listázása:​
 +  ​
 +  journalctl --list-boots
 +
 +==== Időintervallum lekérdezése ====
 +
 +Egy órával ez előtt óta:  ​
 +
 +  journalctl --since "1 hour ago"
 +
 +Két nappal ez előttől:
 +  journalctl --since "2 days ago"
 +
 +
 +Mettől meddig:
 +  journalctl --since "​2018-11-25 20:​11:​00"​ --until "​2018-11-25 20:​35:​00"​
 +
 +
 +Adott időpont óta:
 +  journalctl --since "​2018-11-25 20:​00:​00"​
 +
 +Mai napon:
 +  journalctl --since today
 +
 +Tegnap óta:
 +  journalctl --since yesterday
 +
 +==== Tartós tárolás beállítása ====
 +
 +A naplófájlok alapértelmezetten csak a memóriában tárolódnak:​
 +  /​run/​log/​journal/<​gép_azonosító>/​system.journal
 +
 +A tartós tárolásról külön gondoskodni kell. Ehhez szerkeszteni kell
 +a journald.conf beállításait:​
 +
 +  nano /​etc/​systemd/​journald.conf
 +
 +A journald.conf fájlban minden beállítás a [Journal] szekcióban található.
 +
 +Az első tulajdonásg a Storage:
 +
 +  Storage=
 +
 +Értékei a következő lehetnek:
 +  * volatile
 +    * tárolás csak a memóriában
 +    * /​run/​log/​journal
 +  * persistent
 +    * tárolás a merevlemezen:​ /​var/​log/​journal
 +    * A journal könyvtár létrejön ha szükséges
 +  * auto
 +    * tárolás a merevlemezen:​ /​var/​log/​journal
 +    * nem jön létre automatikusan a journal könyvtár és a tartalma
 +  * none
 +    * nincs semmilyen tárolás
 +
 +Az auto beállítás esetén akkor történik tárolás, ha van hely.
 +
 +Az autóbeállításhoz fájlok, könyvtárak létrehozása:​
 +<​code>​
 +mkdir -p /​var/​log/​journal
 +systemd-tmpfiles --create --prefix /​var/​log/​journal
 +systemctl restart systemd-journald
 +</​code>​
 +
 +==== Folyam és vég figyelése ====
 +
 +  journalctl -f
 +
 +
 +  journalctl -u ssh.service -f
 +
 +Az utolsó 5 sor mutatása:
 +  journalctl -n 5 -u ssh.service
 +==== Szűrés prioritás alapján ====
 +
 +Prioritások:​
 +  * 0 – emerg
 +  * 1 – alert
 +  * 2 – crit
 +  * 3 – err
 +  * 4 – warning
 +  * 5 – notice
 +  * 6 – info
 +  * 7 – debug
 +
 +  journalctl -p err
 +
 +  journalctl -p 1..4
 +
 +  journalctl -p emerg..warning
 +
 +==== Kimenet formálása ====
 +
 +Formázási lehetőségek:​
 +  * cat
 +  * export
 +  * json
 +  * json-pretty
 +  * json-sse
 +  * short
 +  * short-iso
 +  * short-monotonic
 +  * short-precise
 +  * verbose
 +
 +  journalctl -b -u ssh.service -o cat
 +
 +==== Üzenetcsoportok ====
 +Kernelmag üzenet:
 +  journalctl -k
 +
 +Boot üzenet:
 +  journalctl -b
 +
 +Minden üzenet:
 +  journalctl -a
 +
 +==== Rotálás ====
 +
 +  journalctl --rotate
 +
 +==== Átirányítás ====
 +
 +  journalclt --no-pager > uzenetek.txt
 +
 +==== Fájlok törlése ====
 +
 +A napló mérete 1 G lehet:
 +  journalctl --vacuum-size=1G
 +
 +1 év naplójának megtartása:​
 +  journalctl --vacuum-time=1years
 +
 +Megadható mértékegységek:​
 +  * s
 +  * m
 +  * h
 +  * days
 +  * months
 +  * weeks
 +  * years
 +==== Szűrés felhasználók alapján ====
 +
 +Tegyük fel, hogy a sshd démonra vagyunk kíváncsi. Derítsük ki az sshd
 +felhasználó belső azonosítóját:​
 +  id sshd
 +
 +A kimenet ehhez hasonló lehet:
 +  uid=116(sshd) gid=65534(nogroup) csoportok=65534(nogroup)
 +
 +Ezek után napló megtekintése:​
 +  journalctl _UID=116
 +
 +===== multitail =====
 +
 +  apt install multitail
 +
 +
 +  multitail /​var/​log/​syslog /​var/​log/​daemon.log
 +
 +{{:​oktatas:​linux:​virtualbox_iskolazo_net_deb_950_1_13_02_2019_19_36_14.png|}}
 +
 +===== lnav =====
 +Naplófájl nézegető.
 +
 +Telepítés:​
 +  apt install lnav
 +
 +Használatra példa:
 +  lnav
 +vagy:
 +  lnav /​var/​log/​syslog /​var/​log/​daemon.log
 +
 +===== less =====
 +
 +Megnyitunk egy fájl:
 +  less /​var/​log/​auth.log
 +Ezek után bekapcsoljuk a folyamatos módot:
 +  Shift + F
 +
 +De indíthatjuk azonnal ebben a módban:
 +  less +F /​var/​log/​auth.log
 +
 +===== tail + grep =====
 +
 +A tail -f vagy a tailf parancs nagyszerű eszköz egy állomány változásainak folyamatosa figyelésére. ​
 +A kimenet szűrhető is a grep paranccsal. A következőkben olyan üzeneteket keresünk, ahol
 +janos, mari vagy kati szerepel az üzenetsorban.
 +
 +  tail -f /​var/​log/​auth.log | grep -E '​(janos|mari|kati)'​
 +
 +A -v kapcsolóval most megfordítjuk az illeszkedést. Azt adjuk meg, milyen sorokat nem szeretnénk látni:
 +  tail -f /​var/​log/​auth.log | grep -Ev '​(janos|mari|kati)'​
 +
 +
 +A grep -E kapcsoló helyett használható a egrep parancs is. A tail -f parancs helyett használható ​
 +a tailf parancs is.
 +===== Függelék =====
 +==== dmesg ====
 +
 +A kernel ring bufferbe a kernel írja az üzeneteit. ​
 +Magunk is írhatunk ebbe a naplóba a megfelelő eszköz ismeretében.
 +
 +Írás a dmesg naplóhoz:
 +  echo üzenet > /dev/kmsg
 +
 +
 +===== Források =====
 +  * https://​www.howtoforge.com/​tutorial/​rsyslog-centralized-log-server-in-debian-9/​ (2018)
 +  * http://​www.thegeekstuff.com/​2011/​08/​linux-var-log-files/​ (2016)
 +  * http://​www.thegeekstuff.com/​2012/​01/​rsyslog-remote-logging (2016)
 +  * https://​www.digitalocean.com/​community/​tutorials/​how-to-view-and-configure-linux-logs-on-ubuntu-and-centos (2016)
 +  * http://​unixlinux.tmit.bme.hu/​Napl%C3%B3z%C3%A1s (2016)
 +  * https://​help.ubuntu.com/​community/​LinuxLogFiles (2017)
 +  * https://​www.freedesktop.org/​software/​systemd/​man/​journald.conf.html (2018)
 +  * https://​www.loggly.com/​ultimate-guide/​using-journalctl/​ (2018)
 +  * https://​debian-handbook.info/​browse/​squeeze/​sect.syslog.html (2018)
 +  * https://​www.linux.com/​learn/​sysadmin/​viewing-linux-logs-command-line (2018)
 +
 +  * man journald.conf (2018)
 +  * man systemd-journald
 +  * man journalctl
oktatas/linux/naplozas.txt · Utolsó módosítás: 2023/09/03 17:33 szerkesztette: admin