ВкратцеСобирайте и визуализируйте журналы сервера PostgreSQL (в формате CSV) в ClickStack с помощью ресивера OTel
filelog. Включает демо-набор данных и преднастроенную панель мониторинга.Интеграция с существующим PostgreSQL
Предварительные требования
- Запущенный экземпляр ClickStack
- Существующая установка PostgreSQL (версия 9.6 или новее)
- Доступ для изменения файлов конфигурации PostgreSQL
- Достаточно места на диске для файлов журналов
Настройте логирование PostgreSQL
PostgreSQL поддерживает несколько форматов логов. Для структурированного разбора с OpenTelemetry мы рекомендуем формат CSV, который обеспечивает единообразный и пригодный для разбора вывод.Файлpostgresql.conf обычно находится по следующему пути:- Linux (apt/yum):
/etc/postgresql/{version}/main/postgresql.conf - macOS (Homebrew):
/usr/local/var/postgres/postgresql.confили/opt/homebrew/var/postgres/postgresql.conf - Docker: конфигурация обычно задаётся через переменные окружения или смонтированный файл конфигурации
postgresql.conf:В этом руководстве используется формат
csvlog PostgreSQL для надежного структурированного парсинга. Если вы используете форматы stderr или jsonlog, вам потребуется соответствующим образом скорректировать конфигурацию OpenTelemetry Collector.Создайте пользовательскую конфигурацию OTel collector
ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector, смонтировав пользовательский файл конфигурации и задав переменную окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, которой HyperDX управляет через OpAMP.Создайте файл с именемpostgres-logs-monitoring.yaml со следующей конфигурацией:- Считывает CSV-логи PostgreSQL из стандартного расположения
- Обрабатывает многострочные записи журнала (ошибки часто занимают несколько строк)
- Разбирает CSV-формат со всеми стандартными полями журналов PostgreSQL
- Извлекает временные метки, чтобы сохранить исходное время событий в журналах
- Добавляет атрибут
source: postgresqlдля фильтрации в HyperDX - Направляет журналы в ClickHouse exporter через выделенный конвейер
- В пользовательской конфигурации вы определяете только новые приёмники и конвейеры
- Процессоры (
memory_limiter,transform,batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — вы просто ссылаетесь на них по имени - Оператор
csv_parserизвлекает все стандартные поля CSV-журнала PostgreSQL в структурированные атрибуты - Эта конфигурация использует
start_at: end, чтобы избежать повторного приёма журналов при перезапусках коллектора. Для тестирования измените наstart_at: beginning, чтобы сразу увидеть исторические журналы. - Скорректируйте путь
includeв соответствии с расположением каталога журналов PostgreSQL
Настройка ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию collector в уже существующем развертывании ClickStack, необходимо:- Смонтировать файл пользовательской конфигурации в
/etc/otelcol-contrib/custom.config.yaml - Задать переменную окружения
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - Смонтировать каталог с журналами PostgreSQL, чтобы collector мог их читать
Вариант 1: Docker Compose
Обновите конфигурацию развертывания ClickStack:Вариант 2: Docker Run (образ «всё в одном»)
Если вы используете образ «всё в одном» с docker run:Убедитесь, что у коллектора ClickStack есть необходимые разрешения на чтение файлов журналов PostgreSQL. В продакшне используйте монтирование только для чтения (
:ro) и придерживайтесь принципа наименьших привилегий.Проверка журналов в HyperDX
После настройки войдите в HyperDX и убедитесь, что журналы поступают:- Перейдите в представление поиска
- Установите для source значение Logs
- Отфильтруйте по
source:postgresql, чтобы увидеть журналы PostgreSQL - Вы должны увидеть структурированные записи журнала с такими полями, как
user_name,database_name,error_severity,message,queryи т. д.
Демо-набор данных
Создайте тестовую конфигурацию collector
Создайте файлpostgres-logs-demo.yaml со следующей конфигурацией:Запустите ClickStack с демо-конфигурацией
Запустите ClickStack с демо-журналами и этой конфигурацией:Проверьте журналы в HyperDX
После запуска ClickStack:- Откройте HyperDX и войдите в свою учётную запись (возможно, сначала потребуется создать учётную запись)
- Перейдите в представление Search и выберите источник
Logs - Установите временной диапазон 2025-11-09 00:00:00 - 2025-11-12 00:00:00
Отображение часового поясаHyperDX показывает временные метки в локальном часовом поясе вашего браузера. Демо-данные охватывают период 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC). Широкий временной диапазон гарантирует, что вы увидите демо-журналы независимо от своего местоположения. Когда журналы появятся, вы сможете сузить диапазон до 24 часов для более наглядной визуализации.
Панели мониторинга и визуализация
конфигурацию панели мониторинга
Импортируйте преднастроенную панель мониторинга
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу в меню с многоточием
- Загрузите файл
postgresql-logs-dashboard.jsonи нажмите Finish Import
Откройте панель мониторинга
Панель мониторинга будет создана со всеми преднастроенными визуализациями:Для демо-набора данных установите временной диапазон 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC) (скорректируйте его в соответствии с вашим часовым поясом). По умолчанию у импортированной панели мониторинга временной диапазон не задан.
Устранение неполадок
Пользовательская конфигурация не загружается
Журналы не отображаются в HyperDX
Следующие шаги
- Настройте оповещения для критических событий (сбоев соединения, медленных запросов, всплесков ошибок)
- Настройте корреляцию журналов с метриками PostgreSQL для всестороннего мониторинга базы данных
- Создайте пользовательские панели мониторинга для шаблонов запросов, характерных для вашего приложения
- Настройте
log_min_duration_statement, чтобы выявлять медленные запросы в соответствии с вашими требованиями к производительности