rsyslog позволяет пересылать логи с серверов на удалённый лог-агрегатор, обеспечивая удобный аудит и хранение.1️⃣ Настройка сервера (приём логов). На сервере, который будет принимать логи, включаем поддержку удалённых сообщений:
Редактируем конфиг
/etc/rsyslog.conf. Добавляем:
# Разрешаем приём логов по TCP и UDP
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
UDP - быстрее, но ненадёжно.
TCP - более надёжно, но может вызывать задержки.
Перезапускаем rsyslog:
systemctl restart rsyslog
И не забываем открыть порт в firewalld или iptables:
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --reload
2️⃣ Настройка клиента (отправка логов). На сервере-отправителе редактируем /etc/rsyslog.conf и добавляем в конец:
*.* @192.168.1.100:514 # Отправка по UDP
# *.* @@192.168.1.100:514 # Для TCP — две @
Где 192.168.1.100 - IP сервера сбора логов.
Перезапускаем rsyslog:
systemctl restart rsyslog
Проверяем отправку тестового сообщения:
logger "Тестовая запись в удалённые логи"
3️⃣ Фильтрация и хранение логов. Можно настроить rsyslog на приём и сортировку логов по папкам:
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& stop
Теперь логи будут храниться по серверам и сервисам в
/var/log/remote/.4️⃣ Шифрование логов (TLS). Открытые логи могут содержать чувствительные данные. Для безопасной передачи можно включить TLS.
Добавляем в
/etc/rsyslog.conf на сервере:
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/ca.pem
$DefaultNetstreamDriverCertFile /etc/rsyslog.d/server-cert.pem
$DefaultNetstreamDriverKeyFile /etc/rsyslog.d/server-key.pem
$ModLoad imtcp
$InputTCPServerStreamDriverMode 1
$InputTCPServerStreamDriverAuthMode anon
$InputTCPServerRun 6514
И на клиенте:
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/ca.pem
$DefaultNetstreamDriverCertFile /etc/rsyslog.d/client-cert.pem
$DefaultNetstreamDriverKeyFile /etc/rsyslog.d/client-key.pem
*.* @@(overtls)192.168.1.100:6514
➕ rsyslog позволяет собирать логи с разных серверов в одном месте.
➕ Можно использовать фильтрацию и сортировку логов по сервисам.
➕ Для безопасности передача логов может быть зашифрована через TLS.
BashTex 📱 #linux #utils