Настройка Rsyslog для CentOS 7

Обновлено: 03.07.2024

В этом руководстве описывается, как настроить централизованный сервер Rsyslog в CentOS 7 для управления журналами ваших клиентских систем из общего места. Вам не нужно посещать клиентские системы, если вы хотите проверить файлы журналов ваших клиентских систем. Это может быть полезно, если в вашей сети имеется большое количество систем и вы хотите управлять журналами с централизованного выделенного сервера журналов.

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

Сервер Rsyslog:

  • ОС: минимальная версия CentOS 7.
  • IP-адрес: 192.168.43.150/24
  • Имя хоста: logserver.ostechnix.local

Клиентская система:

Для начала настроим сервер Ryslog.

Настройка централизованного сервера Rsyslog в CentOS 7

Это руководство было протестировано с минимальной серверной версией CentOS 7. Однако он должен работать на всех дистрибутивах на основе RPM, таких как RHEL, Fedora, Scientific Linux.

Все приведенные ниже команды следует запускать от имени пользователя root.

Установите пакет rsyslog, если он еще не установлен.

Затем отредактируйте файл конфигурации rsyslog:

Найдите и раскомментируйте следующее, чтобы ваш сервер прослушивал порты udp и tcp.

Нажмите клавишу ESC и введите :wq, чтобы сохранить и закрыть файл.

Разрешить порт 514 Rsyslog по умолчанию на вашем брандмауэре/маршрутизаторе. Следующие команды откроют этот порт через firewalld.

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

Наконец, включите и запустите службу rsyslog:

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

Если вы видите результат, подобный приведенному ниже, поздравляем! Сервер Rsyslog запущен и работает!

Вы можете проверить журнал самого сервера с помощью команды:

Эта команда отобразит последние десять строк ваших сообщений журнала.

Конфигурация клиента

Установите rsyslog от имени пользователя root с помощью команды:

Затем отредактируйте файл конфигурации rsyslog:

Или просто поместите эту строку в конец. Это зарегистрирует все и отправит файлы журнала на ваш сервер Rsyslog.

Вы также можете регистрировать определенные элементы. Скажем, например, чтобы регистрировать только материалы cron, добавьте следующую строку:

Чтобы регистрировать все почтовые сообщения, добавьте:

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

Вы также можете указать полное доменное имя вашего сервера Rsyslog вместо IP-адреса.

Сохраните и закройте файл конфигурации rsyslog.

Наконец, включите и запустите службу rsyslog:

Точно так же вы можете настроить столько клиентов, сколько захотите. для мониторинга журналов.

Проверка сообщений журнала

Запускайте что угодно в своей клиентской системе.

Я собираюсь вручную добавить запись в файл системного журнала с помощью команды logger.

Теперь перейдите на сервер Rsyslog и проверьте, найден ли этот журнал.

Теперь вы получите журналы ваших клиентских систем с сервера.

И. это все. Настройка сервера и клиента Rsyslog завершена. Как видно из этого руководства, настроить базовый сервер Rsyslog очень просто. Хотя это очень простая настройка сервера журналов, у меня она сразу заработала.

Чтобы системный администратор мог определить или устранить проблему в серверной системе CentOS 7 или RHEL 7, он должен знать и просматривать события, которые произошли в системе за определенный период времени, из файлов журнала, хранящихся в системе в каталог /var/log.

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

В системе CentOS/RHEL 7 демон Rsyslog является предварительно установленным основным сервером журналов, за которым следует демон Systemd Journal (journald).

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

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

Сервер системного журнала обрабатывает любое сообщение журнала по следующей схеме:

А. Данные объекта или типа представлены внутренними системными процессами, которые генерируют сообщения. В Linux внутренние процессы (средства), генерирующие журналы, стандартизированы следующим образом:

  • auth = сообщения, созданные процессами аутентификации (логин).
  • cron=сообщения, созданные запланированными процессами (crontab).
  • daemon = сообщения, созданные демонами (внутренними службами).
  • kernel = сообщения, генерируемые самим ядром Linux.
  • почта = сообщения, созданные почтовым сервером.
  • syslog = сообщения, созданные самим демоном rsyslog.
  • lpr = сообщения, созданные локальными принтерами или сервером печати.
  • local0 – local7 = настраиваемые сообщения, определенные администратором (local7 обычно назначается для Cisco или Windows).

Б. Уровни приоритета (серьезности) также стандартизированы. Каждому приоритету присваивается стандартная аббревиатура и номер, как описано ниже. 7-й приоритет — это самый высокий уровень из всех.

Специальные ключевые слова Rsyslog:

  • * = все объекты или приоритеты
  • none = средства не имеют заданных приоритетов. Например: mail.none

С. Третья часть схемы системного журнала представлена ​​директивой назначения. Демон Rsyslog может отправлять сообщения журнала для записи в файл в локальной файловой системе (в основном в файл в каталоге /var/log/) или для передачи другому локальному процессу или для отправки на локальную консоль пользователя (на стандартный вывод) , или отправить сообщение на удаленный сервер системного журнала по протоколу TCP/UDP, или даже сбросить сообщение в /dev/null.

Чтобы настроить CentOS/RHEL 7 в качестве центрального сервера журналов, сначала нам нужно проверить и убедиться, что раздел /var, в котором записываются все файлы журнала, достаточно велик (минимум несколько ГБ), чтобы иметь возможность хранить все файлы журналов, которые будут отправлены другими устройствами. Рекомендуется использовать отдельный диск (LVM, RAID) для монтирования каталога /var/log/.

Требования

Как настроить Rsyslog на сервере CentOS/RHEL 7

<р>1. По умолчанию служба Rsyslog устанавливается автоматически и должна работать в CentOS/RHEL 7. Чтобы проверить, запущен ли демон в системе, введите следующую команду с привилегиями root.

Проверить службу Rsyslog

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

<р>2. Если пакет rsyslog не установлен в системе, которую вы собираетесь использовать в качестве централизованного сервера ведения журналов, введите следующую команду, чтобы установить пакет rsyslog.

<р>3. Первый шаг, который нам нужно сделать в системе, чтобы настроить демон rsyslog в качестве централизованного сервера журналов, чтобы он мог получать сообщения журнала для внешних клиентов, — это открыть и отредактировать с помощью вашего любимого текстового редактора основной файл конфигурации из /etc/rsyslog.conf, представленный в приведенном ниже отрывке.

Настроить сервер Rsyslog

<р>4. Протокол UDP не имеет накладных расходов TCP, что делает его более быстрым для передачи данных, чем протокол TCP. С другой стороны, протокол UDP не гарантирует надежность передаваемых данных.

Однако, если вам нужно использовать протокол TCP для приема журнала, вы должны найти и раскомментировать следующие строки в файле /etc/rsyslog.conf, чтобы настроить демон Rsyslog для привязки и прослушивания сокета TCP на порту 514. Сокеты прослушивания TCP и UDP для приема можно настроить на сервере Rsyslog одновременно.

<р>5. На следующем шаге пока не закрывайте файл, создайте новый шаблон, который будет использоваться для получения удаленных сообщений. Этот шаблон укажет локальному серверу Rsyslog, где сохранять полученные сообщения, отправленные сетевыми клиентами syslog. Шаблон должен быть добавлен до начала блока GLOBAL DIRECTIVES, как показано в приведенном ниже отрывке.

Создать шаблон Rsyslog

Приведенная выше директива $template RemoteLogs указывает демону Rsyslog собирать и записывать все полученные сообщения журнала в отдельные файлы на основе имени клиентского компьютера и удаленного клиентского средства (приложения), которое сгенерировало сообщения на основе определенных свойств, представленных в конфигурация шаблона: %HOSTNAME% и %PROGRAMNAME%.

Все эти файлы журналов будут записаны в локальную файловую систему в специальный файл, названный в честь имени хоста клиентского компьютера и сохраненный в каталоге /var/log/.

Правило перенаправления & ~ предписывает локальному серверу Rsyslog прекратить дальнейшую обработку полученного сообщения журнала и удалить сообщения (не записывать их во внутренние файлы журнала).

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

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

Еще один пример шаблона, в котором все сообщения с флагом средства аутентификации будут регистрироваться в шаблоне с именем «TmplAuth».

Ниже приведен фрагмент определения шаблона с сервера Rsyslog 7:

Приведенный выше отрывок из шаблона также можно записать так:

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

<р>6. После того, как вы отредактировали файл конфигурации Rsyslog со своими настройками, как описано выше, перезапустите демон Rsyslog, чтобы применить изменения, введя следующую команду:

<р>7. К настоящему времени сервер Rsyslog должен быть настроен для работы в качестве централизованного сервера журналов и записи сообщений от клиентов системного журнала. Чтобы проверить сетевые сокеты Rsyslog, запустите команду netstat с привилегиями root и используйте grep для фильтрации строки rsyslog.

Проверить Rsyslog Сетевой сокет

<р>8. Если у вас включен SELinux в CentOS/RHEL 7, введите следующую команду, чтобы настроить SELinux для разрешения трафика rsyslog в зависимости от типа сетевого сокета.

<р>9. Если брандмауэр включен и активен, выполните приведенную ниже команду, чтобы добавить необходимые правила для открытия портов rsyslog в Firewalld.

Вот и все! Rsyslog теперь настроен в режиме сервера и может централизовать журналы от удаленных клиентов. В следующей статье мы увидим, как настроить клиент Rsyslog на сервере CentOS/RHEL 7.

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

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

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

configure-a-central-logging-server-in-linux

rsyslog отвечает за обработку журналов в CentOS 7. rsyslog — это аббревиатура от Rocket Fast System for Log processing. rsyslog предлагает высокую производительность, отличные функции безопасности и модульную конструкцию. Он может принимать входные данные из самых разных источников, преобразовывать их и выводить результат в различные места назначения.

В этой статье мы настроим центральный сервер журналов с помощью rsyslog в CentOS 7, а затем настроим клиентов CentOS 7 для отправки своих локальных журналов на этот центральный сервер журналов на основе rsyslog.

Содержание:

Спецификация среды:

Мы используем две виртуальные машины, одну в качестве сервера rsyslog, а другую в качестве клиента rsyslog.

Сервер rsyslog Клиент rsyslog
Имя хоста: rsyslog-server.example.com rsyslog-client.example.com
IP-адрес: 192.168.113.10/24 192.168.113.11/24
Операционная система: CentOS 7.6 CentOS 7.6

Настройка сервера rsyslog в CentOS 7:

rsyslog по умолчанию установлен в большинстве дистрибутивов Linux, включая CentOS 7.

rsyslog уже установлен на нашем сервере CentOS 7, и его служба уже запущена.

Теперь мы настраиваем параметры rsyslog для приема данных с других компьютеров.

Найдите и раскомментируйте следующие две директивы.

Сохраните настройки и перезапустите rsyslog.service.

Разрешить порт службы rsyslog в брандмауэре Linux.

Наш сервер rsyslog настроен на получение входных данных из других источников журналов через порт 514/tcp

Настройка клиента rsyslog в CentOS 7:

Служба rsyslog уже установлена ​​и работает на нашем клиентском компьютере на базе CentOS 7.

Теперь настройте клиент rsyslog для передачи своего журнала на наш сервер rsyslog, добавив следующие директивы в /etc/rsyslog.conf

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

Теперь подключитесь к нашему серверу rsyslog и проверьте /var/log/messages

Мы успешно настроили центральный сервер входа с помощью rsyslog в CentOS 7.

Сегодня мы рассмотрим, как настроить централизованное управление журналами для сервера Linux. Это поможет администратору Linux иметь несколько журналов сервера в одном месте. Администратору Linux не нужно входить на каждый сервер для проверки журналов, он может просто войти на централизованный сервер и начать мониторинг журнала.

Ярлыки Linux (auth, cron, FTP, LPR, authpriv, новости, почта, системный журнал и т. д.) к сообщениям журнала для указания типа программного обеспечения, вызвавшего сообщения, с уровнем серьезности (предупреждение, критическое, предупреждение, уведомление, информация и др.).

Дополнительную информацию о метках сообщений и уровнях серьезности см.

Чтобы настроить сервер журналов, убедитесь, что у вас есть следующее.

Два сервера Linux (сервер и клиент).

Настройка сервера системного журнала

Установите пакет Rsyslog, если он у вас не установлен.

Отредактируйте файл /etc/rsyslog.conf.

TCP или UDP

Rsyslog поддерживает протоколы UDP и TCP для получения журналов. Протокол TCP обеспечивает надежную передачу журналов.

Раскомментируйте следующее, чтобы сервер системного журнала мог прослушивать протокол UDP.

ОТ:

КОМУ:

Раскомментируйте следующее, чтобы сервер системного журнала мог прослушивать протокол TCP.

ОТ:

КОМУ:

Перезапустите службу системного журнала

Убедитесь, что сервер системного журнала прослушивает порт 514.

Вывод:

Настройка клиента системного журнала

Установите пакет Rsyslog, если он у вас не установлен.

Отредактируйте файл /etc/rsyslog.conf.

В конце файла поместите следующую строку, чтобы указать журнал сообщений клиента на сервер.

Вы можете использовать либо имя хоста, либо IP-адрес.

Перезапустите службу системного журнала

Теперь все журналы сообщений отправляются на центральный сервер, а также хранятся локально.

Брандмауэр

В основном все производственные среды защищены аппаратным брандмауэром, попросите их открыть TCP и UDP 514.

Если у вас включен FirewallD, выполните следующую команду на сервере, чтобы принимать входящий трафик через порт UDP/TCP 514.

Подтвердить

Перейдите на сервер системного журнала и просмотрите файл журнала сообщений.

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

Таким образом, вы можете отслеживать другие журналы, такие как журналы безопасности, почты, cron и т. д.

Заключение

Это все. Я надеюсь, что вы успешно настроили централизованный сервер системного журнала на CentOS 7 / RHEL 7. Вы также можете попробовать инструменты управления журналами с открытым исходным кодом, такие как стек ELK или Graylog, для более продвинутых функций, таких как веб-интерфейс, корреляция событий журнала и т. д.

Читайте также: