Как настроить удаленное ведение журнала в Linux с помощью rsyslog

Наличие отдельного удаленного сервера Linux для хранения журналов имеет свои преимущества. Вот как можно настроить удаленный сервер агрегации логов с помощью rsyslog.

Ведение журналов - важный аспект управления сервером Linux. Сообщения журнала полезны для анализа первопричин и предотвращения потенциальных ошибок в будущем. Анализ и отладка ошибок сервера - это основной навык, которым должны обладать как ИТ-инженеры, так и системные администраторы.

Rsyslog

Это руководство покажет вам, как настроить удаленный сервер протоколирования, также известный как log host, в Linux. Хост журнала позволяет объединять локальные журналы Linux на удаленном централизованном сервере для удобства доступа и анализа.

Зачем нужен выделенный сервер журналов?

Операционная система Linux регистрирует большинство действий на вашем сервере для аудита и отладки с помощью демона syslog (протокол системного журнала). Поэтому вы можете задаться вопросом, зачем мне нужен выделенный сервер для журналов? Вот некоторые преимущества выделенного сервера регистрации:

Повышенная безопасность, поскольку удаленный сервер протоколирования имеет только несколько портов, открытых для внешнего доступа.
Улучшенная производительность сервера, поскольку на удаленном сервере регистрации не запускается много служб, кроме тех, которые используются для регистрации.
Облегчает архивирование и управление сообщениями журнала.

Сообщения журнала важны для аудита ваших серверов и составления базы данных, а также являются основной частью процедур профилактического обслуживания вашей серверной инфраструктуры.

Шаг 1: Установка rsyslog в Linux

Это руководство посвящено Ubuntu, но процесс должен быть практически таким же, если вы используете другие основные дистрибутивы Linux.

rsyslog - это служба удаленного протоколирования для Linux, которая предустановлена по умолчанию в большинстве современных дистрибутивов Linux, например, в Ubuntu и других системах на базе Debian.

Служба rsyslog является современным и усовершенствованным демоном по сравнению с syslog, который позволяет управлять журналами только локально. С помощью демона rsyslog вы можете отправлять ваши локальные журналы на некоторый настроенный удаленный Linux-сервер.

Если у вас на компьютере не установлен rsyslog, вы можете легко сделать это с помощью следующей команды в дистрибутивах на базе Debian:

В Red Hat Linux вы можете установить его, набрав:

На Fedora и ее производных, выполните:

Чтобы установить rsyslog на Arch Linux:

Чтобы проверить статус rsyslog, выполните следующую команду:

systemctl status rsyslog

Шаг 2: Настройка сервера хранения журналов событий

Сервер хранения событий - это сервер, настроенный на получение сообщений журнала от других серверов или ПК. Конфигурация rsyslog находится в файле /etc/rsyslog.conf.

Вы можете открыть файл /etc/rsyslog.conf с помощью любого текстового редактора по вашему выбору. В этом руководстве мы будем использовать Vim.

Для внесения изменений в файл конфигурации вам понадобятся повышенные привилегии.

Прежде чем приступить к редактированию файла конфигурации, необходимо сделать резервную копию или копию файла. Для этого выполните команду:

Затем откройте файл /etc/rsyslog.conf с помощью текстового редактора.

Для отправки/получения файлов журнала с помощью rsyslog можно использовать два протокола: TCP и UDP. В этом руководстве показано, как настроить оба протокола.

Для удаленного ведения журнала не нужно настраивать ни UDP, ни TCP. Выберите только один из них.

Если вы предпочитаете использовать UDP, найдите и откомментируйте следующие строки, удалив перед ними символ Pound (#). Вы можете найти эти строки в разделе modules конфигурационного файла.

Если вы предпочитаете использовать TCP, то откомментируйте следующие строки, удалив ведущий символ Pound (#), расположенный в начале строк:

На следующем рисунке показан файл конфигурации rsyslog, настроенный на использование UDP связи:

udp_configuration_rsyslog

Затем настройте место, где rsyslog будет хранить ваши журналы. Для лучшей организации следует распределить входящие журналы по категориям в зависимости от их происхождения. Определите шаблон в конфигурационном файле rsyslog, добавив следующие строки:

Вышеупомянутые строки дают команду rsyslog хранить журналы в папке /var/log/remote/hostname, где hostname - это имя удаленного клиента, который отправляет сообщения журнала на хост журнала.

Теперь сохраните сделанные изменения. Если вы используете Vim, вот как сохранить и выйти из файла.

Наконец, перезапустите службу rsyslog, чтобы сделанные изменения вступили в силу.

Шаг 3: Настройка брандмауэра

Если ваш брандмауэр включен, убедитесь, что порт, который вы настроили выше, может взаимодействовать с внешним миром. Вам нужно будет отредактировать правила брандмауэра, чтобы разрешить входящие журналы.

Для дистрибутивов на базе Debian просто используйте инструмент UFW, чтобы включить протокол передачи UDP или TCP.

Если вы используете UDP, выполните следующую команду, где 514 - номер настроенного порта:

Если вы используете TCP на порту 514, просто выполните следующую команду:

В Fedora вы можете использовать firewall-cmd для достижения аналогичных результатов.

Для Red Hat Linux откройте файл iptables, расположенный по адресу /etc/sysconfig/iptables, используя ваш текстовый редактор, и добавьте следующее правило:

Перезапустите службу iptables, чтобы изменения вступили в силу.

Шаг 4: Настройка клиента ведения журналов

Клиент - это машина, которая отправляет свои журналы на удаленный или централизованный сервер-хост журнала. Откройте файл конфигурации rsyslog, расположенный по адресу /etc/rsyslog.conf:

Добавьте следующую строку, если вы используете UDP, где 192.168.12.123 - IP-адрес удаленного сервера, на который вы будете записывать свои журналы:

Если вы используете TCP, добавьте следующую строку. Обратите внимание, что в строке есть два символа @.

Сохраните изменения и перезапустите службу rsyslog на клиенте с помощью команды:

Шаг 5: Просмотр сообщений журнала на сервере

Вы можете использовать SSH для входа на ваш удаленный сервер и просмотра журналов, отправленных с клиентских серверов. В этом случае rsyslog настроен так, что он хранит журналы клиентов в каталоге /var/log/remote удаленного сервера.

Затем перечислите содержимое каталога с помощью команды ls:

Затем вы можете просмотреть файлы журналов с помощью текстового редактора или с помощью инструментов просмотра файлов Linux, таких как cat или less.

Удаленное ведение журнала дает вам больше контроля

В этом руководстве мы рассмотрели, как настроить удаленный сервер протоколирования (log host) в Linux.

Хост журнала предлагает вам лучшую организацию и контроль, когда дело доходит до ведения журнала. Даже в сценариях, когда система повреждена или недоступна, вы можете просмотреть ее журналы с узла регистрации и выяснить, что пошло не так.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий