Как настроить центральный сервер ведения логов с помощью Rsyslog в Linux?

Как настроить центральный сервер ведения логов с помощью Rsyslog в Linux?

Сегодня поговорим о том, как настроить центральный сервер ведения логов с помощью Rsyslog в Linux. Логи являются критическим компонентом любого программного обеспечения или операционной системы. Логи обычно записывают действия пользователя, системные события, сетевую активность и многое другое, в зависимости от того, для чего они предназначены. Одной из наиболее широко используемых систем регистрации логов в системах Linux является rsyslog.

Rsyslog — это мощная, безопасная и высокопроизводительная система обработки логов, которая собирает данные из разных источников (систем/приложений) и выводит их в несколько форматов.

Rsyslog эволюционировал из обычного демона syslog до полнофункциональной системы ведения логов уровня предприятия. Rsyslog разработан в двух моделях (клиент/сервер), поэтому его можно настроить как клиент и/или как центральный сервер ведения логов для других серверов, сетевых устройств и удаленных приложений.

 

Испытательная среда

Для целей данной статьи мы будем использовать следующие хосты:

  • Сервер: 192.168.241.140
  • Клиент: 172.31.21.58

Как установить и настроить сервер Rsyslog?

Большинство дистрибутивов Linux поставляются с предустановленным пакетом rsyslog. Если он не установлен, вы можете установить его с помощью вашего менеджера пакетов Linux, как показано ниже:

 

После установки rsyslog вам нужно запустить службу, включить автозапуск при загрузке и проверить статус с помощью команды systemctl:

 

rsyslog

 

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

 

По умолчанию rsyslog использует модули imjournal и imusock для импорта структурированных сообщений логов из журнала systemd и для приема сообщений syslog из приложений, запущенных в локальной системе через сокеты Unix, соответственно:

 

/etc/rsyslog.conf

 

Чтобы настроить rsyslog в Linux как сетевой/центральный сервер протоколирования, вам необходимо установить протокол (UDP, либо TCP, либо оба), который он будет использовать для удаленного приема syslog, а также для порта, который он прослушивает.

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

 

Чтобы использовать TCP-соединение (которое медленнее, но надежнее), выполните поиск и раскомментируйте приведенные ниже строки:

 

Затем вам нужно определить набор правил для обработки удаленных логов в следующем формате:

 

Где:

  • facility: это тип сообщения о процессе/приложении, к которому относятся auth, cron, daemon, kernel, local0..local7. Использование «*» означает все объекты.
  • severity_level: это тип сообщения журнала: out-0, alert-1, crit-2, err-3, warn-4, notice-5, info-6, debug-7. Использование «*» означает все уровни severity, а «none» означает ни одного уровня severity.
  • destination: локальный файл, либо удаленный сервер rsyslog (определенный в форме IP:порт).

 

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

 

 

Define-Ruleset

 

 

Глядя на вышеприведенный набор правил, первое правило:

 

В директиве $template говорится, что демон rsyslog собирает и записывает все полученные удаленные сообщения в различные журналы в /var/log на основе имени хоста (имя клиентского компьютера) и средства удаленного клиента (программа/приложение), которые генерируют сообщения как определенные по правилам, присутствующим в шаблоне RemoteLogs.

Вторая строка «*.*?RemoteLogs» означает запись сообщений со всех объектов на всех уровнях severity с использованием конфигурации шаблона RemoteLogs.

Последняя строка «&~» указывает rsyslog прекратить обработку сообщений после их записи в файл. Если вы не укажете «&~», сообщения будут записаны в локальные файлы.

Есть много других шаблонов, которые вы можете использовать, для получения дополнительной информации, загляните в справочную страницу конфигурации rsyslog (man rsyslog.conf) или обратитесь к онлайн-документации Rsyslog.

Это вся настройка сервера rsyslog. Сохраните и закройте файл конфигурации. Чтобы применить последние изменения, перезапустите демон rsyslog с помощью следующей команды:

 

Теперь проверьте сетевые сокеты rsyslog. Используйте команду ss (или netstat с теми же флагами) и передайте вывод grep для фильтрации соединений rsyslogd:

 

Как настроить центральный сервер ведения логов

 

 

Далее, в CentOS 7, если вы включили SELinux, запустите следующие команды, чтобы разрешить трафик rsyslog сгруппированный  по типу сетевого сокета:

 

Если в системе включен брандмауэр, вам необходимо дать доступ через порт 514, чтобы разрешить оба соединения UDP/TCP с сервером rsyslog:

 

 

 

 

Как настроить клиент Rsyslog для отправки логов на сервер Rsyslog?

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

 

Если он не установлен, установите его и запустите службу, как показано ранее:

 

 

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

 

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

 

Configure-Rsyslog-Client

 

 

Вышеупомянутое правило будет отправлять сообщения со всех объектов и на всех уровнях severity. Чтобы отправлять сообщения из определенного объекта, например auth, используйте следующее правило:

 

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

 

Как отслеживать удаленное ведение логов на сервере Rsyslog?

Последний шаг — проверить, действительно ли rsyslog принимает и регистрирует сообщения от клиента /var/log в форме hostname/programname.log.

Запустите команду ls для вывода полного списка каталога родительских журналов и проверьте, есть ли каталог с именем ip-172.31.21.58 (или каким-либо именем хоста вашего клиентского компьютера).

 

Check-Rsyslog-Client-Logging

 

 

Если каталог существует, проверьте файлы логов внутри него, выполнив:

 

Check-Rsyslog-Client-Logs

 

Итоги

Rsyslog — это высокопроизводительная система обработки логов, разработанная в архитектуре клиент/сервер. Мы надеемся, что вы сможете установить и настроить Rsyslog в качестве центрального/сетевого сервера веления логов, как показано в этой статье.

 

 

Спасибо за уделенное время на прочтение статьи!

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

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню