Я уже писал про систему инициализации systemd, но забыл упомянуть про journald - демон (служба), который собирает записи журнала из всей системы: это загрузочные сообщения, сообщения из ядра и syslog и различных приложений. Он хранит все сообщения в центральном месте - файле журнала. О нем много написано здесь и и здесь, поэтому здесь я изложу кратко только его особенности конфигурации.
Journald особенности:
-бинарный формат логов (защита от подделки, возможность конвертации в другие форматы)
-не требует специальной настройки
-структурированные данные (multi-field, multi-line)
-индексированные данные
-центральное хранилище логов
Какие логи принимает journald?
-простые syslog логи
-логи ядра (kmsg)
-структурированные данные через Journal API
-логи и статусы systemd юнитов
-записи системы аудита (auditd)
Условия работы journald:
-сервис - systemd-journald
-основной конфиг - /etc/systemd/journald.conf
-хранилище логов - /var/log/journal/*
-чтение из хранилища доступно только для группы systemd-journald
Параметры конфигурации:
-Storage (volatile, persistent, auto, none), по умолчанию auto (пишет логи в tmpfs), чтобы писать
логи на диск - нужно поставить persistent
-Compress (yes, no) - сжимает данные перед записью
-Seal (yes, no) - накладывает криптографическую печать
-SplitMode (uid, none) - позволяет разделять логи по UID пользователей
-RateLimitInterval, RateLimitBurst - регулировка скорость обработки
-MaxFileSec - период ротации
-MaxRetentionSec - как долго хранить логи
-SyncIntervalSec - интервал синхронизации журнала с файлами логов
-ForwardToSyslog, ForwardToKMsg, ForwardToConsole, ForwardToWall - опции перенаправления сообщений
-MaxLevelStore, MaxLevelSyslog, MaxLevelKMsg, MaxLevelConsole, MaxLevelWall - задаем уровни важности сообщений для разных логов
-SystemMaxUse - максимальный объем, который логи могут занимать на диске
-SystemKeepFree - объем свободного места на диске, после сохранения логов
-SystemMaxFileSize - объем файла лога, по достижении которого он должен быть удален с
диска
-RuntimeMaxUse - максимальный объем, который логи могут занимать в файловой системе /run
-RuntimeKeepFree - объем свободного места на /run, после сохранения логов
-RuntimeMaxFileSize - объем файла лога, по достижении которого он должен быть удален из
файловой системы /run
Централизованное хранение:
-systemd-journal-remote - демон для приема и сбора логов с удаленных хостов (работает в активном или пассивном режиме)
-systemd-journal-gatewayd - http-сервер для приема логов на центральный хост по протоколу http
-systemd-journal-upload - демон для загрузки логов с локальной машины в удаленное хранилище
Установка сервисов journald:
1) создаем каталог для хранения логов на центральном сервере:
yum -y install systemd-journal-gateway
mkdir -p /var/log/journal/remote
chown systemd-journal-remote:systemd-journal-remote /var/log/journal/remote
2) редактируем конфиг юнита systemd:
[Unit]
Description=Journal Remote Sink Service
Requires=systemd-journal-remote.socket
[Service]
ExecStart=/usr/lib/systemd/systemd-journal-remote --listen-http=-3 --output=/var/log/journal/remote
User=systemd-journal-remote
Group=systemd-journal-remote
PrivateTmp=yes
PrivateDevices=yes
PrivateNetwork=yes
WatchdogSec=10min
3) запускаем демон systemd-journal-remote:
На удаленном сервере редактируем конфиг
/etc/systemd/journal-upload.conf:
systemctl daemon-reload
systemctl restart systemd-journal-remote
[Upload]
URL=http://192.168.1.10:19532
# ServerKeyFile=/etc/ssl/private/journal-upload.pem
# ServerCertificateFile=/etc/ssl/certs/journal-upload.pem
# TrustedCertificateFile=/etc/ssl/ca/trusted.pem
4) на удаленном сервере запускаем демон
systemd-journal-upload:
5) на центральном сервере смотрим логи с удаленного сервера:
systemctl start systemd-journal-upload
journalctl -D /var/log/journal/remote --follow
Пример запуска systemd-journal-remote для отправки логов на удаленный сервер:
[root@logs ~]# systemd-journal-remote ??url https://myhost.forza.com:19531/
Пример запуска systemd-journal-remote для экспорта локальных логов в другой каталог:
[root@logs ~]# journalctl -o export | systemd-journal-remote -o /
No comments:
Post a Comment
А что вы думаете по этому поводу?