Как настроить сервер Rsyslog в Debian 11
Это руководство существует для этих версий ОС
- Debian 11 (Bullseye)
- Debian 9 (Stretch)
На этой странице
- Предпосылки
- Установить Rsyslog
- Настройка Rsyslog
- Настройка брандмауэра для Rsyslog
- Настройка клиента Rsyslog
- Проверить файл журнала клиентов
- Заключение
Rsyslog — это бесплатное программное обеспечение для ведения журналов с открытым исходным кодом, которое пересылает все файлы журналов на централизованный сервер журналов через IP-сеть. Это помогает системным администраторам следить за всеми серверами из центральной точки. Rsyslog работает в клиент-серверной модели, он получает логи от удаленного клиента на порт 514 по протоколу TCP/UDP.
В этом посте мы покажем вам, как настроить сервер Rsyslog в Debian 11.
Предпосылки
- Два сервера с Debian 11.
- На сервере настроен пароль root.
Установить Rsyslog
Во-первых, вам нужно будет установить серверный пакет Rsyslog на серверную машину. Вы можете установить его с помощью следующей команды:
apt-get install rsyslog -y
После установки проверьте статус Rsyslog с помощью следующей команды:
systemctl status rsyslog
Вы должны увидеть следующий вывод:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-10-03 13:35:32 UTC; 1h 44min ago TriggeredBy: ? syslog.socket Docs: man:rsyslogd(8) man:rsyslog.conf(5) https://www.rsyslog.com/doc/ Main PID: 283 (rsyslogd) Tasks: 4 (limit: 2341) Memory: 5.0M CPU: 90ms CGroup: /system.slice/rsyslog.service ??283 /usr/sbin/rsyslogd -n -iNONE Oct 03 13:35:32 debian11 systemd[1]: Starting System Logging Service... Oct 03 13:35:32 debian11 rsyslogd[283]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2102.0] Oct 03 13:35:32 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] start Oct 03 13:35:32 debian11 systemd[1]: Started System Logging Service. Oct 03 13:35:34 debian11 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 283 (rsyslogd) on client request. Oct 03 13:45:33 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] rsyslog>
Настроить Rsyslog
Далее вам нужно будет настроить Rsyslog для работы в режиме сервера. Вы можете сделать это, отредактировав основной файл конфигурации Rsyslog:
nano /etc/rsyslog.conf
Раскомментируйте следующие строки:
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
Затем добавьте следующие строки, чтобы определить шаблон для хранения входящего журнала от клиентских систем:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Сохраните и закройте файл, затем перезапустите службу Rsyslog, чтобы применить изменения:
systemctl restart rsyslog
В этот момент запускается Rsyslog и прослушивает порт 514. Вы можете проверить это с помощью следующей команды:
ss -tunlp | grep 514
Вы должны увидеть следующий вывод:
udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=6)) udp UNCONN 0 0 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=7)) tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=8)) tcp LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=9))
Настроить брандмауэр для Rsyslog
Затем вам нужно будет разрешить порт 514 через брандмауэр UFW. Вы можете разрешить это с помощью следующей команды:
ufw allow 514/tcp
ufw allow 514/udp
Затем перезагрузите брандмауэр, чтобы применить изменения:
ufw reload
Настройка клиента Rsyslog
Далее вам нужно будет настроить клиент Rsyslog для отправки файлов журнала на сервер Rsyslog. Вы можете сделать это, отредактировав основной файл конфигурации Rsyslog.
nano /etc/rsyslog.conf
Добавьте в конец файла следующие строки:
#Enable sending system logs over UDP to rsyslog server *.* @rsyslog-server-ip:514 #Enable sending system logs over TCP to rsyslog server *.* @@rsyslog-server-ip:514
Кроме того, добавьте следующие строки, чтобы установить очередь диска, когда сервер rsyslog будет недоступен:
$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Сохраните и закройте файл, затем перезапустите службу Rsyslog, чтобы применить изменения:
systemctl restart rsyslog
Проверить файл журнала клиентов
Все файлы журналов клиентов хранятся в каталоге /var/log на сервере.
Вы можете проверить это с помощью следующей команды:
ls -l /var/log/
Вы должны увидеть файл журнала клиентов, соответствующий имени хоста клиентской системы:
alternatives.log auth.log.2.gz daemon.log debian11 dpkg.log kern.log.1 messages.1 private syslog.3.gz clientpc auth.log.3.gz daemon.log.1 debug dpkg.log.1 kern.log.2.gz messages.2.gz runit syslog.4.gz apt btmp daemon.log.3.gz debug.2.gz icinga2 kern.log.4.gz messages.4.gz syslog auth.log.1 csm.log dbconfig-common debug.4.gz kern.log messages ntpstats syslog.2.gz
Как видите, clientpc — это каталог журналов клиентской системы.
Заключение
В приведенном выше руководстве мы объяснили, как настроить сервер и клиент Rsyslog в Debian 11. Теперь вы можете контролировать своих клиентов из центрального местоположения. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.