Фрагмент архитектурной схемы в разрезе потока логов с узла до хранилища логов VictoriaLogs
Дистрибутив предоставляет следующие компоненты реализующие сбор логов и оповещения на их основе:
- VictoriaLogs - база данных для хранения логов;
- VLagent - компонент сбора логов на узле;
- LogWatcher - компонент, обеспечивающий распаковку сжатых логов .zst формата.
В качестве коллектора логов используется rsyslog. На целевых системах должны присутствовать следующие пакеты:
- rsyslog (версии 8.1901 или выше)
- rsyslog-gnutls
- rsyslog-journal (только Altlinux)
В данной инструкции описано конфигурирование rsyslog для отправки в локально установленный vlagent.
- Необходимо в интерфейсе Визиона перейти во вкладку “Объекты”, выбрать ПАК и перейти на вкладку “Агенты логов”;
- На вкладке “Агенты логов” нажать на кнопку “Конфигурировать агенты”;
-
Выбрать расположение Прокси, а также при помощи чекбоксов выбрать узлы, на которые необходимо установить агенты логов. Нажать на кнопку “Сохранить”;
-
На узлах необходимо сконфигурировать rsyslog для передачи логов в vlagent. Конфигурация для отправки логов в vlagent должна быть записана в виде дополнительного конфигурационного файла, который обычно расположен в директории
/etc/rsyslog.d
.
Ниже приведен пример конфигурационного файла
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" # Путь к сертификату клиента (rsyslog)
DefaultNetstreamDriverKeyFile="/opt/skala-r/vision/cert/components_default.key" # Путь к приватному ключу клиента (rsyslog)
)
template(
name="RFC5424WithSD"
type="string"
string="<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% [ filename=\"%$!metadata!filename%\" ] %msg%\n"
)
input(
type="imfile"
File="/path/to/logs/*.log"
Tag="vsn"
Facility="local0"
PersistStateInterval="1"
addMetadata="on"
reopenOnTruncate="on"
deleteStateOnFileDelete="on"
)
if $syslogtag startswith "vsn" then {
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" # работа с tls1.3
)
stop
}
- Дополнительно необходимо настроить:
-
шаблоны имен файлов для сбора логов по примеру
File="/path/to/logs/*.log"
; -
каждый шаблон оформляется в виде отдельного input действия для отправки логов локально по
tcp
сtls
на порт 29515; -
vlagent по умолчанию работает с
mtls
иtls1.3
, поэтому необходимо обязательно указывать файлы сертификата и ключа клиента, а такжеgnutlsPriorityString
для работы rsyslog поtls1.3
; -
корневой сертификат для vlagent настраивается в конфигурации Визиона в секции
remote_components.log_agent.tls_ca_file
.
-
После настройки необходимо проверить корректность записанной конфигурации с помощью команды:
rsyslogd -N1
. При отсутствии ошибок необходимо перезапустить rsyslog для применения изменений. -
После перезапуска можно проверить поступление логов в VictoriaLogs:
<vision-ip>/vision/victorialogs/select/vmui
, где<vision-ip>
- это адрес установленного экземпляра Визион. -
В случае отсутствия логов в хранилище необходимо проверить логи компонентов на наличие ошибок при помощи выполнения команд:
journalctl -fu rsyslog
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