Как настроить сервер Rsyslog в Ubuntu 18.04 LTS
На этой странице
- Предпосылки
- Установить Rsyslog
- Настройка сервера Rsyslog
- Настройка клиента Rsyslog
- Просмотр журнала клиента
- Заключение
Журналы очень полезны для анализа и устранения любых проблем, связанных с системой и приложениями в Linux. По умолчанию все файлы журналов находятся в каталоге /var/log в операционных системах на базе Linux. Существует несколько типов файлов журнала, включая cron, ядро, пользователей, безопасность, и большинство из этих файлов управляются службой Rsyslog.
Rsyslog — мощная и безопасная система для обработки журналов. Сервер Rsyslog получает журналы по сети с нескольких физических или виртуальных серверов и отслеживает работоспособность различных служб. С сервером Rsyslog вы можете централизованно отслеживать журналы других серверов, сетевых устройств и удаленных приложений.
В этом руководстве мы объясним, как настроить сервер Rsyslog на сервере Ubuntu 18.04.
Предпосылки
- Два сервера под управлением Ubuntu 18.04.
- Статический IP-адрес 192.168.0.101 настроен на сервере Rsyslog, а 192.168.0.102 настроен на клиентском компьютере Rsyslog.
- На обоих серверах настроен пароль root.
Установить Rsyslog
По умолчанию Rsyslog установлен на сервере Ubuntu 18.04. Если он не установлен, вы можете установить его, выполнив следующую команду:
apt-get install rsyslog -y
После установки Rsyslog вы можете проверить версию Rsyslog с помощью следующей команды:
rsyslogd -v
Вы должны получить следующий результат:
rsyslogd 8.32.0, compiled with: PLATFORM: x86_64-pc-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes systemd support: Yes Number of Bits in RainerScript integers: 64 See http://www.rsyslog.com for more information.
Вы также можете проверить статус Rsyslog с помощью следующей команды:
systemctl status rsyslog
Вы должны увидеть следующий вывод:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Main PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.
Настройка сервера Rsyslog
Теперь Rsyslog установлен и работает. Далее вам нужно будет настроить его для работы в режиме сервера. Вы можете сделать это, отредактировав файл /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Во-первых, вам нужно будет определить протокол либо UDP, либо TCP, либо оба.
Чтобы одновременно использовать соединения UDP и TCP, найдите и раскомментируйте следующие строки:
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
Затем определите конкретную подсеть, IP-адрес или домен, чтобы ограничить доступ, как показано ниже:
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com $AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com
Затем вам нужно будет создать шаблон, чтобы указать серверу Rsyslog, как хранить входящие сообщения системного журнала. Добавьте следующие строки непосредственно перед разделом GLOBAL DIRECTIVES:
$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Сохраните и закройте файл, когда закончите. Затем проверьте конфигурацию Rsyslog на наличие синтаксической ошибки с помощью следующей команды:
rsyslogd -f /etc/rsyslog.conf -N1
Вы должны увидеть следующий вывод:
rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Наконец, перезапустите службу Rsyslog с помощью следующей команды:
systemctl restart rsyslog
Теперь убедитесь, что Rsyslog прослушивает TCP/UDP с помощью следующей команды:
netstat -4altunp | grep 514
Вы должны получить следующий результат:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1332/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 1332/rsyslogd
Настройка клиента Rsyslog
Сервер Rsyslog установлен и настроен для получения журналов с удаленных хостов.
Теперь вам нужно настроить клиент Rsyslog для отправки сообщений системного журнала на удаленный сервер Rsyslog.
Войдите на клиентский компьютер и откройте файл конфигурации Rsyslog, как показано ниже:
nano /etc/rsyslog.conf
Добавьте в конец файла следующие строки:
##Enable sending of logs over UDP add the following line: *.* @192.168.0.101:514 ##Enable sending of logs over TCP add the following line: *.* @@192.168.0.101:514 ##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Сохраните и закройте файл. Затем перезапустите сервер Rsyslog, чтобы применить изменения конфигурации:
systemtcl restart rsyslog
Просмотр журнала клиента
На этом этапе клиент Rsyslog настроен на отправку своего журнала на сервер Rsyslog.
Теперь войдите на сервер Rsyslog и проверьте каталог /var/log. Вы должны увидеть запись с именем хоста ваших клиентских машин, включая несколько лог-файлов:
ls /var/log/rsyslog-client/
Вывод:
CRON.log kernel.log rsyslogd-2039.log rsyslogd.log sudo.log wpa_supplicant.log
Заключение
В приведенной выше статье мы узнали, как установить и настроить сервер Rsyslog на сервере Ubuntu 18.04. Мы также узнали, как настроить клиент Rsyslog для отправки журналов на сервер Rsyslog. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.