Linux logy cez terminál

Linux logy: Pracuj s logmi ako profesionál

Linux
Nenechaj v tom známych samých – zdieľaj
Začiatočník

Linux logy sú zlatá baňa informácií. Teda, aspoň teoreticky. V praxi je to často skôr skládka, kde sa miešajú dôležité chybové hlášky s balastom o tom, že sa práve úspešne spustil cron job na rotáciu logov. Ak nevieš, kam siahnuť, stráviš hodiny scrollovaním v textových súboroch a nenájdeš nič.

Ale ak vieš, aké nástroje použiť a čo nimi vieš vyčarovať, zmení sa to na super schopnosť. V tomto článku ti ukážem praktický návod: od úplných základov, cez filtrovanie, až po menej známe kúsky, ktoré na bežnej SK/CZ scéne hneď tak nenájdeš. Zabudni na grafické rozhrania, dnes hráme „hardcore mode“.

Kde sú Linux logy a aký je medzi nimi bordel

Prvá vec, ktorú musíš pochopiť, je, že v Linuxe vládne (organizovaný) chaos. Väčšina moderných distribúcií dnes používa hybridný prístup – kombináciu moderného systemd journalu a klasických textových súborov.

Tradičné súbory (Stará škola)

Ak používaš Debian, Ubuntu, RHEL alebo Almu, väčšinu „mäsa“ nájdeš v adresári /var/log. Sú to obyčajné textové súbory, ktoré môžeš čítať čímkoľvek.

  • /var/log/syslog (Debian/Ubuntu) alebo /var/log/messages (RHEL/CentOS) – Toto je tvoj hlavný denník. Všeobecné systémové správy, hlášky služieb, ktoré nemajú vlastný log, a sem-tam nejaký error z aplikácie.
  • /var/log/auth.log alebo /var/log/secure – Svätý grál bezpečnosti. Tu vidíš, kto sa prihlasuje, kto používa sudo a kto sa ti snaží hacknúť SSH.
  • /var/log/kern.log – Správy priamo od jadra (kernelu). Hardvér, drivery, sieťové karty.
  • /var/log/boot.log – Čo sa dialo pri štarte systému (ak ti server nenabehne, pozeraj sem).
Systemd journal (Nová škola)

Toto je binárna databáza logov. Nemôžeš ju otvoriť cez textový editor, musíš na ňu ísť cez príkaz journalctl. Výhodou je, že sa v nej ľahko vyhľadáva podľa času alebo služby, nevýhodou je, že ak sa poškodí, neprečítaš nič.

Rýchly prehľad logov v adresári:

Základné čítanie: terminál Linux a svätá trojica less, tail, head

Keď už vieš, kde tie Linux logy sú, poďme ich čítať. Najhorší nápad je otvoriť 2 GB log súbor v textovom editore nano alebo vim. Zaplníš si RAM a server ti kľakne. Terminál Linux má na to lepšie nástroje.

Ak s príkazovým riadkom len začínaš a príkazy ako cd alebo ls ti zatiaľ veľa nehovoria, odporúčam ti najprv prebehnúť náš článok o základných príkazoch v Linuxe, kde nájdeš všetko podstatné pre pohyb v systéme.

less – pohodlné čítanie veľkých logov

less je geniálny v tom, že neťahá celý súbor do pamäte. Načíta si len to, čo vidíš na obrazovke.

V less sa musíš vedieť hýbať, inak si stratený. Tu sú klávesy, ktoré musíš dostať do prstov:

  • Space / PageDown: Ďalšia stránka.
  • b / PageUp: Späť o stránku.
  • G (veľké G): Skok na úplný koniec súboru (najnovšie správy).
  • g (malé g): Skok na začiatok.
  • /text: Vyhľadanie textu smerom dopredu.
  • ?text: Vyhľadanie smerom dozadu.
  • n / N: Skok na ďalší / predchádzajúci výskyt hľadaného slova.
  • q: Quit (odchod).
tail a head – konce a začiatky

Niekedy nepotrebuješ čítať román, chceš len vidieť koniec.

Živý „stream“ logu

Toto je funkcia, ktorú využiješ pri debugovaní najčastejšie. Spustíš službu, niečo nefunguje, a ty chceš vidieť, čo sa deje práve teraz.

Prepínač -f (follow) drží súbor otvorený a vypisuje nové riadky tak, ako prichádzajú. Ukončíš to cez Ctrl+C.

Hľadanie v logoch: Ktorý príkaz v Linuxe ti nájde ihlu v kope sena

Prechádzať Linux logy očami je fajn, ak máš veľa času a málo priateľov. My ostatní používame grep. Je to asi najdôležitejší príkaz v Linuxe pre každého admina.

grep – základný filter
  • -i (ignore case): Je mu jedno, či je to „Error“, „ERROR“ alebo „error“.
  • -n (line number): Povie ti, na ktorom riadku sa text nachádza (užitočné, ak to chceš potom pozrieť v vim).
Viac kontextu (-A, -B, -C)

Samotná chyba často nestačí. Potrebuješ vedieť, čo sa stalo predtým, než to buchlo.

Počítanie výskytov (-c)

Niekedy ťa nezaujíma text, ale štatistika.

Výstupom je len číslo. Napríklad 432. To ti povie, že máš problém, ale nezahltí ti obrazovku.

Pro Tip: Kombinácia živého streamu a filtra.

Teraz vidíš v reálnom čase len neúspešné pokusy o prihlásenie. Perfektné „kino“ pre admina.

Šikovné textové nástroje: awk, cut, sort, uniq

Teraz sa dostávame do zóny „Data Science v termináli“. Keď Linux logy nestačí len čítať, ale chceš z nich spraviť report.

TOP útočníci podľa IP (SSH brute-force)

Chceš vedieť, ktorá IP adresa ťa bombarduje najviac?

Čo sa tu deje?

  1. grep vyberie len relevantné riadky.
  2. awk '{print $(NF-3)}' je malý zázrak. NF znamená „Number of Fields“ (počet stĺpcov). NF-3 znamená „tretí stĺpec od konca“. V logoch SSH je IP adresa zvyčajne presne tam. Je to robustnejšie ako počítať stĺpce od začiatku.
  3. sort zoradí IP adresy (nutné pre uniq).
  4. uniq -c spočíta opakujúce sa riadky a vypíše počet.
  5. sort -nr zoradí výsledok numericky (-n) a reverzne (-r) – teda od najväčšieho po najmenší.
  6. head ukáže top 10.
TOP URL z web logu (Apache/Nginx)

Ktorú stránku na tvojom webe ľudia (alebo boti) volajú najčastejšie?

V štandardnom formáte web logov je 7. stĺpec práve URL (cesta).

Menej známe, ale extrémne užitočné: journalctl

Ako som spomínal, na systémoch so systemd (čo je dnes skoro všetko) je journalctl prvá voľba. Je to moderný spôsob, ako spravovať Linux logy.

Základy journalctl
Filtrovanie ako pán

Toto je sila journalu. Nemusíš grepom hľadať dátumy. Na niektorých systémoch musíš použiť sshd.service namiesto ssh.service

Export do JSON

Ak potrebuješ logy poslať ďalej alebo spracovať skriptom, journalctl to vie natívne.

Výstupom je krásne štruktúrovaný JSON, ktorý môžeš poslať do ELK stacku, Promethea alebo spracovať cez jq.

dmesg – keď sa sťažuje hardvér

dmesg číta tzv. kernel ring buffer. Sú to správy, ktoré generuje jadro systému ešte predtým, než nabehne disk alebo sieť. Je to neoceniteľný príkaz v Linuxe pri diagnostike hardvéru.

logrotate – ako sa Linux logy nezbláznia a nezaplnia disk

Logy rastú. Rýchlo. Ak by si ich nechal tak, za mesiac ti zaplnia disk a server kľakne. O toto sa stará služba logrotate.

Zvyčajne beží sama (cez cron), ale je dobré vedieť, kde býva:

  • Konfigurácia: /etc/logrotate.conf a adresár /etc/logrotate.d/.
  • Ručné spustenie (napr. keď meníš config a chceš otestovať):

V konfigu nájdeš kľúčové slová:

  • daily, weekly: ako často rotovať.
  • rotate 4: koľko starých verzií držať.
  • compress: staré logy sa zbalia do .gz (šetrí miesto).

Parsing JSON logov: jq

Moderné aplikácie (Node.js, Python, Go) často logujú priamo do JSON formátu. Čítať to očami je utrpenie. Na to slúži nástroj jq.

Príklad z praxe: Spočítaj, koľko errorov sa vyskytlo v JSON logu.

Ak toto zvládneš, tvoj terminál Linux sa zmení na mocný analytický nástroj.

Praktické „recepty“ pre každodenného admina

Tu je pár hotových snippetov, ktoré môžeš rovno použiť pre Linux logy.

1. Sleduj realtime chyby konkrétnej služby

2. Hľadaj podozrivé SSH loginy za poslednú hodinu

3. Kedy sa systém naposledy reštartoval?

4. Rýchly prehľad HTTP kódov (404, 500…) v access.log

(Predpokladáme, že 9. stĺpec je HTTP status code, čo je štandard).

Checklist: Log Master Starter Pack

Aby si na nič nezabudol, tu je rýchly zoznam krokov, keď riešiš incident:

  • Identifikuj problém: Je to systém (kernel), služba (systemd) alebo aplikácia?
  • Vyber správny log: /var/log/syslog pre všeobecné veci, journalctl pre služby.
  • Použi tail -f: Sleduj, čo sa deje, keď vyvoláš chybu.
  • Filtruj šum: Použi grep -v na odstránenie riadkov, ktoré ťa nezaujímajú.
  • Hľadaj kontext: Použi grep -C alebo journalctl -xe.
  • Skontroluj disk: Nie je problém len v tom, že df -h ukazuje 100% usage kvôli logom?

Zhrnutie: Mindset, nie len príkazy v Linuxe

Práca s logmi nie je o tom, že sa naučíš naspamäť všetky prepínače. Je to o prístupe. Namiesto otázky „aký príkaz na toto?“ sa skús na Linux logy pozerať takto:

  1. Kde to leží? (/var/log/* alebo journalctl)
  2. Ako to budem čítať? (less, tail -f)
  3. Ako to vyfiltrujem? (grep, awk, jq)
  4. Ako z toho spravím informáciu? (počítanie, triedenie)

Keď tieto štyri body spojíš, získaš „logový švajčiarsky nôž“ – sadu nástrojov, ktorými vyriešiš 80 % incidentov bez grafického rozhrania a bez drahého SIEM systému. A to je presne ten rozdiel medzi „užívateľom Linuxu“ a profíkom.

 

Zdroje :

Loggly , CrowdStrike

Prihlásiť sa na odber
Upozorniť na
0 komentárov
Najstaršie
Najnovšie Najviac hlasovalo
Inline Feedbacks
Zobraziť všetky komentáre