Водич за команду Journalctl: Комплетан и практичан водич

Последње ажурирање: 16/10/2025
Аутор: Исак
  • Journalctl централизује и филтрира системске логове по времену, јединици, приоритету и још много тога.
  • Омогућава флексибилне излазе (JSON, ISO 8601, детаљан) и праћење у реалном времену.
  • Управљање простором са вакуумом и ограничењима у journald.conf за прецизну контролу.

Водич за Journalctl и systemd

Када радите са линук модеран, systemd и његов централизовани дневник Они су основа за разумевање шта се дешава на машини. И ту долази до изражаја journalctl, швајцарски нож за упите, филтрирање и извоз тих логова брзином и прецизношћу коју нећете добити са раштрканим равним датотекама.

Овај туторијал корак по корак обједињује, Све основне и напредне функције journalctl-аоткако сам видео последњи боот, филтрирајте по сервису, кориснику или приоритету, да бисте управљали простором на диску, мењали излазне формате или извозили у JSON. Поред тога, видећете како да омогућите складиштење упоран, наведите претходне стартове и крећите се кроз временске прозоре са апсолутном флексибилношћу.

Journalctl, systemd-journald и зашто је то важно

На системима са systemd, поруке из језгра, сервиса, initrd-а и корисничких процеса се прикупљају у бинарном дневнику којим управља системд-јоурналдЗа разлику од /var/log/syslog и сличних, овај бинарни формат дозвољава Брзе претраге, филтрирање метаподатака и разноврсни излази (нпр. JSON или syslog стил), све са једне приступне тачке: journalctl.

УЕФИ БИОС
Повезани чланак:
Како приступити и ажурирати подешавања фирмвера (BIOS/UEFI) из Линукса користећи systemctl и systemd

Прво: проверите временску зону

Пошто се записи подразумевано приказују по локалном времену, препоручљиво је прво потврдити временску зону помоћу тимедатецтлМожете да наведете доступне зоне помоћу timedatectl list-timezones и промените га са sudo timedatectl set-timezone ZONAДа бисте проверили статус, САД timedatectl status и потврђује да је локални сат тачан.

Ако сте заинтересовани за рад у UTC временском оквиру, journalctl додаје модификатор –UTC да бисте приказали универзалне временске ознаке када вам затребају. На овај начин нема проблема при упоређивању са логовима. други сервери или са подацима праћења.

Почетак: прегледање, навигација и листање

Без аргумената, journalctl приказује цео часопис од најстаријег до најновијег уноса користећи пагинацију (обично manje). Можете се кретати помоћу стрелица и, ако је линија дужа од екрана, погледајте остатак помоћу стрелице удесноДа бисте обрнули редослед (прво недавно), додајте -r.

Ако желите да линија буде скраћена уместо померања бочно, користите --no-full; и да видим апсолутно све (укључујући ликови који се не могу штампати), додаје -aКада желите да обрадите излаз другим алатима, --no-pager онемогућава пејџер и оставља излаз у стдоут.

Постоје практичније пречице за свакодневни живот: -e пређите директно на крај дневника да бисте видели најновија дешавања и -x покренути додај објашњења корисно за неке поруке (када су доступне) ради убрзавања дијагнозе.

Филтрирај по покретању система

Ел цонмутадор -b Приказује вам само уносе из тренутно покретањеВидећете линије „– Рестартуј –“ које разграничавају сесије ако се крећете кроз више од једног покретања. Да бисте се вратили на претходно покретање, користите journalctl -b -1пре пет стартова, -b -5Ово је идеално када се проблем јавља тек након поновног покретања система или у одређеним секвенцама покретања.

  Како знати да ли је Microsoft Office активиран

Ако желите списак звезда које новине знају, journalctl --list-boots приказаће по један по реду са: релативним помаком (0, -1, -2, ...), BOOT_ID и временски опсег. Можете упитивати по помаку или апсолутном ИД-у: journalctl -b 0 o journalctl -b BOOT_ID.

Важно: Да би претходна покретања остала сачувана након поновног покретања, омогућите трајно складиштење креирањем /var/log/journal (sudo mkdir -p /var/log/journal) или уређивање /etc/systemd/journald.conf са Storage=persistentНа овај начин, логови се неће губити при сваком покретању.

Моћни временски прозори

Да бисте ограничили време, користите --since y --until са форматом ГГГГ-ММ-ДД ХХ: ММ: ССАко изоставите време, претпоставља се поноћ; ако изоставите датум, претпоставља се текући дан. На пример: journalctl --since "2024-12-01 09:00" --until "2024-12-01 12:00".

Такође можете користити релативне изразе: јуче, данас, сутра, sada, или фразе попут "1 hour ago"Класик: journalctl --since 09:00 --until "1 hour ago" да бисте видели од првог сата до сата пре тренутног.

Филтрирај по услузи, процесима, корисницима и још много тога

Најчешћи филтер је по системској јединици: -u. На пример journalctl -u nginx.service Приказује све из nginx сервиса. Можете комбиновати више јединица да бисте видели како оне међусобно делују. хронолошки испреплетано уноси из, на пример, Nginx-а и PHP-FPM-а: journalctl -u nginx.service -u php-fpm.service --since today.

За услуге које су покренуте или не, можете навести јединице са systemctl list-units -t service --all и открити тачна имена (корисно у системима са десетинама сервиса). На овај начин избегавате грешке у куцању и филтрирате само оно што је потребно.

Ако знате ПИД, филтрирајте по _PID: journalctl _PID=8088За кориснике и групе користите _UID y _GIDНа пример, id -u www-data вратиће UID који затим можете користити у journalctl _UID=33 --since today пар погледајте шта је генерисао тај корисник.

Дневник аутоматски индексира многа поља: извршни програм, команда, транспорт, објекат итд. Са journalctl -F CAMPO можете навести различите вредности са поља и тако изградити прецизније филтере. Консултујте man systemd.journal-fields да бисте видели комплетан каталог поља која се могу филтрирати.

Неки веома корисни филтери: по путањи извршног фајла (journalctl /usr/bin/bash), помоћу функције у стилу системског лога (SYSLOG_FACILITY=3 одговара демону), по ИД-у покретања (_BOOT_ID=...) или превозом (_TRANSPORT=kernel|stdout|journal|syslog|driver|audit) према Порекло поруке.

У неким случајевима можете чак и филтрирати по уређају, на пример за Детекција USB догађаја у Линуксу или са journalctl /dev/sda, корисно за проналажење порука везаних за складиштење када постоје сумње на I/O или лоше секторе.

Поруке језгра и еквиваленти dmesg-а

Да бисте видели само поруке језгра које имате -k o --dmesgПодразумевано су ограничени на тренутно покретање, али их можете комбиновати са -b за остале чизме: journalctl -k -b -5 приказаће језгро од пре пет покретања.

Овај филтер је веома користан за откривање сукоби возачи, проблеми хардвер o кернел паниц или догађаје ниског нивоа који се не појављују у корисничким сервисима. То је модерна алтернатива старој команди dmesg са временским контекстом и метаподацима.

  Ултимативни водич: Савети и трикови за побољшање видео позива помоћу програма Windows Studio

Приоритети евидентирања: од 0 до 7 или по имену

Journalctl препознаје стандардне нивое приоритета: 0 хитно, 1 упозорење, 2 критично, 3 грешка, 4 упозорење, 5 обавештење, 6 информација, 7 дебаговање. Можете филтрирати помоћу -p користећи име или број, и подразумевано укључује изабрани ниво и сви најтежи.

Примери: journalctl -p err -b (грешка и највиши ниво у тренутном покретању) или journalctl -p 3Ако желите да сузите избор тачан распон, користите формат desde..hastaна пример, само упозорење, грешка и критично са journalctl -p warning..crit или у бројевима journalctl -p 4..2.

Пратите у реалном времену најновије редове и претраге

Да „слушам“ уживо новине, -f ради исто као реп -фИдеално када поново покренете услугу и желите одмах да видите шта она избацује. Ако више волите узорак, -n прикажи последњих N редова (подразумевано 10): journalctl -n, journalctl -n 20 o journalctl -n12 у свом компактном облику.

Поред увек корисне цевоводне линије за grep, journalctl интегрише --grep за регуларне изразе директно у упиту. На пример, да бисте пронашли уносе који садрже ГнуПГ: journalctl --grep GnuPGУ комбинацији са временом, вожњом или приоритетом, претрага је хируршки.

Излазни и извозни формати

са -o мењате излазни формат. Имате short (подразумевано стил системског лога), short-iso (ISO 8601 временска ознака), short-monotonic (монотони знак), short-precise (микросекунде) и вербосе (приказује сва поља, укључујући и интерна).

За интеграције, json y json-pretty су идеални (ово друго је лакше читљиво људима), и json-sse инкапсулира излаз за догађаји послати са сервераФормат cat одштампај само поље MESSAGE, корисно за чиста очитавања и export Користи се за пренос или резервне копије записа у бинарном.

Ако ћете обрађивати другим алатима, не заборавите да комбинујете --no-pager и преусмеравања: journalctl -b -u nginx -o json --no-pager > nginx.json или једноставно journalctl > mensajes.log када вам је потребно брзо пражњење.

Дозволе и обезбеђење

По дизајну, сваки корисник може да упите њихове сопствене записеДа бисте видели систем, морате бити корен или припадају групама као што су adm, wheel o systemd-journalОво спречава цурење осетљивих информација и поштује принцип најмања привилегија.

Контрола коришћења диска

Да бисте измерили колико простора новине заузимају: journalctl --disk-usageВидећете резиме MiB/GiB које су потрошиле датотеке дневника у трајној и нестабилној меморији, што је кључно за избегавајте страхове у малим преградама.

Ако треба да смањите или ослободите простор на Линук-уИмате три стратегије пражњења: по величини, по времену и по броју датотека. Примери: sudo journalctl --vacuum-size=1G, sudo journalctl --vacuum-time=2weeks o sudo journalctl --vacuum-files=10 да се сачува што је више могуће 10 архивираних датотека.

Да бисте поставили трајна ограничења, измените /etc/systemd/journald.confНајкориснији тастери: SystemMaxUse= y RuntimeMaxUse= (укупно ограничење за трајне и нестабилне), SystemKeepFree= y RuntimeKeepFree= (простор треба резервисати у ФС), SystemMaxFileSize= y RuntimeMaxFileSize= (величина појединачне датотеке) и SystemMaxFiles= y RuntimeMaxFiles= (максималан број архивираних датотека). Величине прихватају суфиксе K, M, G, T, P, E.

Имајте на уму да ограничења величине датотеке воде ротацију да би се достигла означена вредност и да се, подразумевано, ако ништа не конфигуришете, дневник обично самоограничење на око 10% фајл система где се налази. Након промене конфигурације, поново покрените сервис са sudo systemctl restart systemd-journald.

Брзи рецепти и трикови

Да бисте видели само најозбиљније грешке из последњег покретања: journalctl -p err -bАко желите тачно упозорење, грешку и критично: journalctl -p warning..crit o journalctl -p 4..2 да то изразимо бројевима.

  Како поставити забавну локацију на своју Инстаграм причу - Процес

Наведите све вредности у пољу и прецизирајте филтере: journalctl -F _GID (o -F _UID, -F _EXEитд.). Савршено је за откривање стварних ИД-ова пре креирања коначног упита.

Одвојено по извршној датотеци или команди: journalctl _EXE=/usr/bin/sudo o journalctl _COMM=sudoАко треба да изолујете шта долази из излаза стандардних услуга, филтрирајте по _TRANSPORT=stdout.

Филтрирај по хосту у окружењима са дељеним именима хостова: journalctl _HOSTNAME=debianА да бисте затражили карте од одређеног корисника знајући његов UID: journalctl _UID=0 (корен) или број који одговара вашем падежу.

Да ли треба да видите само поруке на нивоу „корисника“ из системског дневника објекта? journalctl SYSLOG_FACILITY=1 (и запамтите да 3 одговара демон). Ови филтери вам помажу да емулирате класичне syslog приказе приликом миграције на systemd.

Рад у UTC, ISO 8601 и микросекундној прецизности

Ако имате системе у више зона или их упоређујете са метрикама, додајте --utc да стандардизују време. За јасне и уредне формате, -o short-iso То је одличан избор; ако сте заинтересовани за монотоно сортирање такта (за дебаговање релативних низова), -o short-monotonic је твој пријатељ.

Када инцидент захтева максималну грануларност, -o short-precise додаје микросекунде временској ознаци. То је драгоцени комад када се корелира са траговима, профилима или мрежни снимци.

Добре праксе за свакодневну употребу

Омогућите истрајност ако вам је стало до историје: креирајте /var/log/journal или конфигуришите Storage=persistent и поново покрените journald. Ако радите са пуно ротације, дефинишите SystemMaxUse y SystemKeepFree тако да никада не удави преграду.

Да бисте отклонили грешке у сервисима, комбинујте: -u servicio + -f + филтери од приоритет и време. Додај -x када сумњате на криптичне поруке; понекад пружа додатне трагове који вас спасавају драгоцене минуте.

У цевоводима и извозу, користите --no-pager и формате као што су json o export у зависности од циљног алата. Не заборавите безбедност: ограничите приступ на одговарајуће групе и провери дозволе ако делите излазе који могу да садрже осетљиве податке.

Савладавање journalctl-а мења начин на који разумете систем: са филтерима по јединици, PID-у, кориснику, приоритету или времену, са богатим излазима и контролом коришћења диска, Увек ћете имати тачну причу при руци шта се дешава. То је солидан алат за интелигентно праћење, ревизију и дебаговање, без губљења у хиљадама редова.