Интеграция с внешними источниками данных VictoriaLogs используется для чтения журналов, записываемых туда утилитой pgpro-otel-collector.
Интеграция включает в себя компоненты, перечисленные ниже.
Агент мониторинга, предоставляющий следующую функциональность:
собирает журналы активности с экземпляров СУБД Postgres Pro
отправляет журналы активности в VictoriaLogs
Система управления журналами активности, предоставляющая следующую функциональность:
принимает журналы активности от агентов мониторинга
хранит журналы активности согласно внутренним параметрам хранения
предоставляет интерфейс для получения журналов активности
Система Postgres Pro Enterprise Manager, предоставляющая следующую функциональность:
обращается к системе VictoriaLogs для получения журналов активности экземпляров СУБД
предоставляет пользователю интерфейс мониторинга в виде текстовых данных на основе журналов активности
Процесс интеграции состоит из следующих этапов:
Дополнительная настройка агента не требуется.
Включите и настройте ресивер filelog.
Пример настройки ресивера для сценария, когда журналы PostgreSQL генерируются в формате JSON:
receivers:
filelog:
include:
- /var/log/postgresql/*.json
operators:
- parse_ints: true
timestamp:
layout: '%Y-%m-%d %H:%M:%S.%L %Z'
layout_type: strptime
parse_from: attributes.timestamp
type: json_parser
- field: attributes.timestamp
type: remove
retry_on_failure:
enabled: true
initial_interval: 1s
max_elapsed_time: 5m
max_interval: 30s
start_at: endНастройте процессоры:
processors:
resource:
attributes:
- action: upsert
key: service.name
value: postgresql
- action: upsert
key: service.instance.id
value: postgresql-01.example.org:5432Где:
service.name — ключ для идентификации журналов Postgres Pro.
service.instance.id — ключ для идентификации экземпляра.
Настройте отправку журналов через otlphttpexporter и настройте конвейер:
exporters:
otlphttp/victorialogs:
compression: gzip
encoding: proto
endpoint: https://victorialogs.example.org/insert/opentelemetry/v1/logs
headers:
VL-Stream-Fields: service.name,service.instance.id
tls:
insecure_skip_verify: false
service:
extensions: []
pipelines:
logs:
receivers:
- filelog
processors:
- resource
exporters:
- otlphttp/victorialogsЗапустите коллектор и проверьте публикацию журналов на его стороне:
# systemctl start pgpro-otel-collector
# systemctl status pgpro-otel-collector
● pgpro-otel-collector.service - PostgresPro OpenTelemetry Collector
Loaded: loaded (/lib/systemd/system/pgpro-otel-collector.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-03-20 01:18:08 MSK; 4h 13min ago
Main PID: 6991 (pgpro-otel-coll)
Tasks: 8 (limit: 3512)
Memory: 119.3M
CPU: 2min 49.311s
CGroup: /system.slice/pgpro-otel-collector.service
└─6991 /usr/bin/pgpro-otel-collector --config /etc/pgpro-otel-collector/basic.yml
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.366656,"msg":"Setting up own telemetry..."}
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.367178,"msg":"Skipped telemetry setup."}
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.3679142,"msg":"Development component. May change in the future.","kind":"receiver","name":"postgrespro","data_type":"metrics"}
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"warn","ts":1742422688.3494158,"caller":"envprovider@v1.16.0/provider.go:59","msg":"Configuration references unset environment variable","name":"POSTGRESQL_P>
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.4481084,"msg":"Starting pgpro-otel-collector...","Version":"v0.5.0","NumCPU":1}
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.4481149,"msg":"Starting extensions..."}
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"warn","ts":1742422688.4483361,"msg":"Using the 0.0.0.0 address exposes this server to every network interface, which may facilitate Denial of Service attack>
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.4515307,"msg":"Starting stanza receiver","kind":"receiver","name":"filelog","data_type":"logs"}
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.451749,"msg":"Everything is ready. Begin running and processing data."}
Mar 20 01:18:08 postgresql-01.example.org pgpro-otel-collector[6991]: {"level":"info","ts":1742422688.6523068,"msg":"Started watching file","kind":"receiver","name":"filelog","data_type":"logs","component":"fileconsumer","path":"/var/log/postgresql/postgresql-2025-03-20.json"}После настройки отправки журналов из pgpro-otel-collector убедитесь, что VictoriaLogs получает журналы.
Для проверки можно выполнить запрос к хранилищу с помощью утилиты curl.
Пример запроса:
curl https://victorialogs.example.org/select/logsql/query \ -d query=service.name:postgresql \ -d start=30m \ -d end=now \ -d limit=10
Где:
https://victorialogs.example.org — URL системы хранения журналов.
query=service.name:postgresql — поисковый запрос для выбора всех журналов PostgreSQL.
start=30m и end=now выполняют поиск журналов за последние 30 минут.
limit=10 ограничивает количество возвращаемых журналов.
Пример ответа:
{
"_time":"2026-03-20T17:14:12.153Z",
"log.file.name":"postgresql-2026-03-20.json",
"service.instance.id":"postgresql-01.example.org:5432",
"service.name":"postgresql",
"backend_type":"pg_wait_sampling collector",
"error_severity":"LOG",
"message":"pg_wait_sampling collector started"
}В навигационной панели перейдите в Инфраструктура → Источники данных → Хранилища сообщений.
В правом верхнем углу страницы нажмите Создать хранилище.
Укажите параметры хранилища журналов (помеченные звёздочкой параметры являются обязательными):
Система хранения сообщений: тип системы хранения журналов.
Выберите VictoriaLogs.
Название: уникальное имя хранилища журналов. Например, VictoriaLogs.
URL: сетевой адрес для подключения к хранилищу журналов. Например, https://victorialogs.example.org/select/logsql/query.
Пользователь: уникальное имя пользователя, если используется аутентификация.
Пароль: пароль пользователя, если используется аутентификация.
Описание: описание хранилища журналов.
Сделать источником данных по умолчанию: указывает, следует ли использовать хранилище журналов по умолчанию для всех запросов, связанных с получением журналов активности.
В навигационной панели перейдите в Мониторинг → Журнал сообщений.
Отобразится таблица журналов.
Чтобы сбросить фильтры, нажмите Сбросить всё над таблицей.
Проверьте, что новые журналы активности отображаются в таблице.