Ведение журнала является важным аспектом управления сервером Linux. Сообщения журнала полезны для анализа первопричин и предотвращения потенциальных ошибок в будущем. Анализ и отладка ошибок сервера — это основной навык, которым должны обладать как ИТ-инженеры, так и системные администраторы.
В этом руководстве показано, как настроить удаленный сервер журналов, также известный как хост журналов, в Linux. Хост журналов позволяет собирать локальные журналы Linux на удаленном централизованном сервере для облегчения доступа и анализа.
Зачем нужен выделенный сервер журналов?
Операционная система Linux регистрирует большинство действий на вашем сервере для аудита и отладки с помощью демона syslog (протокол системного ведения журнала). Итак, вам может быть интересно, зачем мне нужен выделенный сервер для моих журналов? Вот некоторые преимущества наличия выделенного сервера регистрации:
- Улучшенная безопасность, поскольку удаленный сервер регистрации имеет только несколько портов, открытых наружу.
- Улучшена производительность сервера, поскольку на удаленном узле ведения журнала не запущено много служб, кроме тех, которые используются для ведения журнала.
- Упрощает архивирование и управление сообщениями журнала.
Сообщения журнала важны для аудита ваших серверов и базового уровня и являются основной частью процедур профилактического обслуживания вашей серверной инфраструктуры.
Шаг 1: Установка rsyslog в Linux
Это руководство посвящено Ubuntu 20.04, но процесс должен быть почти таким же, если вы используете другие распространенные дистрибутивы Linux.
rsyslog — это служба удаленного ведения журналов для Linux, которая по умолчанию предустановлена в большинстве современных дистрибутивов Linux, например, в Ubuntu и других системах на основе Debian.
Служба rsyslog — это современный и улучшенный демон для системного журнала, который позволяет вам управлять журналами только локально. С помощью демона rsyslog вы можете отправлять свои локальные журналы на какой-либо настроенный удаленный сервер Linux.
Если на вашем ПК не установлен rsyslog, вы можете легко сделать это с помощью следующей команды в дистрибутивах на основе Debian:
sudo apt установить rsyslog
В Red Hat Linux вы можете установить его, набрав:
юм установить rsyslog
В Fedora и ее производных запустите:
dnf установить rsyslog
Чтобы установить rsyslog в Arch Linux:
yay -S rsyslog
Чтобы проверить состояние rsyslog, выполните следующую команду:
статус systemctl rsyslog
Выход:
Шаг 2. Настройка хост-сервера журналов
Хост журнала — это сервер, настроенный на получение сообщений журнала от других серверов или компьютеров. Конфигурация rsyslog находится в /etc/rsyslog.conf файл.
Вы можете открыть /etc/rsyslog.conf файл с использованием любой текстовый редактор на ваш выбор. В этом руководстве мы будем использовать Vim.
Вам потребуются повышенные привилегии для внесения изменений в файл конфигурации.
Прежде чем приступить к редактированию файла конфигурации, необходимо сделать резервную копию или копию файла. Для этого выполните команду:
sudo cp /etc/rsyslog.conf /etc/rsyslog_original.config
Далее откройте /etc/rsyslog.conf файл с помощью текстового редактора.
Судо ВИМ /etc/rsyslog.conf
Существует два протокола, которые вы можете использовать для отправки/получения файлов журнала с помощью rsyslog: TCP и UDP. В этом руководстве показано, как настроить оба.
Вам не нужно настраивать UDP и TCP для работы удаленного ведения журнала. Выбирайте только одно из двух.
Если вы предпочитаете использовать UDP, найдите и раскомментируйте следующие строки, удалив начальные Фунт (#) перед строками. Вы можете найти эти строки в разделе модулей файла конфигурации.
модуль (load="imudp")
ввод (тип = «imudp» порт = «514»)
Если вы предпочитаете использовать TCP, раскомментируйте следующие строки, удалив начальные Фунт (#) символ, расположенный в начале строк:
модуль (load="imtcp")
ввод (тип = «imtcp» порт = «514»)
На следующем рисунке показан файл конфигурации rsyslog, сконфигурированный для использования связи UDP:
Затем настройте место, где rsyslog будет хранить ваши журналы. Для лучшей организации вы должны классифицировать входящие журналы по их происхождению. Определите шаблон в файле конфигурации rsyslog, добавив следующие строки:
$template удаленные входящие журналы, "/var/log/remote/%HOSTNAME%".log
*.* ?удаленные-входящие-журналы
Вышеупомянутые строки дают команду rsyslog хранить журналы в папке /var/log/remote/hostname, куда имя хоста — это имя удаленного клиента, который отправляет сообщения журнала на хост журнала.
Теперь сохраните внесенные изменения. Если вы используете Vim, вот как сохранить и выйти из файла.
Наконец, перезапустите службы rsyslog, чтобы внесенные вами изменения вступили в силу.
sudo systemctl перезапустить rsyslog
Шаг 3: Настройка брандмауэра
Если ваш брандмауэр включен, убедитесь, что порт, который вы настроили выше, может обмениваться данными с внешним миром. Вам нужно будет отредактировать правила брандмауэра, чтобы разрешить входящие журналы.
Для дистрибутивов на основе Debian просто используйте инструмент UFW, чтобы включить протокол передачи UDP или TCP.
Связанный: Как настроить брандмауэр в Ubuntu с помощью UFW
Если вы используете UDP, выполните следующую команду, где 514 — настроенный номер порта:
судо ufw 514/udp
Если вы используете TCP на порту 514, просто запустите:
судо ufw 514/tcp
В Fedora вы можете использовать брандмауэр-cmd для достижения аналогичных результатов.
брандмауэр-cmd --zone=zone --add-port=514/udp
Для Red Hat Linux откройте iptables файл, расположенный по адресу /etc/sysconfig/iptables используя любой текстовый редактор, и добавьте следующее правило:
-A INPUT -m состояние --state NEW -m udp -p udp --dport 514 -j ПРИНЯТЬ
Перезапустите службу iptables, чтобы изменения вступили в силу.
служба iptables перезапуск
Шаг 4: Настройка клиента ведения журнала
Клиент — это машина, которая отправляет свои журналы на удаленный или централизованный хост-сервер журналов. Откройте файл конфигурации rsyslog, расположенный по адресу /etc/rsyslog.conf:
Судо ВИМ /etc/rsyslog.conf
Добавьте следующую строку, если вы используете UDP, где 192.168.12.123 — это IP-адрес удаленного сервера, вы будете записывать свои журналы на:
*.* @192.168.12.123:514
Если вы используете TCP, добавьте вместо этого следующую строку. Обратите внимание, что в строке два @ символы.
*.* @@192.168.12.123:514
Сохраните изменения и перезапустите службу rsyslog на клиенте с помощью команды:
sudo systemctl перезапустить rsyslog
Шаг 5: Просмотр сообщений журнала на сервере
Вы можете использовать SSH для входа на удаленный сервер и просмотра журналов, отправленных с клиентских серверов. В этом случае rsyslog настроен так, что он хранит журналы клиентов в /var/log/remote каталог удаленного сервера.
компакт-диск /var/журналы/удаленный
Затем перечислите содержимое каталога, используя команда лс:
лс -л
Как видно из вывода, каталог содержит сообщения журнала для удаленных серверов с именем Андива а также рукуру. Их лог-файлы называются andiwa.log а также rukuru.log соответственно.
Затем вы можете просмотреть файлы журнала с помощью текстового редактора или с помощью Инструменты для просмотра файлов Linux например, кошка или меньше.
Удаленное ведение журнала дает вам больше контроля
В этом руководстве рассматривается, как настроить удаленный сервер ведения журналов (хост журналов) в Linux.
Хост журнала предлагает вам лучшую организацию и контроль, когда дело доходит до ведения журнала. Даже в сценариях, когда система повреждена или недоступна, вы все равно можете просматривать ее журналы с хоста журналов и выяснять, что пошло не так.
Начало работы с системным журналом в Linux
Читать далее
Похожие темы
- линукс
- Системное администрирование
- Команды Linux
Об авторе

Мвиза занимается разработкой программного обеспечения по профессии и много пишет о Linux и внешнем программировании. Некоторые из его интересов включают историю, экономику, политику и корпоративную архитектуру.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться