Настройка сбора и приёма логов в VictoriaLogs
Настройки необходимо выполнить как на сервере Визион, так и на узлах.
Настройка Визион.Сервер
Убедитесь, что в конфигурационном файле /opt/skala-r/etc/vision/server/victorialogs/environment.env для переменной 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 и LogWatcher на узлах, используйте плейбук rsyslog_config/deploy.yml, входящий в состав дистрибутива.
Подготовка
Чтобы выполнение плейбука прошло успешно, подготовьте узлы:
-
Убедитесь, что в репозиториях ОС доступны пакеты
rsyslogиrsyslog-gnutls. В ALT Linux понадобится такжеrsyslog-journal.Если пакеты доступны, но не установлены, плейбук попытается их установить.
Если репозитории недоступны, или указанных пакетов в них нет, установите необходимые пакеты вручную.
-
Версия пакета
rsyslogдолжна быть не ниже значения, указанного в переменнойrsyslog_min_version(по умолчанию —8.1901). При необходимости обновите пакет вручную. -
Убедитесь, что в конфигурационном файле
/etc/rsyslog.confприсутствует команда, подключающая конфигурационные файлы из директории/etc/rsyslog.d/:include(file="/etc/rsyslog.d/*.conf" mode="optional") -
Проверьте синтаксис конфигурационного файла
/etc/rsyslog.d/30-vision-vlogs.conf:rsyslogd -N1 -f /etc/rsyslog.d/30-vision-vlogs.confЕсли проверка не будет успешной, убедитесь в наличии модулей
imfile,imjournalи прочих.
Запуск
Для запуска плейбука выполните следующие действия:
-
В UI Визион сформируйте инвентори-файл.
-
Убедитесь, что в инвентори-файле в разделе
victorialogsпеременнойhostприсвоен IP-адрес Визион.Сервер. -
Перейдите в директорию дистрибутива.
-
Запустите плейбук:
ansible-playbook \ --inventory /path/to/inventory rsyslog_config/deploy.yml \ --limit <node1>,<node2>,<node3>,...Здесь:
-
/path/to/inventory— полный путь к инвентори-файлу; -
<node1>,<node2>,<node3>— имена узлов, на которых нужно выполнить настройки. Все перечисленные узлы должны быть одного типа:-
узлы балансировки, шлюзы, gateway;
-
узлы хранения, storage.
-
Подробное описание параметров запуска утилиты
ansible-playbookсм. в документации Ansible. -
-
Выберите шаблон установки, соответствующий типу узлов, перечисленных в значении аргумента
--limit.
Настройка rsyslog для отправки логов через vlagent
Чтобы настроить rsyslog на отправку логов в локальный vlagent, выполните следующие действия:
-
В UI Визион на панели навигации выберите Объекты.
-
На панели Контур выберите нужный ПАК.
-
Выберите вкладку Агенты логов.
-
Нажмите кнопку Конфигурировать агенты.
-
Выберите расположение Proxy.
-
В колонке Установка агента включите чекбоксы для узлов, на которые необходимо установить агенты логов.
-
Нажмите кнопку Сохранить.
-
На узлах в каталоге
/etc/rsyslog.d/создайте конфигурационный файл с расширением.conf, содержащий настройки отправки логов:module( load="imfile" mode="inotify" ) global( DefaultNetstreamDriver="gtls" DefaultNetstreamDriverCAFile="/opt/skala-r/vision/cert/components_default.crt" DefaultNetstreamDriverCertFile="/opt/skala-r/vision/cert/components_default.crt" (1) DefaultNetstreamDriverKeyFile="/opt/skala-r/vision/cert/components_default.key" (2) ) template( name="RFC5424WithSD" type="string" string="<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% [ filename=\"%$!metadata!filename%\" ] %msg%\n" ) input( (3) type="imfile" File="/path/to/logs/*.log" Tag="vsn" (4) Facility="local0" PersistStateInterval="1" addMetadata="on" reopenOnTruncate="on" deleteStateOnFileDelete="on" ) if $syslogtag startswith "vsn" then { (5) action( type="omfwd" Target="127.0.0.1" Port="29515" Protocol="tcp" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/certvalid" #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" (6) ) stop }Здесь:
1 Путь к файлу сертификата. 2 Путь к файлу ключа сертификата. 3 Образец заполнения блока input.4 Тег. 5 Образец заполнения блока action, срабатывающего только дляinputс тегомvsn(указан выше в примере заполнения блокаinput).6 Включение TLS 1.3. Создайте по одному блоку
inputдля каждого шаблона имён файлов логов.Блоки
actionсоздавайте только в том случае, если теги в блокахinputбудут различаться. -
Проверьте корректность конфигурации rsyslog:
rsyslogd -N1 -
Перезапустите службу rsyslog:
systemctl restart rsyslog.service -
Подключитесь к UI VictoriaLogs и убедитесь в наличии логов:
https://<vision_ip>/vision/victorialogs/select/vmuiЗдесь
<vision_ip>— IP-адрес сервера Визион.
Если логи не поступают в хранилище:
-
Проверьте логи rsyslog на наличие ошибок:
journalctl -fu rsyslog -
Проверьте логи агента и прокси vlagent на наличие ошибок:
tail -f /opt/skala-r/var/log/vision/agent/vlagent_agent/vlagent.log tail -f /opt/skala-r/var/log/vision/proxy/vlagent_proxy/vlagent.log