From a5c497a2134e416a3d46984ac3e7ad5f7133bd9a Mon Sep 17 00:00:00 2001 From: artemdolgiy Date: Fri, 3 Sep 2021 10:55:51 +0300 Subject: [PATCH] add 13 lesson lab --- labs.md | 10 ++++ labs_solution.md | 127 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+) diff --git a/labs.md b/labs.md index 97c7c38..f2cebec 100644 --- a/labs.md +++ b/labs.md @@ -126,3 +126,13 @@ 3. Используя `at` запланировать задание отключения компьютера сегодня в удобное время. *** + +**Глава 13. Настройка хранения логов.** + +1. Убедитесь, что логи systemd сохраняются постоянно (persistently). + +2. Создать запись в rsyslog, при которой сохраняются все сообщения категории error и выше (severity - error) в `/var/log/error` + +3. Убедитесь, что `/var/log/error` архивируется ежемесячно, при этом 12 последних сообщений должны сохраниться перед архивацией. + +*** diff --git a/labs_solution.md b/labs_solution.md index 2ae09bc..477acec 100644 --- a/labs_solution.md +++ b/labs_solution.md @@ -394,3 +394,130 @@ at> ``` *** + +**Глава 13. Настройка хранения логов.** + +1. Убедитесь, что логи systemd сохраняются постоянно (persistently). +*убедимся, что служба запущена* +```bash +[da2001@co1 ~]$ systemctl status systemd-journald.service +● systemd-journald.service - Journal Service + Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static; vendor preset: disabled) + Active: active (running) since Sun 2021-08-22 20:12:19 MSK; 1 weeks 4 days ago + Docs: man:systemd-journald.service(8) + man:journald.conf(5) + Main PID: 586 (systemd-journal) + Status: "Processing requests..." + Tasks: 1 (limit: 11258) + Memory: 2.5M + CGroup: /system.slice/systemd-journald.service + └─586 /usr/lib/systemd/systemd-journald + +Aug 22 20:12:19 co1.rh systemd-journald[586]: Journal started +Aug 22 20:12:19 co1.rh systemd-journald[586]: Runtime journal (/run/log/journal/75cfadef25be494698e02d31e421d7bf) is 8.0M, max 90.8M, 82.8M free. +``` +*проверим настройки* +```bash +[da2001@co1 ~]$ cat /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. + +[Journal] +#Storage=auto +#Compress=yes +#Seal=yes + + *** +``` +*в данном случае нас интересует только строка Storage, строки ниже не показаны. Значение `auto` говорит о том, что логи будут сохранятся в папку `/var/log/journal`, при условии, что папка существует. Убирать символ `#` в начале не нужно, т.к. значение auto используется по-умолчанию.* +```bash +[da2001@co1 ~]$ sudo mkdir /var/log/journal +[da2001@co1 ~]$ sudo systemctl restart systemd-journald.service +[da2001@co1 ~]$ sudo systemctl status systemd-journald +● systemd-journald.service - Journal Service + Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static; vendor preset: disabled) + Active: active (running) since Fri 2021-09-03 09:20:40 MSK; 21s ago + Docs: man:systemd-journald.service(8) + man:journald.conf(5) + Main PID: 156983 (systemd-journal) + Status: "Processing requests..." + Tasks: 1 (limit: 11258) + Memory: 1.2M + CGroup: /system.slice/systemd-journald.service + └─156983 /usr/lib/systemd/systemd-journald + +Sep 03 09:20:40 co1.rh systemd-journald[156983]: Journal started +Sep 03 09:20:40 co1.rh systemd-journald[156983]: System journal (/var/log/journal/75cfadef25be494698e02d31e421d7bf) is 16.0M, max 999.0M, 982.9M free. +``` +*теперь видно, что логи сохраняются в `/var/log/journal/75cfadef25be494698e02d31e421d7bf`* + +2. Создать запись в rsyslog, при которой сохраняются все сообщения категории error и выше (severity - error) в `/var/log/error` +```bash +sudo vi /etc/rsyslog.d/error.conf +``` +```bash +*.error /var/log/error +``` +```bash +sudo systemctl restart rsyslog.service +``` +3. Убедитесь, что `/var/log/error` архивируется ежемесячно, при этом 12 последних сообщений должны сохраниться перед архивацией. +*посмотрим настройки по-умолчанию для примера* +```bash +[da2001@co1 ~]$ cat /etc/logrotate.conf +# see "man logrotate" for details +# rotate log files weekly +weekly + +# keep 4 weeks worth of backlogs +rotate 4 + +# create new (empty) log files after rotating old ones +create + +# use date as a suffix of the rotated file +dateext + +# uncomment this if you want your log files compressed +#compress + +# RPM packages drop log rotation information into this directory +include /etc/logrotate.d + +# system-specific logs may be also be configured here. +``` +*настройку для отдельного сервиса или категории необходимо создать в новом файле в папке `/etc/logrotate.d`* +*посмотрим пример какого-нибудь файла из этой папки* +```bash +[da2001@co1 ~]$ cat /etc/logrotate.d/samba +/var/log/samba/log.* { + compress + dateext + maxage 365 + rotate 99 + notifempty + olddir /var/log/samba/old + missingok + copytruncate +} +``` +*на основе настроек в `/etc/logrotate.conf` и `/etc/logrotate.d/samba` создадим новый конфиг для архивации логов error* +```bash +/var/log/error { + montly + rotate 12 + create +} +``` + +***