RSyslog — системный демон для журналирования в Linux. Он собирает события от различных источников (файлы логов, системные службы, journald) и отправляет их дальше по стандартному протоколу Syslog (UDP/TCP, а также с поддержкой TLS).
В статье рассматриваются практические примеры конфигурации RSyslog для сбора и пересылки логов из разных источников.
На сервере источнике логов проверьте наличие сервиса RSyslog ****в системе командой:
systemctl status rsyslog.service
Если сервис отсутствует - выполните установку пакета:
### Debian, Ubuntu (apt-get)
apt-get install rsyslog
### RHEL (yum)
yum install rsyslog
Для поддержи TLS-шифрования при отправке логов установите библиотеку gtls для RSyslog:
### Debian, Ubuntu (apt-get)
apt install rsyslog-gnutls
### RHEL (yum)
yum install rsyslog-gnutls
Запустите сервис:
systemctl enable rsyslog.service
systemctl start rsyslog.service
Создайте файл конфигурации для загрузки необходимых модулей:
vi /etc/rsyslog.d/00-modules.conf
<aside> <img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" />
В зависимости от того, какие модули будут использоваться в файлах конфигурации - раскомментируйте необходимые секции:
</aside>
module(load="imfile")
### For tls
# module(load="gtls")
# global(DefaultNetstreamDriver="gtls")
### For journald
# module(load="imjournal" StateFile="imjournal.state")
<aside> <img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" />
Установите конфигурационные файлы для необходимых источников в разделе ниже.
</aside>
<aside> <img src="/icons/report_yellow.svg" alt="/icons/report_yellow.svg" width="40px" />
В файлах необходимо изменить значения параметров target и port на данные принимающего Sysylog server
</aside>
Перезапустите сервис и убедитесь, что он запустился корректно и без ошибок:
systemctl restart rsyslog.service
systemctl status rsyslog.service