Сервер логирования Journald — различия между версиями
PastorDi (обсуждение | вклад) (Новая страница: «== Сервер логирования Journald == Централизованный сервер логов может помочь с анализом собы…») |
|||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 19: | Строка 19: | ||
== Настройка сервера логирования Journald == | == Настройка сервера логирования Journald == | ||
− | Разделим настройку на 2 части. В первой части настраивать | + | Разделим настройку на 2 части. В первой части настраивать будем сам сервер с именем хоста: rosaserver |
Во второй части настроим 2 наших клиента (сервера/десктопа) c именами хостов/ip: rosaserver1/192.168.1.111 и rosaserver2/192.168.1.232 | Во второй части настроим 2 наших клиента (сервера/десктопа) c именами хостов/ip: rosaserver1/192.168.1.111 и rosaserver2/192.168.1.232 | ||
Строка 25: | Строка 25: | ||
=== Настройка systemd-jourunal-remote на сервере === | === Настройка systemd-jourunal-remote на сервере === | ||
− | === Настройка systemd- journal-upload на клиентах === | + | Пропишем в {{File|/etc/hosts}} наши клиенты: |
+ | 192.168.1.111 rosaserver1 | ||
+ | 192.168.1.232 rosaserver2 | ||
+ | |||
+ | Все журналы с клиентов будут хранится в {{File|/var/log/journal/remote}}, создадим эту директорию: | ||
+ | mkdir -p /var/log/journal/remote | ||
+ | Дадим права на этут папку: | ||
+ | chown systemd-journal-remote:systemd-journal-remote /var/log/journal/remote | ||
+ | Создадим директорию для сертификата | ||
+ | mkdir /etc/pki/tls/ca | ||
+ | ln -s /etc/pki/tls/ca /etc/ssl/ca | ||
+ | Остальные директории и ссылки {{File|/etc/ssl/certs}} и {{File|/etc/ssl/private}} уже созданы. | ||
+ | |||
+ | Генерируем ключ сервера: | ||
+ | openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out /etc/ssl/ca/caserver.pem -keyout /etc/ssl/ca/caserver.key -subj '/CN=Certificate authority/' | ||
+ | Генерируем сертификаты для сервера. {{Источник|CN - SERVER}} должно совпадать с именем хоста сервера, в нашем случае '''/CN=rosaserver''' | ||
+ | openssl req -newkey rsa:2048 -nodes -out /etc/ssl/certs/rosaserver.csr -keyout /etc/ssl/certs/rosaserver.key -subj "/CN=rosaserver/" | ||
+ | openssl x509 -req -in /etc/ssl/certs/rosaserver.csr -CA /etc/ssl/ca/caserver.pem -CAkey /etc/ssl/ca/caserver.key -out /etc/ssl/private/rosaserver.pem | ||
+ | Генерируем сертификаты для клиента 1. {{Источник|CN - CLIENT}} должно совпадать с именем хоста клиента, в нашем случае '''/CN=rosaserver1''' | ||
+ | openssl req -newkey rsa:2048 -nodes -out /etc/ssl/certs/rosaserver1.csr -keyout /etc/ssl/certs/rosaserver1.key -subj "/CN=rosaserver1/" | ||
+ | openssl x509 -req -in /etc/ssl/certs/rosaserver1.csr -CA /etc/ssl/ca/caserver.pem -CAkey /etc/ssl/ca/caserver.key -out /etc/ssl/private/rosaserver1.pem | ||
+ | Генерируем сертификаты для клиента 2. {{Источник|CN - CLIENT}} должно совпадать с именем хоста клиента, в нашем случае '''/CN=rosaserver2''' | ||
+ | openssl req -newkey rsa:2048 -nodes -out /etc/ssl/certs/rosaserver2.csr -keyout /etc/ssl/certs/rosaserver2.key -subj "/CN=rosaserver2/" | ||
+ | openssl x509 -req -in /etc/ssl/certs/rosaserver2.csr -CA /etc/ssl/ca/caserver.pem -CAkey /etc/ssl/ca/caserver.key -out /etc/ssl/private/rosaserver2.pem | ||
+ | Сгенерированные ключи и сертификаты для сервера уже лежат на месте. Остается скопировать ключи и сертификаты для клиентов. | ||
+ | |||
+ | На сервере даем нужные права: | ||
+ | chmod 644 /etc/ssl/certs/rosaserver.key | ||
+ | chmod 644 /etc/ssl/private/rosaserver.pem | ||
+ | |||
+ | Правим файл конфигурации {{File|/etc/systemd/journal-remote.conf}} | ||
+ | |||
+ | Приводим файл конфигурации к такому виду: | ||
+ | <pre> | ||
+ | [Remote] | ||
+ | Seal=false | ||
+ | SplitMode=host | ||
+ | ServerKeyFile=/etc/ssl/certs/rosaserver.key | ||
+ | ServerCertificateFile=/etc/ssl/private/rosaserver.pem | ||
+ | TrustedCertificateFile=/etc/ssl/ca/caserver.pem | ||
+ | </pre> | ||
+ | Записываем его и выходим. | ||
+ | |||
+ | === Настройка systemd-journal-upload на клиентах === | ||
+ | |||
+ | Пропишем в {{File|/etc/hosts}} наш сервер на '''обеих''' клиентах: | ||
+ | 192.168.1.15 rosaserver | ||
+ | |||
+ | Создадим директорию для сертификата | ||
+ | mkdir /etc/pki/tls/ca | ||
+ | ln -s /etc/pki/tls/ca /etc/ssl/ca | ||
+ | Остальные директории и ссылки {{File|/etc/ssl/certs}} и {{File|/etc/ssl/private}} уже созданы. | ||
+ | |||
+ | Заходим еще раз на сервер. Копируем ключи и сертификаты для первого клиента по ssh. | ||
+ | scp /etc/ssl/ca/caserver.pem root@192.168.1.111:/etc/ssl/ca/ | ||
+ | scp /etc/ssl/private/rosaserver1.pem root@192.168.1.111:/etc/ssl/private/ | ||
+ | scp /etc/ssl/certs/rosaserver1.key root@192.168.1.111:/etc/ssl/certs/ | ||
+ | Заходим еще раз на сервер. Копируем ключи и сертификаты для второго клиента по ssh. | ||
+ | scp /etc/ssl/ca/caserver.pem root@192.168.1.232:/etc/ssl/ca/ | ||
+ | scp /etc/ssl/private/rosaserver2.pem root@192.168.1.232:/etc/ssl/private/ | ||
+ | scp /etc/ssl/certs/rosaserver2.key root@192.168.1.232:/etc/ssl/certs/ | ||
+ | На первом клиенте даем нужные права: | ||
+ | chmod 644 /etc/ssl/certs/rosaserver1.key | ||
+ | chmod 644 /etc/ssl/private/rosaserver1.pem | ||
+ | На втором клиенте даем нужные права: | ||
+ | chmod 644 /etc/ssl/certs/rosaserver2.key | ||
+ | chmod 644 /etc/ssl/private/rosaserver2.pem | ||
+ | Приводим файл конфигурации первого клиента к такому виду: | ||
+ | <pre> | ||
+ | [Upload] | ||
+ | URL=https://rosaserver:19532 | ||
+ | ServerKeyFile=/etc/ssl/certs/rosaserver1.key | ||
+ | ServerCertificateFile=/etc/ssl/private/rosaserver1.pem | ||
+ | TrustedCertificateFile=/etc/ssl/ca/caserver.pem | ||
+ | </pre> | ||
+ | |||
+ | Приводим файл конфигурации второго клиента к такому виду: | ||
+ | <pre> | ||
+ | [Upload] | ||
+ | URL=https://rosaserver:19532 | ||
+ | ServerKeyFile=/etc/ssl/certs/rosaserver2.key | ||
+ | ServerCertificateFile=/etc/ssl/private/rosaserver2.pem | ||
+ | TrustedCertificateFile=/etc/ssl/ca/caserver.pem | ||
+ | </pre> | ||
+ | |||
+ | === Запуск логирования Journald === | ||
+ | |||
+ | На сервере запускаем: | ||
+ | systemctl start systemd-journal-gatewayd.service | ||
+ | systemctl start systemd-journal-remote.service | ||
+ | На '''обеих''' клиентах: | ||
+ | systemctl start systemd-journal-gatewayd.service | ||
+ | systemctl start systemd-journal-upload.service | ||
+ | |||
+ | == Проверка работы сервера логов Journald == | ||
+ | |||
+ | Для чтения собственных логов самого сервера: | ||
+ | journalctl | ||
+ | Для чтения логов с удаленных клиентов: | ||
+ | journalctl -D /var/log/journal/remote | ||
+ | Для проверик лога с удаленного сервера сделаем следующее. Зайдем на клента 2, т.е. на rosaserver2 и дадим команду: | ||
+ | logger -p syslog.debug "### TEST-2 MESSAGE from client rosaserver2 ###" | ||
+ | |||
+ | [[Файл:Journald-2.png]] | ||
+ | |||
+ | Зайдем на наш сервер и посмотрим, как данная запись с удаленного клиента rosaserver2 отразилась в журнале на нашем сервере: | ||
+ | |||
+ | [[Файл:Journald-3.png]] | ||
+ | |||
+ | Логи с удаленных серверов будет хранится в {{File|/var/log/journal/remote}} по имени хоста: | ||
+ | |||
+ | [[Файл:Journald-1.png]] | ||
+ | |||
+ | [[Категория:ROSA Server]] |
Текущая версия на 10:26, 2 февраля 2024
Содержание
Сервер логирования Journald
Централизованный сервер логов может помочь с анализом событий на компьютерах в вашей инфраструктуре. Настроить их сбор с журналов можно разными способами, проверенный способ через rsyslog и новый сопособ с помощью journald. Journald входит в состав systemd.
Мы разберем использование journald. В качестве сервера и клиентов могут выступать различные системы на базе Linux.
В systemd предусмотрены специальные компоненты для решения этой задачи: systemd-journal-remote, systemd-journal-upload и systemd-journal-gatewayd.
Установка сервера логирования Journald
Для примера будем использовать 3 разных хоста:
- rosaserver - это сервер логирования journald
- rosaserver1 - это первый клиент (сервер/десктоп)
- rosaserver2 - это второй клиент (сервер/десктоп)
Для работы потребуется пакет systemd-journal-gateway. Устанавливаем его на все 3 наших хоста.
dnf install systemd-journal-gateway
Настройка сервера логирования Journald
Разделим настройку на 2 части. В первой части настраивать будем сам сервер с именем хоста: rosaserver
Во второй части настроим 2 наших клиента (сервера/десктопа) c именами хостов/ip: rosaserver1/192.168.1.111 и rosaserver2/192.168.1.232
Настройка systemd-jourunal-remote на сервере
Пропишем в /etc/hosts наши клиенты:
192.168.1.111 rosaserver1 192.168.1.232 rosaserver2
Все журналы с клиентов будут хранится в /var/log/journal/remote, создадим эту директорию:
mkdir -p /var/log/journal/remote
Дадим права на этут папку:
chown systemd-journal-remote:systemd-journal-remote /var/log/journal/remote
Создадим директорию для сертификата
mkdir /etc/pki/tls/ca ln -s /etc/pki/tls/ca /etc/ssl/ca
Остальные директории и ссылки /etc/ssl/certs и /etc/ssl/private уже созданы.
Генерируем ключ сервера:
openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out /etc/ssl/ca/caserver.pem -keyout /etc/ssl/ca/caserver.key -subj '/CN=Certificate authority/'
Генерируем сертификаты для сервера. CN - SERVER должно совпадать с именем хоста сервера, в нашем случае /CN=rosaserver
openssl req -newkey rsa:2048 -nodes -out /etc/ssl/certs/rosaserver.csr -keyout /etc/ssl/certs/rosaserver.key -subj "/CN=rosaserver/" openssl x509 -req -in /etc/ssl/certs/rosaserver.csr -CA /etc/ssl/ca/caserver.pem -CAkey /etc/ssl/ca/caserver.key -out /etc/ssl/private/rosaserver.pem
Генерируем сертификаты для клиента 1. CN - CLIENT должно совпадать с именем хоста клиента, в нашем случае /CN=rosaserver1
openssl req -newkey rsa:2048 -nodes -out /etc/ssl/certs/rosaserver1.csr -keyout /etc/ssl/certs/rosaserver1.key -subj "/CN=rosaserver1/" openssl x509 -req -in /etc/ssl/certs/rosaserver1.csr -CA /etc/ssl/ca/caserver.pem -CAkey /etc/ssl/ca/caserver.key -out /etc/ssl/private/rosaserver1.pem
Генерируем сертификаты для клиента 2. CN - CLIENT должно совпадать с именем хоста клиента, в нашем случае /CN=rosaserver2
openssl req -newkey rsa:2048 -nodes -out /etc/ssl/certs/rosaserver2.csr -keyout /etc/ssl/certs/rosaserver2.key -subj "/CN=rosaserver2/" openssl x509 -req -in /etc/ssl/certs/rosaserver2.csr -CA /etc/ssl/ca/caserver.pem -CAkey /etc/ssl/ca/caserver.key -out /etc/ssl/private/rosaserver2.pem
Сгенерированные ключи и сертификаты для сервера уже лежат на месте. Остается скопировать ключи и сертификаты для клиентов.
На сервере даем нужные права:
chmod 644 /etc/ssl/certs/rosaserver.key chmod 644 /etc/ssl/private/rosaserver.pem
Правим файл конфигурации /etc/systemd/journal-remote.conf
Приводим файл конфигурации к такому виду:
[Remote] Seal=false SplitMode=host ServerKeyFile=/etc/ssl/certs/rosaserver.key ServerCertificateFile=/etc/ssl/private/rosaserver.pem TrustedCertificateFile=/etc/ssl/ca/caserver.pem
Записываем его и выходим.
Настройка systemd-journal-upload на клиентах
Пропишем в /etc/hosts наш сервер на обеих клиентах:
192.168.1.15 rosaserver
Создадим директорию для сертификата
mkdir /etc/pki/tls/ca ln -s /etc/pki/tls/ca /etc/ssl/ca
Остальные директории и ссылки /etc/ssl/certs и /etc/ssl/private уже созданы.
Заходим еще раз на сервер. Копируем ключи и сертификаты для первого клиента по ssh.
scp /etc/ssl/ca/caserver.pem root@192.168.1.111:/etc/ssl/ca/ scp /etc/ssl/private/rosaserver1.pem root@192.168.1.111:/etc/ssl/private/ scp /etc/ssl/certs/rosaserver1.key root@192.168.1.111:/etc/ssl/certs/
Заходим еще раз на сервер. Копируем ключи и сертификаты для второго клиента по ssh.
scp /etc/ssl/ca/caserver.pem root@192.168.1.232:/etc/ssl/ca/ scp /etc/ssl/private/rosaserver2.pem root@192.168.1.232:/etc/ssl/private/ scp /etc/ssl/certs/rosaserver2.key root@192.168.1.232:/etc/ssl/certs/
На первом клиенте даем нужные права:
chmod 644 /etc/ssl/certs/rosaserver1.key chmod 644 /etc/ssl/private/rosaserver1.pem
На втором клиенте даем нужные права:
chmod 644 /etc/ssl/certs/rosaserver2.key chmod 644 /etc/ssl/private/rosaserver2.pem
Приводим файл конфигурации первого клиента к такому виду:
[Upload] URL=https://rosaserver:19532 ServerKeyFile=/etc/ssl/certs/rosaserver1.key ServerCertificateFile=/etc/ssl/private/rosaserver1.pem TrustedCertificateFile=/etc/ssl/ca/caserver.pem
Приводим файл конфигурации второго клиента к такому виду:
[Upload] URL=https://rosaserver:19532 ServerKeyFile=/etc/ssl/certs/rosaserver2.key ServerCertificateFile=/etc/ssl/private/rosaserver2.pem TrustedCertificateFile=/etc/ssl/ca/caserver.pem
Запуск логирования Journald
На сервере запускаем:
systemctl start systemd-journal-gatewayd.service systemctl start systemd-journal-remote.service
На обеих клиентах:
systemctl start systemd-journal-gatewayd.service systemctl start systemd-journal-upload.service
Проверка работы сервера логов Journald
Для чтения собственных логов самого сервера:
journalctl
Для чтения логов с удаленных клиентов:
journalctl -D /var/log/journal/remote
Для проверик лога с удаленного сервера сделаем следующее. Зайдем на клента 2, т.е. на rosaserver2 и дадим команду:
logger -p syslog.debug "### TEST-2 MESSAGE from client rosaserver2 ###"
Зайдем на наш сервер и посмотрим, как данная запись с удаленного клиента rosaserver2 отразилась в журнале на нашем сервере:
Логи с удаленных серверов будет хранится в /var/log/journal/remote по имени хоста: