VictoriaLogs: Установка и настройка

Инструкция по установке и настройке VictoriaLogs.

Установка

  • Создать пользователя victoria-logs, а также директории /opt/victoria-logs и /var/lib/victoria-logs:
1
u='victoria-logs'; adduser --system --disabled-login --group --home "/var/lib/${u}" "${u}"; mkdir -p "/opt/${u}" && chown -R "${u}":"${u}" "/opt/${u}"
  • Создать директорию /run/victoria-logs для UNIX-сокета:
1
echo 'd /run/victoria-logs 0755 victoria-logs victoria-logs - -' > '/etc/tmpfiles.d/victoria-logs.conf' && systemd-tmpfiles --create
  • Скачать и распаковать victoria-logs-linux-amd64-*.tar.gz версии v1.51.0 в директорию /opt/victoria-logs:
1
v='v1.51.0'; u='victoria-logs'; d="/opt/${u}"; curl -fSLo "/tmp/${u}-linux-amd64-${v}.tar.gz" "https://github.com/VictoriaMetrics/VictoriaLogs/releases/download/${v}/${u}-linux-amd64-${v}.tar.gz" && tar -xzf "/tmp/${u}-linux-amd64-${v}.tar.gz" -C "${d}" && chown -R "${u}":"${u}" "${d}"

Systemd

  • Создать файл /etc/systemd/system/victoria-logs.service со следующим содержанием:
victoria-logs.service
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[Unit]
Description=VictoriaLogs - High-performance log management and analytics
After=network.target

[Service]
Type=simple
User=victoria-logs
Group=victoria-logs
LimitNOFILE=65536
ExecStart=/opt/victoria-logs/victoria-logs-prod \
  -storageDataPath=/var/lib/victoria-logs \
  -retentionPeriod=30d \
  -syslog.listenAddr.tcp=:29514 \
  -syslog.listenAddr.unix=/run/victoria-logs/victoria-logs.sock
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • Запустить службу victoria-logs.service:
1
systemctl daemon-reload && systemctl enable --now victoria-logs.service

Syslog-NG

  • Включить опцию --no-caps:
1
sed -i 's|#SYSLOGNG_OPTS=|SYSLOGNG_OPTS=|g' '/etc/default/syslog-ng' && systemctl restart syslog-ng.service
  • Перенаправить данные от Syslog-NG в базу данных VictoriaLogs при помощи unix-socket’а /run/victoria-logs/victoria-logs.sock:
1
2
3
4
5
6
7
8
destination d_victoria_logs {
  # syslog('127.0.0.1' transport('tcp') port(29514));
  unix-stream('/run/victoria-logs/victoria-logs.sock' flags(syslog-protocol));
};

log {
  destination(d_victoria_logs);
};