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

Rsyslog — это система ведения журналов, применяемая в операционных системах Linux. Она представляет собой усовершенствованную версию Syslog. Rsyslog также поддерживает использование баз данных (MySQL, PostgreSQL) для хранения журналов. С версии CentOS/RHEL 6 он является стандартным сервером журналирования. Данная статья посвящена настройке централизованного сервера журналирования в нашей хостинг-инфраструктуре.

В данной статье мы рассмотрим процесс установки Rsyslog на CentOS/RHEL 5 и его настройку для отправки всех логов на центральный сервер. Наша главная задача — собрать все логи в одном месте, чтобы упростить их резервное копирование или обработку с помощью парсеров. Это позволит избежать необходимости настройки резервного копирования на каждом сервере индивидуально.

На системах, основанных на RHEL, начиная с версии RHEL 6, Rsyslog установлен по умолчанию. Установите Rsyslog как на центральном сервере, так и на клиентских машинах. Для установки Rsyslog на более ранних версиях RHEL/CentOS используйте следующую команду.

# yum install rsyslog

После завершения установки запустите Rsyslog и убедитесь, что служба syslog остановлена.

# service syslog stop # chkconfig syslog off # service rsyslog start # chkconfig rsyslog on

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

Если на вашей системе включён SELinux, выполните следующую команду для разрешения трафика Rsyslog на порту 514.

# semanage -a -t syslogd_port_t -p udp 514

Теперь откройте файл конфигурации Rsyslog и настройте путь для хранения логов.

# vim /etc/rsyslog.conf

Добавьте в конец файла следующие строки.

$template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.* ?TmplAuth *.info,mail.none,authpriv.none,cron.none ?TmplMsg

Также раскомментируйте строки, убрав символ # в начале, чтобы активировать поддержку UDP.

$ModLoad imudp $UDPServerRun 514

Если вы используете iptables для защиты системы, добавьте следующее правило для открытия порта.

# iptables -A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT

После внесения изменений перезапустите службу Rsyslog командой:

# service rsyslog restart

Теперь перейдём к настройке клиентских систем для отправки логов на центральный сервер Rsyslog. На каждом клиентском узле откройте файл.

# vim /etc/rsyslog.conf

Добавьте следующую строку, указав IP-адрес или имя хоста вашего центрального сервера Rsyslog.

*.* @192.168.1.254:514 [или] *.* @logserver.example.com:514

Затем перезапустите службу Rsyslog с помощью команды:

# service rsyslog restart

Таким образом, настройка центрального сервера логирования успешно завершена.

Рекомендуется также настроить ротацию логов, чтобы избежать переполнения дискового пространства. Для этого можно использовать logrotate, добавив конфигурацию для логов Rsyslog в файл /etc/logrotate.d/rsyslog.

Читайте также:  Релиз Linux-дистрибутива Mandriva 2010.2

Также, для повышения безопасности, рассмотрите возможность шифрования передаваемых логов с помощью TLS. Это можно сделать, установив пакет rsyslog-gnutls и настроив соответствующие параметры в конфигурации Rsyslog.

Наконец, не забудьте следить за состоянием сервера и производительностью. Используйте такие инструменты, как rsyslogd -N1, чтобы проверять конфигурацию на ошибки, и systemctl status rsyslog для проверки состояния службы.

централизованная система логирования rsyslog rsyslogd

Поделиться. Facebook Twitter Pinterest LinkedIn Tumblr Электронная почта WhatsApp

Содержание статьи

Как установить LibreOffice на Ubuntu

LibreOffice — это мощный и бесплатный офисный пакет, который включает в себя текстовый процессор, таблицы, презентации и многое другое. Установка LibreOffice на Ubuntu довольно проста и занимает всего несколько минут.

  • Обновите список пакетов. Запустите терминал и введите команду:

    sudo apt update

    Эта команда обновит список доступных пакетов и их версий, чтобы вы могли установить последние обновления и версии программ.

  • Установите LibreOffice. Введите следующую команду:

    sudo apt install libreoffice

    Эта команда загрузит и установит LibreOffice и все необходимые зависимости.

  • Запустите LibreOffice. После завершения установки вы можете запустить LibreOffice, найдя его в меню приложений или введя команду:

    libreoffice

    Теперь вы готовы к работе с документами, таблицами и презентациями!

  • Обновление LibreOffice. Чтобы обновить LibreOffice в будущем, просто выполните команду:

    sudo apt upgrade libreoffice

    Эта команда установит доступные обновления для LibreOffice.

  • Дополнительные источники. Если вы хотите установить более новую версию LibreOffice, чем та, что доступна в стандартных репозиториях, вы можете добавить PPA. Используйте следующую команду:

    sudo add-apt-repository ppa:libreoffice/ppa

    После этого снова выполните команды sudo apt update и sudo apt install libreoffice.

  • Удаление LibreOffice. Если вам когда-либо нужно будет удалить LibreOffice, вы можете сделать это с помощью следующей команды:

    sudo apt remove libreoffice

    Эта команда удалит LibreOffice из вашей системы, но ваши документы останутся на месте.

  • Работа с плагинами и расширениями. LibreOffice поддерживает различные плагины и расширения, которые могут значительно улучшить его функциональность. Вы можете найти дополнительные расширения на официальном сайте LibreOffice в разделе Extensions.

  • Пользовательская документация и поддержка. Если вам нужна помощь или вы хотите узнать больше о возможностях LibreOffice, посетите раздел документации на официальном сайте. Там вы найдете руководства и советы по работе с офисным пакетом.


  • Зомби-процессы в Linux — это процессы, которые завершили своё выполнение, но всё ещё имеют запись в таблице процессов. Они остаются в состоянии "зомби", пока родительский процесс не прочитает их код завершения. Это может происходить, когда родительский процесс не вызывает функцию wait() или аналогичную для получения статуса завершения дочернего процесса. Зомби-процессы не занимают ресурсов процессора, но могут занимать память и увеличивать количество записей в таблице процессов, что в конечном итоге может привести к исчерпанию доступных идентификаторов процессов. Чтобы избежать накопления зомби-процессов, рекомендуется следить за завершением дочерних процессов и вызывать wait() или waitpid() в родительском процессе. Также можно использовать сигналы, такие как SIGCHLD, чтобы автоматически обрабатывать завершение дочерних процессов. В случае если родительский процесс завершается до того, как дочерний завершит выполнение, дочерний процесс становится "сиротой" и переходит к процессу-родителю, обычно это init, который затем корректно обрабатывает его завершение. Наличие большого числа зомби-процессов может указывать на проблемы в приложении, требующие анализа и исправления.

    Настройка привилегий sudo в Linux: пошаговая инструкция

    Здравствуйте. Можете рассказать, как перенаправить журналы доступа Apache на сервер Rsyslog?

    Для перенаправления журналов доступа Apache на сервер Rsyslog вам нужно будет настроить конфигурацию Apache для отправки логов через syslog. Это можно сделать, добавив соответствующую директиву в конфигурацию виртуального хоста. Например:

    CustomLog "|/usr/bin/logger -t apache" combined

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

    Это интересно. Но вы не объясняете, почему выполняете те или иные действия. И что касается этого примера: $template TmplAuth, “/var/log/%HOSTNAME%/%PROGRAMNAME%.log” authpriv.* ?TmplAuth *.info,mail.none,authpriv.none,cron.none ?TmplMsg, как он работает в конфигурации? Зачем это нужно? Является ли это обязательным или опциональным?

    Данный шаблон используется для создания пути к логам на основе имени хоста и программы. Это позволяет структурировать логи, что облегчает их анализ. Например, все логи для программы authpriv будут записываться в отдельный файл, что удобно для администрирования. Настройка является опциональной, но рекомендуется для упрощения управления логами.

    Привет, не могли бы вы опубликовать инструкцию по «интеграции системы Linux с Active Directory Windows для входа в систему»?

    Для интеграции Linux с Active Directory можно использовать такие инструменты, как Samba, Kerberos и LDAP. Вам потребуется установить соответствующие пакеты и настроить конфигурационные файлы, например, smb.conf и krb5.conf. Основные шаги включают настройку Kerberos для аутентификации и конфигурацию Samba для подключения к AD.

    Здравствуйте, всем! Я только что это узнал и мне это очень понравилось. Задался вопросом, почему мои клиенты не отправляют свои логи на центральный лог-сервер. Я настроил его так, как указано в вашем руководстве. Есть идеи, в чем дело? Спасибо!

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

    У нас имеется три сервера RHEL, на каждом из которых работает Tomcat. Мы планируем сохранять все логи Tomcat на одном сервере через Rsyslog. Но логи на сервере Rsyslog не появляются. Как можно их получить?

    Убедитесь, что в конфигурации Tomcat задана правильная обработка логов. Также проверьте, что на клиентских серверах правильно настроен Rsyslog для отправки логов на центральный сервер. Это может включать в себя правильные параметры в файле /etc/rsyslog.conf или в файлах, находящихся в /etc/rsyslog.d. Для Tomcat вам может понадобиться настроить вывод логов в syslog.

    В вашем документе есть опечатка: вместо "service syslog stop chkconfig syslog off" должно быть "service rsyslog stop chkconfig rsyslog off".

    Спасибо за ваше замечание! Опечатки могут привести к недоразумениям, и мы ценим вашу внимательность. Всегда проверяйте команды перед выполнением.

    Я хочу отправлять только определенные сообщения из /var/log/messages на клиентском сервере на центральный сервер Rsyslog. Могу ли я установить условия, чтобы отправлять только сообщения с текстом "UserAllowed"? Существует ли что-то вроде "grep", что я мог бы использовать в конфигурации? Спасибо!

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

    if ($msg contains 'UserAllowed') then { action }

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

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

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