25.3. Интеграция с VictoriaLogs #
Интеграция с внешними источниками данных VictoriaLogs используется для чтения журналов, записываемых туда утилитой pgpro-otel-collector.
Интеграция включает в себя компоненты, перечисленные ниже.
- pgpro-otel-collector #
Агент мониторинга, предоставляющий следующую функциональность:
собирает журналы активности с экземпляров СУБД Postgres Pro
отправляет журналы активности в VictoriaLogs
- VictoriaLogs #
Система управления журналами активности, предоставляющая следующую функциональность:
принимает журналы активности от агентов мониторинга
хранит журналы активности согласно внутренним параметрам хранения
предоставляет интерфейс для получения журналов активности
- PPEM #
Система Postgres Pro Enterprise Manager, предоставляющая следующую функциональность:
обращается к системе VictoriaLogs для получения журналов активности экземпляров СУБД
предоставляет пользователю интерфейс мониторинга в виде текстовых данных на основе журналов активности
Процесс интеграции состоит из следующих этапов:
Дополнительная настройка агента не требуется.
25.3.1. Настройка pgpro-otel-collector для 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"}
25.3.2. Проверка наличия журналов в VictoriaLogs #
После настройки отправки журналов из 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"
}25.3.3. Настройка источника данных журналов #
В навигационной панели перейдите в Инфраструктура → Источники данных → Хранилища сообщений.
В правом верхнем углу страницы нажмите Создать хранилище.
Укажите параметры хранилища журналов (помеченные звёздочкой параметры являются обязательными):
Система хранения сообщений: тип системы хранения журналов.
Выберите
VictoriaLogs.Название: уникальное имя хранилища журналов. Например,
VictoriaLogs.URL: сетевой адрес для подключения к хранилищу журналов. Например,
https://victorialogs.example.org/select/logsql/query.Пользователь: уникальное имя пользователя, если используется аутентификация.
Пароль: пароль пользователя, если используется аутентификация.
Описание: описание хранилища журналов.
Сделать источником данных по умолчанию: указывает, следует ли использовать хранилище журналов по умолчанию для всех запросов, связанных с получением журналов активности.
25.3.4. Проверка работы хранилища журналов #
В навигационной панели перейдите в Мониторинг → Журнал сообщений.
Отобразится таблица журналов.
Чтобы сбросить фильтры, нажмите Сбросить всё над таблицей.
Проверьте, что новые журналы активности отображаются в таблице.