Zarządzaj komunikatami dziennika w systemie za pomocą Journalctl [Comprehensive Guide]
- 5023
- 1110
- Tacjana Karpiński
Systemd jest najnowocześniejszym menedżerem systemu i serwisu dla systemów Linux: zamiennik demona init, który ma równolegle uruchomić procesy w systemie. Obecnie jest obsługiwany w wielu obecnych dystrybucjach głównego nurtu, w tym Fedora, Debian, Ubuntu, OpenSuse, Arch, Rhel, Centos itp.
Wcześniej wyjaśniliśmy historię „init” i „systemd”; gdzie rozmawialiśmy o tym, jakie są dwa demony, dlaczegow tym„Technicznie wymagane do zastąpienia”Systemd'a także główne cechy systemu.
Jedną z głównych zalet SystemD w porównaniu z innymi wspólnymi systemami initins jest wsparcie dla scentralizowanego zarządzania systemem i procesów rejestrowania za pomocą czasopisma. W tym artykule dowiemy się, jak zarządzać i przeglądać komunikaty dziennika w systemie SystemD za pomocą Journalctl polecenie w Linux.
Ważny: Przed przejściem w tym przewodniku możesz nauczyć się zarządzać usługami i jednostkami „SystemD” za pomocą polecenia „SystemCtl”, a także tworzyć i uruchomić nowe jednostki serwisowe w Systemd za pomocą skontleniach w Linux. Jeśli jednak nie przeszkadza ci wszystkie powyższe, kontynuuj czytanie.
Konfigurowanie Journalda do zbierania komunikatów dziennika w systemie SystemD
Journald to demon, który gromadzi i pisze wpisy do dziennika z całego systemu; Są to zasadniczo uruchamiane wiadomości, wiadomości z jądra i Syslog lub różnych aplikacji i przechowuje wszystkie wiadomości w centralnej lokalizacji - plik Journal.
Możesz kontrolować zachowanie Journald za pomocą domyślnego pliku konfiguracyjnego: /itp./Systemd/Journald.conf który jest generowany w czasie kompilacji. Ten plik zawiera opcje, których wartości możesz zmienić, aby zapewnić wymagania dotyczące lokalnego środowiska.
Poniżej znajduje się próbka tego, jak wygląda plik, przeglądany za pomocą polecenia CAT.
$ cat/etc/systemd/jountald.confPlik konfiguracyjny Journalda
# Zobacz Journald.Conf (5) Aby uzyskać szczegółowe informacje. [Journal] #Storage = Auto #Compress = Tak #Seal = Tak #splitMode = uid #synCinterValsec = 5M #ratelimitInterval = 30S #RateliMitburst = 1000 #SystemMaxuse = #SystemKeepFree = #SystemMaxFileSize = #SystemMaxFiles = 100 #RuntimEMaxuse = #RuntimeePFree = #RuntimeMaxfileSize = #runtimEMaxFiles = 100 #maxEntentionSec = #maxfileSec = 1Month #do przodu MaxlevelConsole = Info #Maxlevelwall = Emerg
Należy pamiętać, że różne pakiety instaluje i używają wyodrębniania konfiguracji /usr/lib/systemd/*.conf.D/ i konfiguracje czasu wykonywania można znaleźć w /run/systemd/jountald.conf.D/*.conf którego niekoniecznie możesz użyć.
Włącz przechowywanie danych dziennika na dysku
Wiele dystrybucji Linux, w tym Ubuntu i jego pochodne, takie jak Linux Mint, domyślnie nie umożliwiają trwałego przechowywania komunikatów rozruchowych na dysku.
Możliwe jest to, aby to włączyć, ustawiając „Składowanie„Opcja„ ”uporczywy" jak pokazano niżej. To stworzy /var/log/dziennik katalog i wszystkie pliki czasopisma będą przechowywane pod nim.
$ sudo vi/etc/systemd/jountald.conf lub $ sudo nano/etc/Systemd/Journald.conf
[Journal] Storage = trwałe
W przypadku dodatkowych ustawień znajdź znaczenie wszystkich opcji, które mają być skonfigurowane w ramach "[Dziennik]" sekcja przez pisanie.
$ Man Journald.conf
Ustawienie prawidłowego czasu systemu za pomocą polecenia timedatectl
W przypadku wiarygodnego zarządzania dziennikiem w systemie za pomocą usługi Journald upewnij się, że ustawienia czasu, w tym strefa czasowa, są prawidłowe w systemie.
Aby wyświetlić bieżące ustawienia daty i godziny w systemie, wpisz.
$ timedatectl lub $ timedatectl Status czas lokalny: czw 2017-06-15 13:29:09 Eat Universal Time: czw 2017-06-15 10:29:09 UTC RTC Czas: czw 2017-06-15 10:29:09 Strefa czasowa: Afryka/Kampala (Eat, +0300) Czas sieciowy: Tak NTP Synchronizowany: Tak RTC w lokalnym TZ: Nie
Aby ustawić prawidłową strefę czasową i ewentualnie czas systemu, użyj poniższych poleceń.
$ sudo timedatectl set-timeZone Africa/Kampala $ sudo timedatectl Time „13:50:00”
Przeglądanie komunikatów dziennika za pomocą polecenia Journalctl
Journalctl jest narzędziem używanym do przeglądania zawartości czasopisma SystemD (napisanego przez Journald Service).
Aby pokazać wszystkie zebrane dzienniki bez filtrowania, wpisz.
$ JournalctlWyświetl komunikaty dziennika
-- Dzienniki zaczynają się na śr. 2017-06-14 21:56:43 Eat, End At CH 2017-06-15 12:28:19 Jedz 14 czerwca 21:56:43 Tecmint Systemd-Journald [336]: Runtime Journal (/Runt /log/Journal 14 czerwca 21:56:43 Kernel TecMint: Inicjowanie subskrypcji cgroup cpuset 14 czerwca 21:56:43 Tecminint jądro: inicjalizacja cgroup subsys CPU 14 21:56:43 TecMint jądro: inicjaliza 56:43 Kernel Tecmint: Linux wersja 4.4.0-21-Generic ([chroniony e-mail]) 14 czerwca 21:56:43 Kernel Tecmint: Linia poleceń: boot_image =/boot/vmlinuz-4.4.0-21- 14 czerwca 21:56:43 Kernel TecMint: Kernel obsługiwany CPU: 14 czerwca 21:56:43 Tecmint Kernel: Intel Trineintel 14 21:56:43 Kernel TecMint: AMD Authenticamd 14 czerwca 21:56:43 TecMint Kernel: Centaur Centaurhauls 14 21:56:43 Kernel Tecmint: x86/FPU: XState_offset [2]: 576, XState_Sizes [2] czerwca 21:56:43 Tecmint JURLEL: X86/FPU: Potwierdzanie XSave Feature 0x01: 'x87 Flo 14 czerwca 21:56:43 Kernel Tecmint: x86/FPU: Obsługa XSAVE Funkcja 0x02: „SSE Reg 14 21:56:43 Tecmint Kernel: x86/FPU: Obsługa XSAVE Funkcja 0x04:„ AVX Reg 14 21:56 : 43 jądro Tecmint: x86/fpu: Włączone funkcje xstate 0x7, kontekst SI 14 czerwca 21:56:43 Tecmint jądro: x86/fpu: Używanie przełączników kontekstowych FPU „chętnych” FPU. 14 czerwca 21:56:43 Kernel TECMINT: E820: Dostarczona przez bios fizyczna mapa pamięci RAM: 14 czerwca 21:56:43 Tecmint Jądro: BIOS-E820: [MEM 0X0000000000000000-0X00000000000 JUNN 14 21:56:43 TecMint Kernel: Bios-- E820: [Mem 0x0000000000090000-0x000000000 czerwca 14 21:56:43 jądro TecMint: BIOS-E820: [MEM 0X0000000000100000-0X00000000001FF JUN 14 21:56:43 TecMint jądra: BIOS-E820: [MEM 0X0000000020000000-0x00000000001 : 43 jądro Tecmint: BIOS-E820: [MEM 0x0000000020200000-0x00000000400
Wyświetl komunikaty dziennika na podstawie butów
Możesz wyświetlić listę numerów rozruchowych (w stosunku do bieżącego rozruchu), ich identyfikatorów i znaczników czasu pierwszego i ostatniego wiadomości odpowiadające --List-Boots
opcja.
$ Journalctl--liter-boots -1 9FB590B48E1242F58C2579DEFDBDDC9 THU 2017-06-15 16:43:36 15 1
Aby wyświetlić wpisy dziennika z bieżącego rozruchu (numer 0), użyj -B
przełącz w ten sposób (to samo co wyjście próbki powyżej).
$ Journalctl -B
i aby zobaczyć dziennik z poprzedniego rozruchu, użyj -1
Względny wskaźnik z -B
opcja jak poniżej.
$ Journalctl -B -1
Alternatywnie, użyj takiego identyfikatora rozruchu.
$ Journalctl -B 9FB590B48E1242F58C2579DEFDBBDDC9
Filtrowanie komunikatów dziennika na podstawie czasu
Aby użyć czasu w skoordynowanym formacie uniwersalnym (UTC), dodaj --UTC
opcje w następujący sposób.
$ Journalctl --utc
Aby zobaczyć wszystkie wpisy od określonej daty i godziny, e.G. 15 czerwca 2017 o 8:15, wpisz to polecenie.
$ Journalctl--Since "2017-06-15 08:15:00" $ Journalctl--Since Today $ Journalctl-Since wczoraj
Przeglądanie najnowszych wiadomości dziennika
Aby wyświetlić najnowsze komunikaty dziennika (domyślnie), użyj -N
flaga, jak pokazano poniżej.
$ Journalctl -n $ Journalctl -n 20
Przeglądanie komunikatów dziennika generowanych przez jądro
Aby zobaczyć tylko komunikaty jądra, podobne do wyjścia polecenia DMESG, możesz użyć -k
flaga.
$ Journalctl -k $ Journalctl -k $ Journalctl -k -b 9FB590B48E1242F58C2579DEFDBDDC9
Przeglądanie komunikatów dziennika generowanych przez jednostki
Aby wyświetlić wszystkie wpisy do dziennika dla określonego urządzenia, użyj -u
przełącz następująco.
$ Journalctl -u Apache2.praca
Zero do bieżącego rozruchu, wpisz to polecenie.
$ Journalctl -b -u Apache2.praca
Aby pokazać dzienniki z poprzedniego rozruchu, użyj tego.
$ Journalctl -b -1 -u Apache2.praca
Poniżej znajdują się inne przydatne polecenia:
$ Journalctl -u Apache2.serwis $ Journalctl -u Apache2.SERVICE -KOME DZISIAJ $ Journalctl -u Apache2.Service -u Nagios.Służba -wczoraj
Przeglądanie komunikatów dziennika generowanych przez procesy
Aby wyświetlić dzienniki generowane przez określony proces, określ jego PID w ten sposób.
$ JournalCtl _PID = 19487 $ Journalctl _PID = 19487 - -Since Today $ JournalCtl _PID = 19487 -Since Wczoraj
Przeglądanie komunikatów dziennika generowanych przez identyfikator użytkownika lub grupy
Aby wyświetlić dzienniki generowane przez określonego użytkownika lub grupę, określ jego identyfikator użytkownika lub grupy.
$ JournalCtl _uid = 1000 $ Journalctl _uid = 1000 - -Since dzisiaj $ Journalctl _uid = 1000 -b -1 -Since dzisiaj
Przeglądanie dzienników generowanych przez plik
Aby pokazać wszystkie dzienniki generowane przez plik (być może wykonywalny), takie jak wykonywacze wykonywacze D-Bus lub BASH, po prostu wpisz.
$ Journalctl/usr/bin/dbus-daemon $ journactl/usr/bin/bash
Przeglądanie komunikatów dziennika według priorytetu
Możesz także filtrować wyjście na podstawie priorytetów wiadomości lub zakresów priorytetów za pomocą -P
flaga. Możliwe wartości to: 0 - Emect, 1 - Alert, 2 - Crit, 3 - Err, 4 - Ostrzeżenie, 5 - zawiadomienie, 6 - Info, 7 - Debug):
$ Journalctl -p err
Aby określić zakres, użyj poniższego formatu (ECHICT do ostrzeżenia).
$ Journalctl -p 1… 4 lub $ Journalctl -p Emerg… ostrzeżenie
Wyświetl wiadomości dziennika w czasie rzeczywistym
Możesz praktycznie oglądać dzienniki, ponieważ są one pisane z -F
opcja (podobna do ogon -f funkcjonalność).
$ Journalctl -f
Obsługa formatowania wyświetlania dziennika
Jeśli chcesz kontrolować formatowanie wyjściowe wpisów do dziennika, dodaj -o
Flag i użyj tych opcji: CAT, Eksport, JSON, JSON-PETTY, JSON-SSE, KRÓTKI, KRÓTKI, KRÓTKICH, KRÓTKICH MONOTONICZNYCH, KRÓTKOWYCH I ROZDZIAŁ (Sprawdź znaczenie opcji na stronie Man:
kot Opcja pokazuje rzeczywisty komunikat każdego wpisu do czasopisma bez metadanych (znacznik czasu i tak dalej).
$ Journalctl -b -u Apache2.Service -o Cat
Zarządzanie czasopismami w systemie
Aby sprawdzić plik dziennika pod kątem spójności wewnętrznej, użyj --zweryfikować
opcja. Jeśli wszystko jest w porządku, wyjście powinno wskazać przepustkę.
$ Journalctl --Verify Pass:/run/log/journal/2A5D5F96EF9147C0B35535562B32D0FF/SYSTEM.Journal 491f68: Nieużywane dane (entent_offset == 0) pass:/run/log/journal/2A5D5F96EF9147C0B35535562B32D0FF/[chroniony e -mail] 9866C3D4D.Journal Pass:/run/log/journal/2A5D5F96EF9147C0B35535562B32D0FF/[chroniony e -mail] 5d8945a9e.Journal Pass:/run/log/journal/2A5D5F96EF9147C0B35535562B32D0FF/[chroniony e -mail] 1BECAB02F.Journal Pass:/run/log/journal/2A5D5F96EF9147C0B35535562B32D0FF/[e -mail chroniony] 01cfcedff.dziennik
Usuwanie starych plików czasopism
Możesz także wyświetlić bieżące użycie dysku wszystkich plików czasopisma za pomocą --użycie dysku
opcje. Pokazuje sumę użycia dysku wszystkich zarchiwizowanych i aktywnych plików czasopisma:
$ JournalCtl-Disk-użytkowanie
Aby usunąć stare (zarchiwizowane) pliki czasopisma Uruchom poniższe polecenia:
$ sudo Journalctl --vacuum-size = 50m #delete Pliki do czasu, w którym używają przestrzeń dysku, spadnie poniżej określonego rozmiaru $ sudo journactl-Vacuum Time = 1years #Delete Pliki, aby wszystkie pliki czasopisma nie zawierały danych starszych niż określone czasowe TimePan $ sudo Journalctl-Vacuum-Files = 4 #delete Pliki, aby nie więcej niż określona liczba osobnych plików czasopisma pozostała w miejscu przechowywania
Obrotowe pliki czasopisma
Wreszcie możesz poinstruować Journalda, aby obracał pliki czasopisma za pomocą --obracać się
opcja. Zauważ, że ta dyrektywa nie powraca do momentu zakończenia operacji obrotu:
$ sudo journactl -rotate
Aby uzyskać szczegółowy przewodnik i opcje, wyświetl stronę JournalCtl Man w następujący sposób.
$ MAN Journalctl
Sprawdź kilka przydatnych artykułów.
- Zarządzanie procesem i usługami uruchamiania systemu (Sysvinit, SystemD i Upstart)
- Petiti - narzędzie analizy dziennika typu open source dla systemu Linux Sysadmins
- Jak konfigurować i zarządzać rotacją dziennika za pomocą logrotan w Linux
- LNAV - Obserwuj i analizuj dzienniki Apache z terminalu Linux
To wszystko na razie. Użyj informacji zwrotnej od dołu, aby zadać wszelkie pytania lub dodać przemyślenia na ten temat.
- « Jak zainstalować Samba na Ubuntu do udostępniania plików w systemie Windows
- Jak rozszerzyć/zmniejszyć LVM (zarządzanie woluminami logicznymi) w Linux - część II »