Learn Linux, 101: System logging

2 xmlns=”http://www.w3.org/1999/xhtmlOverview

W tym samouczku nauczysz się:

  • Konfigurować demona syslog
  • Zrozumieć standardowe obiekty, priorytety i działania
  • Konfigurować rotację logów
  • Zrozumieć rsyslog i syslog-ng

Co się dzieje wewnątrz systemu

System Linux ma wiele podsystemów i uruchomionych aplikacji. Używasz logowania systemowego, aby zbierać dane o działającym systemie od momentu jego uruchomienia. czasami po prostu musisz wiedzieć, że wszystko jest w porządku. Innym razem używasz tych danych do audytu, debugowania, sprawdzania kiedy dysk lub inny zasób wyczerpuje swoją pojemność i wielu innych celów. Możesz zbierać dane dziennika na jednym systemie i przekazywać je do innego systemu w celu przetworzenia. Dane dziennika mogą być wyświetlane na terminalu, np. na terminalu użytkownika root, ale częściej są zapisywane w plikach lub przekazywane przez gniazda do serwera dziennika. Nie trzeba dodawać, że logowanie jest wysoce konfigurowalne.

Tradycyjny obiekt syslog i jego demon syslogd zapewniają to logowanie. Obecnie, syslog został uzupełniony o inne obiekty logowania, takie jak rsyslog, syslog-ng, oraz podsystem dziennika systemd. W tym tutorialu przedstawiam te udogodnienia.

Tutorial pomaga przygotować się do Celu 108.2 w Temacie 108 egzaminu 102 Linux Server Professional (LPIC-1). Cel ten ma wagę 3.

Wymagania wstępne

Aby w pełni wykorzystać tutoriale z tej serii, potrzebujesz podstawowej wiedzy o Linuksie i działającego systemu Linuksa, na którym możesz ćwiczyć polecenia omawiane w tym tutorialu. Powinieneś być zaznajomiony z poleceniami GNU i UNIX. Czasami różne wersje programu formatują dane wyjściowe w różny sposób, więc twoje wyniki mogą nie zawsze wyglądać dokładnie tak, jak pokazane tutaj.

W tym samouczku używam Slackware 42.2 dla przykładów syslogd, CentOS 7 dla przykładów rsyslogd, i Fedora 26 dla przykładów systemd-journalctl i syslog-ng.

Tradycyjny syslog i demon syslogd

Tradycyjny system logowania syslog w systemie Linux zapewnia logowanie systemowe i przechwytywanie komunikatów jądra. Możesz rejestrować dane na swoim lokalnym systemie lub wysyłać je do zdalnego systemu. Użyj pliku konfiguracyjnego /etc/syslog.conf, aby precyzyjnie kontrolować poziom logowania. Rejestrowanie jest wykonywane przez demona syslogd, który zwykle otrzymuje dane wejściowe przez gniazdo /dev/log, jak pokazano na Listingu 1.

Listing 1. /dev/log jest gniazdem
$ #Slackware 42.2 $ /bin/ls -l /dev/log srw-rw-rw- 1 root root 0 Nov 19 16:35 /dev/log

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlDla logowania lokalnego, głównym plikiem jest zwykle /var/log/messages, ale w większości instalacji używa się wielu innych plików, zwykle znajdujących się w katalogu /var/log lub jego podkatalogu. Możesz je w dużym stopniu dostosować do swoich potrzeb. Na przykład, możesz chcieć mieć osobny dziennik dla wiadomości z systemu pocztowego.

Plik konfiguracyjny syslog.conf

Plik syslog.conf jest głównym plikiem konfiguracyjnym demona syslogd. Wpisy w syslog.conf określają reguły logowania. Każda reguła ma pole selektora i pole akcji, które są oddzielone jedną lub więcej spacjami lub tabulatorami. Pole selektora określa obiekt i priorytety, których dotyczy reguła, a pole akcji określa akcję logowania dla obiektu i priorytetów.

Zdefiniowane obiekty to auth (lub security), authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, syslog, user, uucp i local0 do local7. Słowo kluczowe auth powinno być używane zamiast security, a słowo kluczowe mark jest do użytku wewnętrznego.

Priorytety (w kolejności rosnącej dotkliwości) to:

  1. debug
  2. info
  3. notice
  4. warning (lub warn)
  5. err (lub error)
  6. crit
  7. alert
  8. emerg (lub panic)

Nawiasowe słowa kluczowe (warn, error, i panic) są obecnie przestarzałe.

Domyślnym zachowaniem jest podjęcie akcji dla określonego poziomu i dla wszystkich wyższych poziomów, choć możliwe jest ograniczenie logowania do określonych poziomów. Każdy selektor składa się z obiektu i priorytetu oddzielonych kropką. Można określić wiele obiektów dla danej akcji, oddzielając je przecinkiem. Wiele par obiekt/priorytet dla danej akcji może być podanych przez oddzielenie ich średnikiem. Listing 2 pokazuje przykład prostego pliku syslog.conf.

Listing 2. Przykładowy plik syslog.conf
#Log anything 'warn' or higher. #Exclude authpriv, cron, mail, and news. These are logged elsewhere. #Don't log private authentication messages! *.warn;\ authpriv.none;cron.none;mail.none;news.none -/var/log/syslog #The authpriv file has restricted access. authpriv.* /var/log/secure #Log all the mail messages in one place. mail.* -/var/log/maillog #Log cron stuff cron.* /var/log/cron #Everybody gets emergency messages *.emerg * #Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlWskazówki:

  • Jak w przypadku wielu plików konfiguracyjnych, linie zaczynające się od # i linie puste są ignorowane.
  • An * może być użyty do odwołania się do wszystkich obiektów lub wszystkich priorytetów.
  • Specjalne słowo kluczowe priorytetu none wskazuje, że przy tej akcji nie powinno być wykonywane żadne rejestrowanie dla tego obiektu.
  • Łącznik przed nazwą pliku (jak -/var/log/maillog, w tym przykładzie) wskazuje, że plik dziennika nie powinien być synchronizowany po każdym zapisie. Możesz stracić informacje po awarii systemu, ale możesz zyskać na wydajności, robiąc to.

Akcje są ogólnie określane jako „pliki dziennika”, chociaż nie muszą to być prawdziwe pliki. Tabela 1 opisuje możliwe pliki dziennika.

Tabela 1. Akcje w syslog.conf

.

Akcja Cel
Plik regularny Podaj pełną nazwę ścieżki, zaczynającą się od ukośnika (/). Poprzedź ją myślnikiem (-), aby pominąć synchronizację pliku po każdym wpisie do dziennika. Może to spowodować utratę informacji w przypadku awarii, ale może poprawić wydajność.
Rury nazwane Użyj rury FIFO (first-in first-out) lub rury nazwanej jako miejsca docelowego dla komunikatów dziennika, umieszczając symbol rury (|) przed nazwą pliku. Musisz utworzyć FIFO za pomocą polecenia mkfifo przed uruchomieniem (lub ponownym uruchomieniem) syslogd. FIFO są czasami używane do debugowania.
Terminal lub konsola Wysyłanie komunikatów dziennika do terminala, takiego jak /dev/console.
Zdalna maszyna Przekazywanie komunikatów do innego hosta przez umieszczenie znaku at (@) przed nazwą hosta. Należy pamiętać, że wiadomości nie są przekazywane z hosta odbierającego.
List of users Użyj listy użytkowników oddzielonej przecinkami, aby otrzymywać wiadomości (jeśli użytkownik jest zalogowany). Często uwzględniany jest tu użytkownik root.
Everyone logged on Wybierz gwiazdkę (*), aby wszyscy zalogowani byli powiadamiani przy użyciu polecenia wall.

Przedrostek priorytetu z ! oznacza, że działanie nie powinno być stosowane dla tego poziomu i wyższych. Podobnie, przedrostek priorytetu z = wskazuje, że reguła odnosi się tylko do tego poziomu lub z != wskazuje, że reguła odnosi się do wszystkich poza tym poziomem. Listing 3 pokazuje kilka przykładów, a strona man dla syslog.conf ma ich znacznie więcej.

Listing 3. Dodatkowe przykłady syslog.conf
#Kernel messages are first, stored in the kernel#file, critical messages and higher ones also go#to another host and to the console#kern.* /var/adm/kernelkern.crit @log‑serverkern.crit /dev/consolekern.info;kern.!err /var/adm/kernel‑info#Store all mail messages except info priority in /var/log/mail. mail.*;mail.!=info /var/log/mail

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlKomenda syslogd uruchamia demona syslogd. Posiada szereg opcji, w tym -f do określenia innego pliku konfiguracyjnego, oraz -a dla dodatkowych gniazdek do nasłuchiwania. Demon reaguje na kilka sygnałów, w tym SIGHUP, który powoduje jego reinicjalizację. Zobacz strony man lub info, aby uzyskać więcej szczegółów na temat uruchamiania i interakcji z demonem syslogd.

Listyfikacja 4 pokazuje niektóre z wiadomości, które mogą być logowane do /var/log/messages przy użyciu syslogd parametrów konfiguracyjnych, takich jak te z Listingu 2.

Listyfikacja 4. Przykład komunikatów logowanych w /var/log/messages
root@attic4‑sl42:~#tail ‑n 20 /var/log/messages Nov 19 21:39:57 attic4‑sl42 kernel: usb 1‑1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3Nov 19 21:39:57 attic4‑sl42 kernel: usb 1‑1.1: Product: USB DISK 2.0Nov 19 21:39:57 attic4‑sl42 kernel: usb 1‑1.1: Manufacturer: Nov 19 21:39:57 attic4‑sl42 kernel: usb 1‑1.1: SerialNumber: 070B53DF11FC0170Nov 19 21:39:57 attic4‑sl42 kernel: usb‑storage 1‑1.1:1.0: USB Mass Storage device detectedNov 19 21:39:57 attic4‑sl42 kernel: scsi host12: usb‑storage 1‑1.1:1.0Nov 19 21:39:57 attic4‑sl42 mtp‑probe: checking bus 1, device 12: "/sys/devices/pci0000:00/0000:00:12.2/usb1/1‑1/1‑1.1" Nov 19 21:39:57 attic4‑sl42 mtp‑probe: bus: 1, device: 12 was not an MTP device Nov 19 21:39:58 attic4‑sl42 kernel: scsi 12:0:0:0: Direct‑Access USB DISK 2.0 PMAP PQ: 0 ANSI: 4Nov 19 21:39:59 attic4‑sl42 kernel: sd 12:0:0:0: 30299520 512‑byte logical blocks: (15.5 GB/14.4 GiB)Nov 19 21:39:59 attic4‑sl42 kernel: sd 12:0:0:0: Write Protect is offNov 19 21:40:00 attic4‑sl42 kernel: sdd: sdd1Nov 19 21:40:00 attic4‑sl42 kernel: sd 12:0:0:0: Attached SCSI removable diskNov 19 21:42:36 attic4‑sl42 kernel: usb 1‑1.1: reset high‑speed USB device number 12 using ehci‑pciNov 19 21:42:37 attic4‑sl42 kernel: usb 1‑1.1: reset high‑speed USB device number 12 using ehci‑pciNov 19 21:42:37 attic4‑sl42 kernel: usb 1‑1.1: reset high‑speed USB device number 12 using ehci‑pciNov 19 21:42:37 attic4‑sl42 kernel: usb 1‑1.1: reset high‑speed USB device number 12 using ehci‑pciNov 19 21:42:38 attic4‑sl42 kernel: usb 1‑1.1: USB disconnect, device number 12Nov 19 21:42:38 attic4‑sl42 kernel: <27> udevd: inotify_add_watch(6, /dev/sdd, 10) failed: No such file or directoryNov 19 21:56:48 attic4‑sl42 ‑‑ MARK ‑‑

Pokaż więcejPokaż więcej ikon

2 xmlns=”http://www.w3.org/1999/xhtmlDemon dziennika jądra – klogd

W Listingu 3 zobaczyłeś kilka sposobów na skonfigurowanie logowania komunikatów jądra. Ale w jaki sposób wiadomości jądra są rejestrowane zanim system plików zostanie zamontowany? Jądro przechowuje wiadomości w buforze pierścieniowym w pamięci. Demon klogd przetwarza te komunikaty bezpośrednio na konsolę lub do pliku takiego jak /var/log/dmesg, lub przez obiekt syslog.

Zauważ, że przykład na Listingu 2 rejestruje wszystkie komunikaty na poziomie ostrzeżenia lub wyższym w /var/log/syslog. W szczególności obejmuje to komunikaty jądra.

Tak jak w przypadku polecenia syslogd, polecenie klogd ma wiele opcji. Zobacz strony man lub info, aby uzyskać szczegółowe informacje. Nie ma pliku konfiguracyjnego dla klogd.

Można również wyświetlać komunikaty z bufora pierścieniowego jądra za pomocą polecenia dmesg. Polecenie to posiada również opcje do interakcji z buforem pierścieniowym, na przykład do odczytywania i czyszczenia wiadomości.

Obracanie i archiwizowanie plików dziennika

Przy takiej ilości logowania, jaka jest możliwa, trzeba być w stanie kontrolować rozmiar plików dziennika. Można to zrobić za pomocą polecenia logrotate, które zwykle jest uruchamiane jako zadanie cron. (Zobacz nasz poradnik, Automatyzacja zadań administracji systemu poprzez planowanie zadań, aby uzyskać więcej informacji na temat zadań cron).

Główna idea stojąca za poleceniem logrotate polega na tym, że pliki dziennika są okresowo archiwizowane i uruchamiany jest nowy dziennik. Przechowywanych jest kilka generacji dziennika, a kiedy dziennik dojdzie do ostatniej generacji, może zostać zarchiwizowany. Na przykład, może zostać wysłany pocztą do użytkownika archiwizującego.

Użyj pliku konfiguracyjnego /etc/logrotate.conf, aby określić, w jaki sposób powinna odbywać się rotacja i archiwizacja dziennika. Możesz określić różne częstotliwości, takie jak codzienne, cotygodniowe lub comiesięczne, dla różnych plików dziennika, a także możesz kontrolować liczbę generacji do zachowania oraz kiedy lub czy wysyłać kopie do użytkownika archiwalnego. Listing 5 przedstawia przykładowy plik /etc/logrotate.conf.

Listing 5. Przykładowy plik /etc/logrotate.conf
#/etc/logrotate.conf ##logrotate is designed to ease administration of systems that generate large #numbers of log files. It allows automatic rotation, compression, removal, and #mailing of log files. Each log file may be handled daily, weekly, monthly, or #when it grows too large. ##logrotate is normally run daily from root's crontab. ##For more details, see "man logrotate". #rotate log files weekly: weekly #keep 4 weeks worth of backlogs: rotate 4 #create new (empty) log files after rotating old ones: create #uncomment if you want to use the date as a suffix of the rotated file #dateext #uncomment this if you want your log files compressed: #compress #some packages install log rotation information in this directory: include /etc/logrotate.d #Rotate /var/log/wtmp: /var/log/wtmp { missingok monthly create 0664 root utmp minsize 1M rotate 1 } #Rotate /var/log/btmp: /var/log/btmp { missingok monthly create 0600 root root rotate 1 } #Note that /var/log/lastlog is not rotated. This is intentional, and it should #not be. The lastlog file is a database, and is also a sparse file that takes #up much less space on the drive than it appears. #system-specific logs may be also be configured below:

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlPlik logrotate.conf posiada na początku opcje globalne. Są to opcje domyślne, jeśli nic bardziej szczegółowego nie zostało określone gdzie indziej. W tym przykładzie, pliki dziennika są rotowane co tydzień, a kopie zapasowe są przechowywane przez cztery tygodnie. Kiedy plik dziennika jest rotowany, nowy plik jest automatycznie tworzony w miejsce starego. Zauważ, że plik logrotate.conf może zawierać specyfikacje z innych plików. W tym przypadku uwzględnione są wszystkie pliki w pliku /etc/logrotate.d.

Przykład ten zawiera również specyficzne reguły dla plików /var/log/wtmp i /var/log/btmp, które są rotowane co miesiąc. W przypadku braku tych plików nie jest wyświetlany żaden komunikat o błędzie. Tworzony jest nowy plik i zachowywana jest tylko jedna kopia zapasowa. Dostęp do tych plików jest również ograniczony przez ustawienie uprawnień.

Uwaga: Pliki /var/log/wtmp i /var/log/btmp zapisują odpowiednio udane i nieudane próby logowania. W przeciwieństwie do większości plików logów, nie są to czyste pliki tekstowe. Możesz je zbadać za pomocą poleceń last lub lastb. Szczegóły można znaleźć na stronach man tych poleceń.

W tym przykładzie, gdy kopia zapasowa osiągnie ostatnią generację, zostanie usunięta, ponieważ nie określono, co jeszcze można z nią zrobić.

Można tworzyć kopie zapasowe plików dziennika, gdy osiągną one określony rozmiar. Można również tworzyć skrypty poleceń, które będą uruchamiane przed lub po operacji tworzenia kopii zapasowej. Listing 6 przedstawia bardziej złożony przykład.

Listing 6. Inny przykład konfiguracji logrotate
/var/log/messages { rotate 5 mail logsave@log-server size 100k postrotate /usr/bin/killall -HUP syslogd endscript }

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlNa Listingu 6, /var/log/messages jest rotowany po osiągnięciu rozmiaru 100 KB. Utrzymywanych jest pięć plików kopii zapasowych, a gdy najstarsza kopia się zestarzeje, jest wysyłana do logsave@log-server. Skrypt postrotate wprowadza skrypt, który uruchamia ponownie demona syslogd po zakończeniu rotacji, wysyłając mu sygnał HUP. Instrukcja endscript jest wymagana do zakończenia skryptu i jest również wymagana, jeśli jest obecny skrypt prerotate. Zobacz stronę man logrotate, aby uzyskać pełniejsze informacje.

Jak w przypadku wielu takich plików konfiguracyjnych, niektóre programy dostarczają dodatkową konfigurację, zwykle w katalogu etc/logrotate.d. Listing 7 pokazuje te pliki w moim systemie Slackware.

Listing 7. Pliki konfiguracyjne dla logrotate
root@attic4‑sl42:~#ls /etc/logrot/etc/logrotate.conf/etc/logrotate.d:consolekit mcelog mysql.orig ulogd wpa_supplicanthttpd mysql syslog vsftpdroot@attic4‑sl42:~#cat /etc/logrotate.d/httpd/var/log/httpd/_log { rotate 10 notifempty missingok size=5M compress delaycompress sharedscripts postrotate /etc/rc.d/rc.httpd restart endscript}

Pokaż więcejPokaż więcej ikon

2 xmlns=”http://www.w3.org/1999/xhtmlSkanowanie plików dziennika w poszukiwaniu godnej uwagi aktywności

Wpisy w plikach dziennika są zwykle znakowane czasem i zawierają nazwę hosta procesu raportującego, wraz z nazwą procesu. Listing 8 pokazuje kilka linii z /var/log/messages, zawierających wpisy z kilku programów.

Listing 8. Przykładowe wpisy w pliku dziennika
Nov 19 15:48:31 attic4-sl42 kernel: EXT4-fs (sda6): re-mounted. Opts: (null) Nov 19 15:48:32 attic4-sl42 mtp-probe: checking bus 3, device 3: "/sys/devices/pci0000:00/0000:00:12.0/usb3/3-2/3-2.1" Nov 19 15:48:32 attic4-sl42 mtp-probe: bus: 3, device: 3 was not an MTP device Nov 19 15:48:32 attic4-sl42 mtp-probe: checking bus 3, device 4: "/sys/devices/pci0000:00/0000:00:12.0/usb3/3-2/3-2.4" Nov 19 15:48:32 attic4-sl42 mtp-probe: bus: 3, device: 4 was not an MTP device Nov 19 15:48:32 attic4-sl42 mtp-probe: checking bus 1, device 4: "/sys/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1.1" Nov 19 15:48:32 attic4-sl42 mtp-probe: bus: 1, device: 4 was not an MTP device Nov 19 15:48:36 attic4-sl42 root: /etc/rc.d/rc.inet1: /sbin/ifconfig lo 127.0.0.1 Nov 19 15:48:36 attic4-sl42 root: /etc/rc.d/rc.inet1: /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo Nov 19 15:48:36 attic4-sl42 root: /etc/rc.d/rc.inet1: /sbin/dhcpcd -t 10 eth0 Nov 19 15:48:36 attic4-sl42 dhcpcd: eth0: adding address fe80::4c2a:3f48:e0f7:cc90 Nov 19 15:48:41 attic4-sl42 sshd: Server listening on 0.0.0.0 port 22. Nov 19 15:48:41 attic4-sl42 sshd: Server listening on :: port 22. Nov 19 15:48:41 attic4-sl42 ntpd: ntpd [email protected] Fri Jun 3 23:08: 22 UTC 2016 (1): Starting Nov 19 15:48:41 attic4-sl42 ntpd: Command line: /usr/sbin/ntpd -g -p /var /run/ntpd.pid Nov 19 15:48:41 attic4-sl42 ntpd: proto: precision = 0.230 usec (-22) Nov 19 15:48:41 attic4-sl42 ntpd: Listen and drop on 0 v6wildcard :12 3 Nov 19 15:48:41 attic4-sl42 ntpd: Listen and drop on 1 v4wildcard 0.0.0.0:123 Nov 19 15:48:41 attic4-sl42 ntpd: Listen normally on 2 lo 127.0.0.1:123 Nov 19 15:48:41 attic4-sl42 ntpd: Listen normally on 3 eth0 192.168.1.24:123 Nov 19 15:48:41 attic4-sl42 ntpd: Listen normally on 4 lo :123 Nov 19 15:48:41 attic4-sl42 ntpd: failed to init interface for address fe80::8616:f9ff:fe04:7a2a%2 Nov 19 15:48:41 attic4-sl42 ntpd: Listening on routing socket on fd #21 for interface updates Nov 19 15:48:41 attic4-sl42 acpid: starting up with netlink and the input layer Nov 19 15:48:41 attic4-sl42 acpid: 1 rule loaded Nov 19 15:48:41 attic4-sl42 acpid: waiting for events: event logging is off Nov 19 15:48:42 attic4-sl42 dbus: Activating service name='org.freedesktop.PolicyKit1' (using servicehelper) Nov 19 15:48:42 attic4-sl42 ntpd: failed to init interface for address fe80::8616:f9ff:fe04:7a2a%2

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlOstatnia linia Listingu 8 pokazuje błąd demona Network Time Protocol (ntpd). W tym przypadku nie udało się zainicjować interfejsu IP V6, ponieważ ten system używa tylko połączeń IP V4.

Można skanować pliki dziennika za pomocą pagera, takiego jak less, lub wyszukiwać określone wpisy (takie jak komunikaty ntpd z hosta attic4-sl42) za pomocą grep, jak pokazano na Listingu 9.

Listing 9. Skanowanie plików dziennika
root@attic4-sl42:~#grep "attic4-sl42 ntpd" /var/log/messages | tail -9 Nov 19 21:17:12 attic4-sl42 ntpd: Command line: /usr/sbin/ntpd -g -p /var/run/ntpd.pid Nov 19 21:17:12 attic4-sl42 ntpd: proto: precision = 0.220 usec (-22) Nov 19 21:17:13 attic4-sl42 ntpd: Listen and drop on 0 v6wildcard :123 Nov 19 21:17:13 attic4-sl42 ntpd: Listen and drop on 1 v4wildcard 0.0.0.0:123 Nov 19 21:17:13 attic4-sl42 ntpd: Listen normally on 2 lo 127.0.0.1:123 Nov 19 21:17:13 attic4-sl42 ntpd: Listen normally on 3 eth0 192.168.1.24:123 Nov 19 21:17:13 attic4-sl42 ntpd: Listen normally on 4 lo :123 Nov 19 21:17:13 attic4-sl42 ntpd: Listen normally on 5 eth0 :123 Nov 19 21:17:13 attic4-sl42 ntpd: Listening on routing socket on fd #22 for interface updates

Pokaż więcejPokaż więcej ikon

2 xmlns=”http://www.w3.org/1999/xhtmlMonitorowanie plików dziennika

Okresowo może zajść potrzeba monitorowania plików dziennika pod kątem zdarzeń. Na przykład, możesz próbować złapać rzadko występujące zdarzenie w momencie, gdy się wydarzy. W takim przypadku można użyć polecenia tail z opcją -f, aby śledzić plik dziennika. Listing 10 pokazuje przykład.

Listing 10. Śledzenie aktualizacji pliku dziennika
root@attic4-sl42:~#tail -n 1 -f /var/log/messages Nov 20 09:24:58 attic4-sl42 kernel: sd 15:0:0:0: Attached SCSI removable disk Nov 20 09:26:23 attic4-sl42 kernel: usb 3-2.4: USB disconnect, device number 5 Nov 20 09:27:13 attic4-sl42 sshd: Accepted password for ian from 192.168.1.40 port 58184 ssh2 Nov 20 09:29:08 attic4-sl42 kernel: usb 3-2.4: new low-speed USB device number 6 using ohci-pci Nov 20 09:29:08 attic4-sl42 kernel: usb 3-2.4: New USB device found, idVendor=046d, idProduct=c50e Nov 20 09:29:08 attic4-sl42 kernel: usb 3-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Nov 20 09:29:08 attic4-sl42 kernel: usb 3-2.4: Product: USB Receiver Nov 20 09:29:08 attic4-sl42 kernel: usb 3-2.4: Manufacturer: Logitech Nov 20 09:29:08 attic4-sl42 kernel: input: Logitech USB Receiver as /devices/pci0000:00/0000:00:12.0/usb3/3-2/3-2.4/3-2.4:1.0/0003:046D:C50E.0004/input/input19 Nov 20 09:29:08 attic4-sl42 kernel: hid-generic 0003:046D:C50E.0004: input,hidraw1: USB HID v1.11 Mouse on usb-0000:00:12.0-2.4/input0 Nov 20 09:29:08 attic4-sl42 mtp-probe: checking bus 3, device 6: "/sys/devices/pci0000:00/0000:00:12.0/usb3/3-2/3-2.4" Nov 20 09:29:08 attic4-sl42 mtp-probe: bus: 3, device: 6 was not an MTP device

Pokaż więcejPokaż więcej ikon

2 xmlns=”http://www.w3.org/1999/xhtmlŚledzenie problemów zgłaszanych w plikach dziennika

Gdy znajdziesz problemy w plikach dziennika, zanotuj czas, nazwę hosta i proces, który wygenerował problem. Jeśli wiadomość identyfikuje problem na tyle konkretnie, że możesz go rozwiązać, to znaczy, że skończyłeś. Jeśli nie, być może trzeba będzie zaktualizować syslog.conf, aby określić, że więcej komunikatów będzie rejestrowanych dla odpowiedniego obiektu. Na przykład, może być konieczne wyświetlanie komunikatów informacyjnych zamiast komunikatów ostrzegawczych lub nawet komunikatów na poziomie debugowania. Twoja aplikacja może mieć dodatkowe obiekty, których możesz użyć.

Na koniec, jeśli potrzebujesz umieścić znaczniki w pliku dziennika, aby pomóc ci wiedzieć, jakie komunikaty zostały zarejestrowane na jakim etapie aktywności debugowania, możesz użyć polecenia logger z okna terminala lub skryptu powłoki, aby wysłać wybrany przez ciebie komunikat do demona syslogd w celu zarejestrowania zgodnie z regułami w syslog.conf.

Używanie rsyslogd

Rsyslog jest opisywanym przez siebie, szybkim jak rakieta systemem przetwarzania logów. Jest kompatybilny w górę od syslog w tym sensie, że może przetwarzać konfiguracje kompatybilne z syslog, a także obsługiwać syslog wywołanie do informacji dziennika. Zapewnia również kilka ulepszeń, które nie są kompatybilne wstecz. W szczególności, obsługuje dodatkowe protokoły logowania i może logować do baz danych, takich jak MySQL lub PostgreSQL, jak również do plików. Możesz filtrować dowolną część wiadomości syslog i w pełni skonfigurować format wyjściowy.

Tradycyjne strony man i info dostarczają podstawowych informacji o rsyslog. Jednakże, istnieje znacznie więcej dokumentacji dostarczonej w formacie HTML w katalogu doc twojego systemu. Być może będziesz musiał zainstalować pakiet rsyslog-doc, jeśli nie został on zainstalowany w twoim systemie. Korzeń drzewa HTML znajduje się w katalogu /usr/share/doc/rsyslog-8.24.0/html/index.html. Lokalizacja może być inna w twoim systemie.

rsyslog Program działa jako demon, podobnie jak syslogd. Plik konfiguracyjny domyślnie ma postać rsyslog.conf.

Listwa 11. Plik konfiguracyjny rsyslog.conf
$ cat /etc/rsyslog.conf #rsyslog configuration file#For more information see /usr/share/doc/rsyslog‑*/rsyslog_conf.html#If you experience problems, see https://www.rsyslog.com/doc/v8-stable/troubleshooting/index.html####MODULES #####The imjournal module bellow is now used as a message source instead of imuxsock.$ModLoad imuxsock #provides support for local system logging (e.g. via logger command)$ModLoad imjournal #provides access to the systemd journal#$ModLoad imklog #reads kernel messages (the same are read from journald)#$ModLoad immark #provides ‑‑MARK‑‑ message capability#Provides UDP syslog reception#$ModLoad imudp#$UDPServerRun 514#Provides TCP syslog reception#$ModLoad imtcp#$InputTCPServerRun 514####GLOBAL DIRECTIVES #####Where to place auxiliary files$WorkDirectory /var/lib/rsyslog#Use default timestamp format$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat#File syncing capability is disabled by default. This feature is usually not required,#not useful and an extreme performance hit#$ActionFileEnableSync on#Include all config files in /etc/rsyslog.d/$IncludeConfig /etc/rsyslog.d/.conf#Turn off message reception via local log socket;#local messages are retrieved through imjournal now.$OmitLocalLogging on#File to store the position in the journal$IMJournalStateFile imjournal.state####RULES #####Log all kernel messages to the console.#Logging much else clutters up the screen.#kern./dev/console#Log anything (except mail) of level info or higher.#Don't log private authentication messages!.info;mail.none;authpriv.none;cron.none /var/log/messages#The authpriv file has restricted access.authpriv./var/log/secure#Log all the mail messages in one place.mail.‑/var/log/maillog#Log cron stuffcron./var/log/cron#Everybody gets emergency messages.emerg :omusrmsg:#Save news errors of level crit and higher in a special file.uucp,news.crit /var/log/spooler#Save boot messages also to boot.loglocal7./var/log/boot.log####begin forwarding rule ####The statement between the begin ... end define a SINGLE forwarding#rule. They belong together, do NOT split them. If you create multiple#forwarding rules, duplicate the whole block!#Remote Logging (we use TCP for reliable delivery)##An on‑disk queue is created for this action. If the remote host is#down, messages are spooled to disk and sent when it is up again.#$ActionQueueFileName fwdRule1 #unique name prefix for spool files#$ActionQueueMaxDiskSpace 1g #1gb space limit (use as much as possible)#$ActionQueueSaveOnShutdown on #save messages to disk on shutdown#$ActionQueueType LinkedList #run asynchronously#$ActionResumeRetryCount ‑1 #infinite retries if host is down#remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional#.*` remote‑host:514####end of the forwarding rule ###

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlWśród plików rozpoznasz znajome wpisy syslog.conf, otoczone dodatkowymi rzeczami, które obiekt rsyslog rozumie. Zobacz strony man, info lub dokumentację HTML, aby uzyskać więcej szczegółów.

Możesz użyć logrotate z plikami utworzonymi przez rsyslogd, chociaż bazy danych SQL mogą wymagać skryptów lub innych narzędzi. Podobnie, polecenie logger nadal działa, aby umieścić własny znak w dzienniku.

Używanie usługi systemd journal

Przykłady usługi systemd journal w tej sekcji pochodzą z Fedory 26.

Program systemd-journald jest demonem usługi systemowej, który zbiera i przechowuje dane dziennika. Tworzy i utrzymuje uporządkowane, indeksowane dzienniki na podstawie informacji o logowaniu, które są odbierane ze zwykłych źródeł syslog, jak również uporządkowanych komunikatów dziennika przy użyciu natywnego API dziennika.

Zwykłe gniazdo /dev/log jest łączem do /run/systemd/journal/dev-log, jak pokazano na Listingu 12.

Listing 12. Gniazda dev/log i /run/systemd/journal/dev-log
#ls ‑l /dev/loglrwxrwxrwx. 1 root root 28 Nov 20 23:43 /dev/log ‑> /run/systemd/journal/dev‑log#ls ‑l /run/systemd/journal/dev‑logsrw‑rw‑rw‑. 1 root root 0 Nov 20 23:43 /run/systemd/journal/dev‑log

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlKod systemd-.journald demon nasłuchuje na gniazdach i innych jednostkach systemu plików, w tym /dev/kmsg, /dev/log, /run/systemd/journal/dev-log, /run/systemd/journal/socket, i /run/systemd/journal/stdout. Może również nasłuchiwać zdarzeń audytu za pomocą netlink, który przenosi informacje jądra do przestrzeni użytkownika za pomocą gniazd.

Większość danych dziennika jest tekstowa, ale dozwolone są dane binarne, teoretycznie o rozmiarze do 2^64-1 bajtów. Dziennik domyślnie przechowuje dane dziennika w /run/log/journal/. System plików /run/ jest niestabilny, więc dane dziennika są tracone po ponownym uruchomieniu systemu. Aby dane były trwałe, należy utworzyć /var/log/journal/, a systemd-journald będzie je tam przechowywał.

Tak jak w przypadku innych systemów dzienników, istnieje plik konfiguracyjny. Domyślnie jest to /etc/systemd/journald.conf. Wiele opcji jest domyślnie wkompilowanych, więc większość opcji w pliku konfiguracyjnym jest początkowo zakomentowana, jak pokazano na Listingu 13. Należy odkomentować te, które chcemy zmienić. Jak zwykle dodatkowe pliki konfiguracyjne mogą znajdować się w katalogu journald.conf.d. Pakiety powinny instalować swoje informacje o konfiguracji dziennika w katalogu /usr/lib/systemd/*.conf.d/.

Listing 13. Początkowy przykład /etc/systemd/journald.conf
# This file is part of systemd.## systemd is free software; you can redistribute it and/or modify it# under the terms of the GNU Lesser General Public License as published by# the Free Software Foundation; either version 2.1 of the License, or# (at your option) any later version.##Entries in this file show the compile time defaults.#You can change settings by editing this file.#Defaults can be restored by simply deleting this file.##See journald.conf(5) for details.#Storage=auto#Compress=yes#Seal=yes#SplitMode=uid#SyncIntervalSec=5m#RateLimitIntervalSec=30s#RateLimitBurst=1000#SystemMaxUse=#SystemKeepFree=#SystemMaxFileSize=#SystemMaxFiles=100#RuntimeMaxUse=#RuntimeKeepFree=#RuntimeMaxFileSize=#RuntimeMaxFiles=100#MaxRetentionSec=#MaxFileSec=1month#ForwardToSyslog=no#ForwardToKMsg=no#ForwardToConsole=no#ForwardToWall=yes#TTYPath=/dev/console#MaxLevelStore=debug#MaxLevelSyslog=debug#MaxLevelKMsg=notice#MaxLevelConsole=info#MaxLevelWall=emerg

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlKorzystaj ze stron man lub info dla journald.conf, aby dowiedzieć się więcej o obsługiwanych ustawieniach konfiguracyjnych.

Użyj polecenia journalctl, aby wyświetlić informacje o logach. Listing 14 pokazuje, jak wyświetlić 10 ostatnich wierszy zarejestrowanych danych, a następnie użyć opcji -f, aby śledzić lub stale wyświetlać nowe wiersze, gdy są dodawane. Użyj opcji --rotate, aby obracać pliki dziennika.

Lista 14. Używanie journalctl do wyświetlania lub śledzenia komunikatów dziennika
#journalctl ‑n 10 ‑f‑‑ Logs begin at Mon 2007‑07‑09 22:14:00 EDT. ‑‑Nov 21 10:24:47 atticf26 dbus‑daemon: Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus‑org.freedesktop.nm‑dispatcher.service' requested by ':1.9' (uid=0 pid=650 comm="/usr/sbin/NetworkManager ‑‑no‑daemon " label="system_u:system_r:NetworkManager_t:s0")Nov 21 10:24:47 atticf26 systemd: Starting Network Manager Script Dispatcher Service...Nov 21 10:24:47 atticf26 audit: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager‑dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'Nov 21 10:24:47 atticf26 dbus‑daemon: Successfully activated service 'org.freedesktop.nm_dispatcher'Nov 21 10:24:47 atticf26 systemd: Started Network Manager Script Dispatcher Service.Nov 21 10:24:47 atticf26 nm‑dispatcher: req:1 'connectivity‑change': new request (5 scripts)Nov 21 10:24:47 atticf26 nm‑dispatcher: req:1 'connectivity‑change': start running ordered scripts...Nov 21 10:24:48 atticf26 gnome‑software‑service.desktop: 15:24:48:0034 Gs failed to call gs_plugin_app_install on packagekit: do not know how to install app in state queuedNov 21 10:24:52 atticf26 dhclient: DHCPDISCOVER on enp4s0 to 255.255.255.255 port 67 interval 15 (xid=0x36565033)Nov 21 10:24:57 atticf26 audit: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager‑dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'Nov 21 10:25:07 atticf26 dhclient: DHCPDISCOVER on enp4s0 to 255.255.255.255 port 67 interval 14 (xid=0x36565033)Nov 21 10:25:21 atticf26 dhclient: DHCPDISCOVER on enp4s0 to 255.255.255.255 port 67 interval 17 (xid=0x36565033)Nov 21 10:25:22 atticf26 NetworkManager: <warn> dhcp4 (enp4s0): request timed outNov 21 10:25:22 atticf26 NetworkManager: <info> dhcp4 (enp4s0): state changed unknown ‑> timeoutNov 21 10:25:22 atticf26 NetworkManager: <info> dhcp4 (enp4s0): canceled DHCP transaction, DHCP client pid 7110Nov 21 10:25:22 atticf26 NetworkManager: <info> dhcp4 (enp4s0): state changed timeout ‑> doneNov 21 10:25:22 atticf26 NetworkManager: <info> device (enp4s0): state change: ip‑config ‑> failed (reason 'ip‑config‑unavailable', internal state 'managed')Nov 21 10:25:22 atticf26 NetworkManager: <warn> device (enp4s0): Activation: failed for connection 'enp3s0'Nov 21 10:25:22 atticf26 NetworkManager: <info> device (enp4s0): state change: failed ‑> disconnected (reason 'none', internal state 'managed')...Nov 21 10:26:37 atticf26 NetworkManager: <info> device (enp4s0): state change: ip‑config ‑> deactivating (reason 'user‑requested', internal state 'managed')Nov 21 10:26:37 atticf26 NetworkManager: <info> audit: op="device‑disconnect" interface="enp4s0" ifindex=3 pid=7167 uid=1000 result="success"Nov 21 10:26:37 atticf26 NetworkManager: <info> device (enp4s0): state change: deactivating ‑> disconnected (reason 'user‑requested', internal state 'managed')Nov 21 10:26:37 atticf26 gnome‑software‑service.desktop: 15:26:37:0783 Gs failed to call gs_plugin_app_install on packagekit: do not know how to install app in state queuedNov 21 10:26:37 atticf26 avahi‑daemon: Withdrawing address record for fe80::3fd7:76aa:e99d:da5d on enp4s0.Nov 21 10:26:37 atticf26 avahi‑daemon: Leaving mDNS multicast group on interface enp4s0.IPv6 with address fe80::3fd7:76aa:e99d:da5d.Nov 21 10:26:37 atticf26 avahi‑daemon: Interface enp4s0.IPv6 no longer relevant for mDNS.Nov 21 10:26:37 atticf26 gnome‑software‑service.desktop: 15:26:37:0787 Gs failed to call gs_plugin_app_install on packagekit: do not know how to install app in state queuedNov 21 10:26:37 atticf26 NetworkManager: <info> dhcp4 (enp4s0): canceled DHCP transaction, DHCP client pid 7179Nov 21 10:26:37 atticf26 NetworkManager: <info> dhcp4 (enp4s0): state changed unknown ‑> doneNov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=filter family=2 entries=99Nov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=nat family=2 entries=59Nov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=mangle family=2 entries=42Nov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=raw family=2 entries=30Nov 21 10:26:37 atticf26 dbus‑daemon: Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus‑org.freedesktop.nm‑dispatcher.service' requested by ':1.9' (uid=0 pid=650 comm="/usr/sbin/NetworkManager ‑‑no‑daemon " label="system_u:system_r:NetworkManager_t:s0")Nov 21 10:26:37 atticf26 systemd: Starting Network Manager Script Dispatcher Service...Nov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=filter family=10 entries=90Nov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=nat family=10 entries=54Nov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=mangle family=10 entries=41Nov 21 10:26:37 atticf26 audit: NETFILTER_CFG table=raw family=10 entries=31Nov 21 10:26:37 atticf26 dbus‑daemon: Successfully activated service 'org.freedesktop.nm_dispatcher'Nov 21 10:26:37 atticf26 audit: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager‑dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'Nov 21 10:26:37 atticf26 nm‑dispatcher: req:1 'down' : new request (5 scripts)Nov 21 10:26:37 atticf26 systemd: Started Network Manager Script Dispatcher Service.Nov 21 10:26:37 atticf26 nm‑dispatcher: req:1 'down' : start running ordered scripts...Nov 21 10:26:38 atticf26 gnome‑software‑service.desktop: 15:26:38:0787 Gs failed to call gs_plugin_app_install on packagekit: do not know how to install app in state queuedNov 21 10:26:48 atticf26 audit: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager‑dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'Nov 21 10:28:35 atticf26 cupsd: REQUEST localhost ‑ ‑ "POST / HTTP/1.1" 200 182 Renew‑Subscription successful‑ok

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlUżyj polecenia systemctl do wyświetlania informacji o, interakcji lub kontroli demona i powiązanych jednostek. Listing 15 pokazuje przykład.

Listing 15. Używanie polecenia systemctl
#systemctl list‑units "journal" ‑‑no‑pagerUNIT LOAD ACTIVE SUB DESCRIPTION abrt‑journal‑core.service loaded active running Creates ABRT problems frosystemd‑journal‑flush.service loaded active exited Flush Journal to Persistesystemd‑journald.service loaded active running Journal Service systemd‑journald‑audit.socket loaded active running Journal Audit Socket systemd‑journald‑dev‑log.socket loaded active running Journal Socket (/dev/log)systemd‑journald.socket loaded active running Journal Socket LOAD = Reflects whether the unit definition was properly loaded.ACTIVE = The high‑level unit activation state, i.e. generalization of SUB.SUB = The low‑level unit activation state, values depend on unit type.6 loaded units listed. Pass ‑‑all to see loaded but inactive units, too.To show all installed unit files use 'systemctl list‑unit‑files'.

Pokaż więcejPokaż więcej ikon

2 xmlns=”http://www.w3.org/1999/xhtmlUżywanie syslog-ng

Syslog-ng opisuje się jako „ulepszony demon dziennika, obsługujący szeroki zakres metod wejścia i wyjścia: syslog, tekst niestrukturalny, kolejkowanie, SQL & NoSQL.” Obsługuje starsze i ulepszone protokoły syslog oraz dodaje obsługę formatów komunikatów JavaScript Object Notation (JSON) i journald. Syslog-ng obsługuje rozbudowane możliwości filtrowania danych wejściowych i formatowania danych wyjściowych.

Po zainstalowaniu, podstawowe informacje znajdują się na stronach man i info. Jednak prawdopodobnie będziesz chciał skorzystać z „The syslog-ng Open Source Edition Administrator Guide”, który jest dostępny zarówno w formacie HTML, jak i PDF. (Zobacz zasoby po prawej, aby uzyskać więcej informacji).

Domyślnym plikiem konfiguracyjnym jest /etc/syslog-ng/syslog-ng.conf. Przykład jest pokazany na Listingu 16. Dodatkowe pliki konfiguracyjne mogą znajdować się w katalogu /etc/syslog-ng/conf.d.

Listing 16. Przykład syslog-ng.conf
@version:3.9@include "scl.conf"#syslog‑ng configuration file.##This should behave pretty much like the original syslog on RedHat. But#it could be configured a lot smarter.##See syslog‑ng(8) and syslog‑ng.conf(5) for more information.##Note: it also sources additional configuration files (*.conf)# located in /etc/syslog‑ng/conf.d/options { flush_lines (0); time_reopen (10); log_fifo_size (1000); chain_hostnames (off); use_dns (no); use_fqdn (no); create_dirs (no); keep_hostname (yes);};source s_sys { system(); internal(); #udp(ip(0.0.0.0) port(514));};destination d_cons { file("/dev/console"); };destination d_mesg { file("/var/log/messages"); };destination d_auth { file("/var/log/secure"); };destination d_mail { file("/var/log/maillog" flush_lines(10)); };destination d_spol { file("/var/log/spooler"); };destination d_boot { file("/var/log/boot.log"); };destination d_cron { file("/var/log/cron"); };destination d_kern { file("/var/log/kern"); };destination d_mlal { usertty(""); };filter f_kernel { facility(kern); };filter f_default { level(info..emerg) and not (facility(mail) or facility(authpriv) or facility(cron)); };filter f_auth { facility(authpriv); };filter f_mail { facility(mail); };filter f_emergency { level(emerg); };filter f_news { facility(uucp) or (facility(news) and level(crit..emerg)); };filter f_boot { facility(local7); };filter f_cron { facility(cron); };#log { source(s_sys); filter(f_kernel); destination(d_cons); };log { source(s_sys); filter(f_kernel); destination(d_kern); };log { source(s_sys); filter(f_default); destination(d_mesg); };log { source(s_sys); filter(f_auth); destination(d_auth); };log { source(s_sys); filter(f_mail); destination(d_mail); };log { source(s_sys); filter(f_emergency); destination(d_mlal); };log { source(s_sys); filter(f_news); destination(d_spol); };log { source(s_sys); filter(f_boot); destination(d_boot); };log { source(s_sys); filter(f_cron); destination(d_cron); };#Source additional configuration files (.conf extension only)@include "/etc/syslog‑ng/conf.d/.conf"#vim:ft=syslog‑ng:ai:si:ts=4:sw=4:et:

Pokaż więcejPokaż więcej ikon

xmlns=”http://www.w3.org/1999/xhtmlZazwyczaj nie ma potrzeby uruchamiania zarówno dziennika systemd, jak i dziennika syslog-ng. Jeśli chcesz używać obu, będziesz musiał dokonać pewnych zmian w konfiguracji obu, a następnie uruchomić je ponownie. Poszukaj w sieci aktualnych instrukcji, jak to zrobić.

To kończy wprowadzenie do obsługi dziennika w Linuksie.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *