Настройка rsyslog для ПАК МХД.О
|
Эта инструкция описывает настройку rsyslog на отправку логов в сервер VictoriaLogs, развёрнутый на одном узле. Если используется отказоустойчивый кластер VictoriaLogs:
|
Настройка узлов выполняется с помощью плейбуков Ansible, входящих в состав дистрибутива и размещённых в директории rsyslog_config/.
Далее все пути к файлам и директориям указываются относительно этой директории, если явно не указано иное.
Узлы, на которых выполняется установка и настройка rsyslog, далее называются целевыми.
Помимо rsyslog на целевые узлы устанавливается LogWatcher — компонент для работы с логами в формате ZST.
Системные требования
На целевых узлах должны быть установлены или доступны для установки из репозиториев ОС следующие пакеты:
-
rsyslogверсии 8.1901 или новее; -
rsyslog-gnutls; -
rsyslog-journal(только Альт Сервер).
Если пакеты недоступны в репозиториях, либо их версии ниже допустимых, установите пакеты требуемых версий вручную.
Особенности использования плейбуков
Поставляемые в дистрибутиве плейбуки имеют ряд особенностей.
deploy.yml
Плейбук deploy.yml выполняет следующие задачи:
-
установка rsyslog и LogWatcher;
-
настройка rsyslog на передачу логов в VictoriaLogs.
Плейбук содержит ряд задач, которые могут завершиться ошибкой:
-
Проверка наличия необходимых пакетов. Отсутствующие пакеты плейбук попытается установить из репозиториев ОС.
-
Проверка версии пакета
rsyslog. -
Проверка конфигурационного файла
/etc/rsyslog.confна наличие директивы подключения конфигурационных файлов из директории/etc/rsyslog.d/*.conf.Если директива отсутствует, добавьте в файл
/etc/rsyslog.confстроку:include(file="/etc/rsyslog.d/*.conf" mode="optional") -
Проверка конфигурационного файла
/etc/rsyslog.confна присваивание значения переменнойworkDirectory.Если нужная строка отсутствует, добавьте её:
global(workDirectory="/var/lib/rsyslog") -
Проверка конфигурационного файла
/etc/rsyslog.confна наличие директивы загрузки модуляimjournal.Если нужная строка отсутствует, добавьте её:
module(load="imjournal" UsePid="system" FileCreateMode="0600" StateFile="imjournal.state") -
Проверка корректности конфигурационного файла
/etc/rsyslog.d/30-vision-vlogs.conf.Если проверка завершится ошибкой, выполните следующие действия:
-
Убедитесь, что установленная версия rsyslog содержит библиотеки
imfile,imjournalи другие. Путь к директории с библиотеками зависит от используемого дистрибутива Linux:Дистрибутив Директория РЕД ОС
/usr/lib/64/rsyslog/Альт Сервер c10f1
/lib64/rsyslog/Astra Linux Special Edition 1.7.3
/usr/lib/x86_64-linux-gnu/rsyslog/ -
Проверьте корректность синтаксиса шаблонов
.conf.j2в директорииroles/rsyslog/templates/.
-
Создание инвентарей
Для использования плейбуков требуется инвентарь Ansible. Из-за того, что узлы ПАК МХД.О могут выполнять роль шлюза (Gateway) или сервера хранения (Storage), понадобятся два инвентаря.
-
Сформируйте файл инвентаря, следуя инструкции.
-
Убедитесь, что в секции
victorialogsв значении поляhostуказан IP-адрес Визион.Сервера. -
Удалите или закомментируйте описания узлов, на которых не требуется настраивать rsyslog.
-
Укажите учётные данные для подключения к узлам и повышения привилегий.
-
Скопируйте созданный инвентарь в файл
inventory-gateway.ymlи оставьте в нём только узлы, выполняющие роль шлюзов. -
Скопируйте созданный инвентарь в файл
inventory-storage.ymlи оставьте в нём только узлы, выполняющие роль серверов хранения.
Настройка Визион.Сервера
-
В интерфейсе Визион выберите раздел Объекты.
-
На панели Контур выберите ПАК.
-
Выберите вкладку Агенты логов.
-
Нажмите кнопку Сконфигурировать агенты.
-
Выберите расположение Прокси и узлы, на которые необходимо установить агенты логов.
-
Нажмите кнопку Сохранить.
-
Если сервер VictoriaLogs развёрнут на одном узле, на узле Визион.Сервера приведите содержимое конфигурационного файла
/opt/skala-r/etc/vision/server/victorialogs/environment.envк следующему виду:-syslog.listenAddr.tcp=:29514 -syslog.tls=1 -syslog.tlsCertFile=/opt/skala-r/vision/cert/components_default.crt -syslog.tlsKeyFile=/opt/skala-r/vision/cert/components_default.key -syslog.tlsMinVersion=TLS12 -syslog.tlsCipherSuites 'TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256' -syslog.tlsCipherSuites 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384' -syslog.tlsCipherSuites 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'
Настройка шаблонов
Шаблоны настроек rsyslog находятся в директории roles/rsyslog/templates/ и её субдиректориях:
-
main.conf.j2— основные настройки rsyslog; -
mhdo/mhdo_gateway_v1.8_imfile.j2— настройки, специфичные для шлюзов; -
mhdo/mhdo_storage_v1.8_imfile.j2— настройки, специфичные для серверов хранения.
Шаблоны шлюзов и серверов хранения
Рекомендуется использовать шаблоны mhdo_gateway_v1.8_imfile.j2 и mhdo_storage_v1.8_imfile.j2 в том виде, в каком они поставляются в составе дистрибутива.
Если их всё же нужно изменить, сначала создайте их резервную копию.
Шаблон основных настроек
|
Этот шаг обязателен при использовании отказоустойчивого кластера VictoriaLogs. В противном случае делать описанные настройки не обязательно. |
Приведите содержимое файла roles/rsyslog/templates/main.conf.j2 к следующему виду:
{% include "roles/common/templates/warn_header.j2" %}
#module(load="lmnsd_gtls") # auto-load
global(
DefaultNetstreamDriver="gtls"
DefaultNetstreamDriverCertFile="/opt/skala-r/vision/cert/components_default.crt"
DefaultNetstreamDriverKeyFile="/opt/skala-r/vision/cert/components_default.key"
DefaultNetstreamDriverCAFile="{{ vision_home_path }}/cert/victorialogs_ca_file.crt"
)
template(
name="RFC5424WithSD"
type="string"
string="<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% [ filename=\"%$!metadata!filename%\" ] %msg%\n"
)
ruleset(name="forward_to_vision") {
action(
type="omfwd"
Target="127.0.0.1"
Port="29515"
Protocol="tcp"
StreamDriver="gtls"
StreamDriverMode="1"
StreamDriverAuthMode="anon"
Template="RFC5424WithSD"
queue.type="linkedlist"
queue.spoolDirectory="/var/spool/rsyslog"
queue.fileName="remote_forward"
queue.maxDiskSpace="1g"
queue.saveOnShutdown="on"
action.resumeRetryCount="-1"
#gnutlsPriorityString="SECURE128:-VERS-TLS-ALL:+VERS-TLS1.3"
)
stop
}
{% include mhdo_role_template %}
{% for tpl_path in rsyslog.extra_templates %}
{% include tpl_path %}
{% endfor %}
Если для подключения к VictoriaLogs будут использоваться собственные сертификаты, в значениях параметров DefaultNetstreamDriverCertFile и DefaultNetstreamDriverKeyFile укажите пути к файлам сертификата и его ключа соответственно.
Запуск плейбуков
-
Перейдите в директорию дистрибутива.
-
Запустите плейбук
deploy.ymlс инвентарём, содержащим описания шлюзов:ansible-playbook \ -i /path/to/inventory-gateway.yml \ deploy.yml -
Выберите шаблон для шлюзов.
-
Запустите плейбук
deploy.ymlс инвентарём, содержащим описания серверов хранения:ansible-playbook \ -i /path/to/inventory-storage.yml \ deploy.yml -
Выберите шаблон для серверов хранения.