Демон rsyslog — высокопроизводительная служба протоколирования для Unix-подобных ОС, включая Linux. Она является заменой устаревшего сервиса syslogd. Утилита rsyslog предоставляет расширенные возможности для ведения файлов журнала, включая:
- функцию структурирования журнала;
- фильтрацию;
- пересылку сообщений по различным сетевым протоколам, таким как TCP / UDP, и много другое.
В этой статье мы покажем, как настроить базовые параметры демона rsyslog в дистрибутиве CentOS Linux.
Содержание:
- Установка инструмента rsyslog в CentOS
- Файл настроек rsyslog
- Настройка параметров rsyslog
- Перезагрузка демона rsyslog и настройка брандмауэра
- Выводы
Установка инструмента rsyslog в CentOS Linux
Служба rsyslog предустановлена и работает по умолчанию в CentOS 7 Linux. Чтобы в этом убедиться, воспользуйтесь инструментом systemctl с опцией status. Например:
Если служба не работает по умолчанию, выполните следующую команду для ее запуска:
Читайте также: 4 средства мониторинга и управления журналом Linux.
Если по каким-либо причинам утилита rsyslog отсутствует в Вашей ОС, воспользуйтесь менеджером управления пакетами yum для ее установки:
Файл настроек rsyslog
У демона rsyslog есть свой файл настроек — /etc/rsyslog.conf. В нем содержатся различные параметры и шаблоны для управления системными сообщениями в Linux. Вы можете открыть этот документ в любом текстовом редакторе, например, в nano:
На скриншоте выше видно, что по умолчанию все строки в файле /etc/rsyslog.conf закомментированы.
Настройка параметров rsyslog
В качестве примера давайте немного отредактируем файл /etc/rsyslog.conf.
Пересылка сообщений по UDP и TCP
Утилита rsyslog работает через порт 514 и для передачи данных использует сетевой протокол UDP. Однако по умолчанию эта функция отключена, так как соответствующие параметры в файле /etc/rsyslog.conf закомментированы. Чтобы разрешить rsyslog получать сообщения через порт 514 и протокол UDP, достаточно раскомментировать следующие две строки в файле настроек:
Читайте также: Как очистить или удалить файлы журнала в Linux или UNIX.
Чтобы позволить демону rsyslog также использовать протокол TCP, дополнительно раскомментируйте:
Запись сообщений в файл журналов
Как мы сказали ранее, Вы также можете записывать в файл настроек /etc/rsyslog.conf шаблоны для управления журналами. Например, создадим шаблон для регистрации сообщений, поступающих от удаленных операционных систем:
Давайте детальнее разберем использованные команды:
$template RemoteLogs— строка, которая определяет шаблон с названиемRemoteLogs."/var/log/%HOSTNAME%/%PROGRAMNAME%.log"— строка, которая указывает путь файлов журналов:%HOSTNAME%— заполнитель, который будет заменен именем хоста, генерирующего сообщения журнала;%PROGRAMNAME%— заполнитель для названия программы или устройства, сгенерировавшего сообщение журнала.
. ?RemoteLogs & ~— строка, которая указывает демонуrsyslogприменять шаблонRemoteLogs.
Важно: шаблоны обязательно нужно прописывать перед блоком GLOBAL DIRECTIVES.
Можно также установить директиву, предписывающую rsyslog создавать для каждого удаленного клиента отдельный файл c IP-адресом в названии, куда будут сохраняться все входящие сообщения без фильтрации источника (программы или устройства). Например:
Разберем этот шаблон:
$template FromIp— строка, которая определяет шаблон с названиемFromIp."/var/log/%FROMHOST-IP%.log"— строка, которая указывает путь файлов журналов:%FROMHOST-IP%— заполнитель, который будет заменен IP-адресом удаленной ОС, отправившей сообщение журнала.
. ?FromIp & ~— строка, которая указывает демонуrsyslogприменять шаблонFromIp.
Читайте также: 27 полезных советов по iptables для администратора Linux.
Фильтрация сообщений с приоритетом authpriv
Кроме того, давайте напишем шаблон TmplAuth, предназначенный для направления всех сообщений с приоритетом authpriv в специальные файлы журнала. Приоритет authpriv обычно присваивается данным, содержащим конфиденциальную информацию, например, паролям. Шаблон выглядит следующим образом:
Разберем детальнее его составляющие:
$template TmplAuth— строка, которая определяет шаблон с названиемTmplAuth."/var/log/%HOSTNAME%/%PROGRAMNAME%.log"— строка, которая указывает путь к файлам журнала:%HOSTNAME%— заполнитель, который будет заменен именем хоста, генерирующего сообщения журнала;%PROGRAMNAME%— заполнитель названия программы или устройства, сгенерировавшего сообщение журнала.
authpriv.* ?TmplAuth— строка, которая указываетrsyslogприменять шаблонTmplAuthтолько к сообщениям с любым уровнем приоритета в категорииauthpriv.
Структурирование директории файлов журналов
Напоследок, установим шаблон, предписывающий записывать сообщения в файлы каталога /var/log/remote/msg/, разбитого на подкаталоги в соответствии с именем хоста операционной системы и названием программы-источника. Если в названии программы присутствуют косые черты, они заменяются подчеркиваниями, а журналы имеют расширение *.log. Например:
Чтобы научиться создавать более сложные шаблоны rsyslog, ознакомьтесь с man-страницой файла /etc/rsyslog.conf или документацией инструмента:
Перезагрузка демона rsyslog и настройка брандмауэра
Чтобы новые директивы rsyslog вступили в силу, сохраните внесенные изменения в /etc/rsyslog.conf и перезагрузите демон:
Чтобы убедиться, что rsyslog прослушивает порт 514, примените следующую команду:
Читайте также: Как установить Splunk Log Analyzer на CentOS 7.
Если в Вашей ОС включен инструмент SELinux, его необходимо настроить так, чтобы позволить rsyslog принимать трафик в соответствии с типом сетевого сокета. Для этого выполните в терминале:
Так как сервис rsyslog использует порт 514, следует разрешить доступ к этому порту с помощью межсетевого экрана firewalld:
Выводы
Теперь Вы знаете, что такое демон rsyslog и какие задачи он выполняет. Мы также показали несколько примеров настройки параметров и создания шаблонов rsyslog для управления файлами журналов в дистрибутивах на базе RHEL / CentOS Linux.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
































