{"id":635,"date":"2017-04-06T14:44:15","date_gmt":"2017-04-06T12:44:15","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=635"},"modified":"2017-07-25T10:13:18","modified_gmt":"2017-07-25T08:13:18","slug":"syslog","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/06\/syslog\/","title":{"rendered":"Syslog"},"content":{"rendered":"<p>Demonem odpowiedzialnym za logi jest <em>rsyslogd<\/em>. Czyta on konfiguracj\u0119 z pliku <em>\/etc\/rsyslog.conf<\/em> i plik\u00f3w w katalogu <em>\/etc\/rsyslog.d<\/em>. Demon domy\u015blnie pracuje na porcie 514 i mo\u017ce by\u0107 skonfigurowany do pracy zar\u00f3wno na protokole UDP jak i TCP. Domy\u015blnie wg konfiguracji <em>\/etc\/rsyslog.conf<\/em> logi sk\u0142adowane s\u0105 w katalogu <em>\/var\/log<\/em>. Inne us\u0142ugi takie jak audit, libvirt, Samba, Apache i GNOME r\u00f3wnie\u017c sk\u0142aduj\u0105 swoje logi w katalogu \/var\/log.<!--more--><\/p>\n<p>Uruchamianie i zatrzymywanie demona <em>rsyslogd<\/em>:<br \/>\n<code> # systemctl stop rsyslog<\/code><br \/>\n<code># systemctl start rsyslog<\/code><\/p>\n<p>W czasie uruchamiania <em>rsyslogd<\/em> w katalogu <em>\/var\/ru<\/em>n tworzony jest plik PID <em>syslogd.pid<\/em>, co zapobiega uruchamianiu wielu instancji demona w jednym czasie.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Plik konfiguracyjny<em> \/etc\/rsyslogd.conf<\/em>.<\/span><\/p>\n<p><span style=\"color: #808080;\"><code>#### MODULES ####<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>$ModLoad imjournal # provides access to the systemd journal<\/code><\/span><\/p>\n<p><span style=\"color: #808080;\"><code>#### GLOBAL DIRECTIVES ####<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>$WorkDirectory \/var\/lib\/rsyslog<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>$IncludeConfig \/etc\/rsyslog.d\/*.conf<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>$OmitLocalLogging on<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>$IMJournalStateFile imjournal.state<\/code><\/span><\/p>\n<p><span style=\"color: #808080;\"><code>#### RULES ####<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>*.info;mail.none;authpriv.none;cron.none\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/messages<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>authpriv.*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/secure<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>mail.*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -\/var\/log\/maillog<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>cron.*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/cron<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>*.emerg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 :omusrmsg:*<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>uucp,news.crit\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/spooler<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>local7.*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/boot.log<\/code><\/span><\/p>\n<p>Plik podzielony jest na trzy sekcje: <em>Modules<\/em>, <em>Global Directives<\/em> i <em>Rules<\/em>. W sekcji Modules wczytywane s\u0105 modu\u0142y <em>imuxsock<\/em> i <em>imjournal<\/em>. Modu\u0142 imuxsock zapewnia wsparcie dla lokalnego logowania przez komend\u0119 <em>logger. <\/em>Modu\u0142<em> imjournal <\/em>pozwala na dost\u0119p do <em>systemd journal. <\/em><\/p>\n<p>Sekcja Global<em> Directives <\/em>zawiera pi\u0119\u0107 aktywnych dyrektyw. Pierwsza wskazuje po\u0142o\u017cenie plik\u00f3w pomocniczych, druga powoduje zapisywanie przechwytywanych komunikat\u00f3w w spos\u00f3b tradycyjny. Trzecia dyrektywa instruuje demona aby odczytywa\u0142 dodatkowe pliki konfiguracyjne z katalogu <em>\/etc\/rsyslogd.d\/<\/em>. Czwarta nakazuje aby demon otrzymywa\u0142 lokalne komunikaty przez <em>imjournal<\/em> a nie przez stare gniazdo do logowania.\u00a0 Ostatnia dyrektywa definiuje plik do przechowywania pozycji w journalu.<em><br \/>\n<\/em><\/p>\n<p>W sekcji Rules ka\u017cda linia zawiera dwie kolumny. Lewa kolumna to <em>selektor<\/em>, prawa to <em>akcja<\/em>. Selektor podzielony jest na dwie cz\u0119\u015bci oddzielone kropk\u0105: <em>obiekt<\/em> (facility &#8211; po lewej) i <em>priorytet<\/em> (<em>priority<\/em> &#8211; po prawej). Wspierane obiekty to: <em>auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp, local0 <\/em>do<em> local7<\/em>, znak * oznacza wszystkie obiekty. Wspierane priorytety to <em>emerg, alert, crit, error, warning, notice, info, debug <\/em>oraz<em> none<\/em> (kolejno\u015b\u0107 od najbardziej krytycznego do najmniej krytycznego). Znak * oznacza wszystkie priorytety. Mo\u017cna tak\u017ce u\u017cywa\u0107 znaku <em>=<\/em> aby logowa\u0107 komunikaty o okre\u015blonym priorytecie lub znaku<em> !<\/em> aby ignorowa\u0107 komunikaty o okre\u015blonym priorytecie.<\/p>\n<p>Pierwsza linia w sekcji Rules powoduje zapisywanie wszystkich komunikat\u00f3w do pliku <em>\/var\/log\/messages <\/em>i ignorowanie wszelkich komunikat\u00f3w generowanych przez <em>mail, authentication <\/em>i<em> cron<\/em>. Druga, trzecia i czwarta linia powoduje logowanie komunikat\u00f3w generowanych przez <em>authentication, mail, cron<\/em> do plik\u00f3w <i>secure<\/i>, <i>maillog i <\/i><i>cron<\/i> w katalogu<em> \/var\/log<\/em>. Pi\u0105ta linia powoduje wy\u015bwietlanie komunikat\u00f3w awaryjnych na terminalach wszystkich zalogowanych u\u017cytkownik\u00f3w. Sz\u00f3sta linia powoduje logowanie krytycznych komunikat\u00f3w <em>uucp<\/em> i <em>news<\/em> do pliku <em>\/var\/log\/spooler<\/em>. Ostatnia linia jest do logowania komunikat\u00f3w przy \u0142adowaniu systemu do pliku <em>\/var\/log\/boot.log<\/em>.<i><br \/>\n<\/i><\/p>\n<p>Po dokonaniu jakichkolwiek zmian w pliku <em>rsyslog.conf najlepiej uruchomi\u0107 polecenie rsyslogd <\/em>z opcj\u0105 <em>-N<\/em> i okre\u015bli\u0107 poziom gadatliwo\u015bci (verbosity) aby sprawdzi\u0107 czy plik zawiera b\u0142\u0119dy:<\/p>\n<p><code> # rsyslogd \u2013N 1<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Rotowanie log\u00f3w.<\/span><\/p>\n<p>Logi systemowe s\u0105 rotowane ka\u017cdego dnia przez skrypt <em>\/etc\/cron.daily\/logrotate\u00a0<\/em> wywo\u0142uj\u0105cy komend\u0119 <em>logrotate<\/em>. Plikiem konfiguracyjnym mechanizmu rotacji log\u00f3w jest plik <em>\/etc\/logrotate.conf.<\/em><\/p>\n<p><code><span style=\"color: #808080;\"> # rotate log files weekly<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">weekly<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\"># keep 4 weeks worth of backlogs<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">rotate 4<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\"># create new (empty) log files after rotating old ones<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">create<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\"># use date as a suffix of the rotated file<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">dateext<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\"># uncomment this if you want your log files compressed<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">#compress<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\"># RPM packages drop log rotation information into this directory<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">include \/etc\/logrotate.d<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\"># no packages own wtmp and btmp -- we'll rotate them here<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">\/var\/log\/wtmp {<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">monthly<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">create 0664 root utmp<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">minsize 1M<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">rotate 1<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">}\/v<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">ar\/log\/btmp {<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">missingok<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">monthly<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">create 0600 root utmp<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">rotate 1<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">}#<\/span><\/code><br \/>\n<code><span style=\"color: #808080;\">system-specific logs may be also be configured here.<\/span><\/code><\/p>\n<p>Cz\u0119stotliwo\u015b\u0107 rotowania log\u00f3w ustawiona jest na jeden raz w tygodniu (weekly). Rotowane logi utrzymywane s\u0105 przez cztery tygodnie przed wykasowaniem ich. Jest mo\u017cliwo\u015b\u0107 kompresji log\u00f3w przy pomocy gzip. Komenda <em>logrotate<\/em> czyta tak\u017ce dodatkowe pliki konfiguracyjne umieszczone w katalogu <em>\/etc\/logrotate.d<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Log systemowy.<\/span><\/p>\n<p>Wszelkie aktywno\u015bci systemu domy\u015blnie logowane s\u0105 do pliku <em>\/var\/log\/messages<\/em>.<\/p>\n<p>Obserwowanie zmiany log\u00f3w w czasie rzeczywistym:<br \/>\n<code># tail -f \/var\/log\/messages<\/code><\/p>\n<p>Dobrym zwyczajem jest u\u017cywanie komendy <em>tail<\/em> do obserwowania log\u00f3w w czasie uruchamiania lub restartowania us\u0142ug systemowych czy te\u017c w czasie ich testowania celem rozwi\u0105zania napotkanych problem\u00f3w.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Demonem odpowiedzialnym za logi jest rsyslogd. Czyta on konfiguracj\u0119 z pliku \/etc\/rsyslog.conf i plik\u00f3w w katalogu \/etc\/rsyslog.d. Demon domy\u015blnie pracuje na porcie 514 i mo\u017ce by\u0107 skonfigurowany do pracy zar\u00f3wno na protokole UDP jak i TCP. Domy\u015blnie wg konfiguracji \/etc\/rsyslog.conf logi sk\u0142adowane s\u0105 w katalogu \/var\/log. Inne us\u0142ugi takie jak audit, libvirt, Samba, Apache i &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/06\/syslog\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Syslog&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1522,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/635"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=635"}],"version-history":[{"count":36,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/635\/revisions"}],"predecessor-version":[{"id":1215,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/635\/revisions\/1215"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1522"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=635"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}