Мониторинг логов PostgreSQL с помощью ClickStack
В этом руководстве показано, как настроить мониторинг PostgreSQL с помощью ClickStack, настроив OTel collector для приёма серверных логов PostgreSQL. Вы узнаете, как:
- Настроить PostgreSQL на вывод логов в формате CSV для структурированного парсинга
- Создать пользовательскую конфигурацию OTel collector для ингестии логов
- Развернуть ClickStack с вашей пользовательской конфигурацией
- Использовать готовую панель мониторинга для визуализации данных из логов PostgreSQL (ошибки, медленные запросы, подключения)
Доступен демонстрационный набор данных с примерами логов, если вы хотите протестировать интеграцию до настройки продуктивного PostgreSQL.
Оценочное время: 10–15 минут
Интеграция с существующим PostgreSQL
В этом разделе описывается настройка вашей существующей инсталляции PostgreSQL для отправки логов в ClickStack путём изменения конфигурации OTel collector в ClickStack.
Если вы хотите протестировать интеграцию логов PostgreSQL до настройки вашей собственной инсталляции, вы можете воспользоваться нашей преднастроенной средой и примером данных в разделе "Demo dataset".
Предварительные требования
- Запущенный экземпляр 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.
После внесения этих изменений перезапустите PostgreSQL:
Проверьте, что логи записываются:
Создайте пользовательскую конфигурацию OTel collector
ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector путём монтирования пользовательского конфигурационного файла и установки переменной окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, которой управляет HyperDX через OpAMP.
Создайте файл postgres-logs-monitoring.yaml со следующей конфигурацией:
Эта конфигурация:
- Считывает CSV‑логи PostgreSQL из стандартного расположения
- Обрабатывает многострочные записи логов (ошибки часто занимают несколько строк)
- Разбирает формат CSV со всеми стандартными полями журнала PostgreSQL
- Извлекает временные метки, чтобы сохранить исходное время логов
- Добавляет атрибут
source: postgresqlдля последующей фильтрации в HyperDX - Направляет логи в экспортер ClickHouse через отдельный pipeline
- Определяйте новые приёмники и конвейеры только в пользовательской конфигурации
- Процессоры (
memory_limiter,transform,batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — достаточно просто ссылаться на них по имени - Оператор
csv_parserизвлекает все стандартные поля CSV‑логов PostgreSQL и преобразует их в структурированные атрибуты - Эта конфигурация использует
start_at: end, чтобы избежать повторного приёма логов при перезапуске коллектора. Для тестирования измените наstart_at: beginning, чтобы сразу увидеть ранее собранные логи. - Измените путь в параметре
includeтак, чтобы он соответствовал расположению каталога журналов PostgreSQL
Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
- Смонтируйте файл пользовательской конфигурации по пути
/etc/otelcol-contrib/custom.config.yaml - Задайте переменную окружения
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - Смонтируйте директорию с журналами PostgreSQL, чтобы коллектор мог их считывать
Вариант 1: Docker Compose
Обновите конфигурацию развёртывания ClickStack:
Вариант 2: Docker Run (образ «всё в одном»)
Если вы используете универсальный образ с docker run:
Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов журналов PostgreSQL. В production-среде используйте монтирование только для чтения (:ro) и следуйте принципу минимальных привилегий.
Проверка логов в HyperDX
После настройки войдите в HyperDX и убедитесь, что журналы поступают:
- Перейдите на экран поиска
- Установите параметр Source в значение Logs
- Отфильтруйте по
source:postgresql, чтобы увидеть логи, относящиеся к PostgreSQL - Вы увидите структурированные записи журнала с полями
user_name,database_name,error_severity,message,queryи т. д.


Демонстрационный набор данных
Для пользователей, которые хотят протестировать интеграцию логов PostgreSQL перед настройкой производственных систем, мы предоставляем образец набора данных с заранее сгенерированными логами PostgreSQL с реалистичными шаблонами.
Создание тестовой конфигурации коллектора
Создайте файл с именем 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 часов для более наглядных визуализаций.


Дашборды и визуализация
Чтобы помочь вам начать мониторинг PostgreSQL с помощью ClickStack, мы предоставляем основные визуализации для логов PostgreSQL.
Импорт готового дашборда
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу в меню с многоточием

- Загрузите файл
postgresql-logs-dashboard.jsonи нажмите Finish Import

Просмотр дашборда
Дашборд будет создан со всеми преднастроенными визуализациями:

Для демонстрационного набора данных установите диапазон времени 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC) (скорректируйте с учётом вашего часового пояса). Импортированный дашборд по умолчанию не будет иметь заданного диапазона времени.
Устранение неполадок
Пользовательская конфигурация не загружается
Убедитесь, что задана переменная окружения:
Убедитесь, что пользовательский конфигурационный файл смонтирован и доступен для чтения:
В HyperDX не отображаются логи
Проверьте, что в итоговую конфигурацию включён ваш приёмник filelog:
Проверьте наличие ошибок в логах коллектора:
Если вы используете демонстрационный набор данных, убедитесь, что файл журнала доступен:
Дальнейшие шаги
После настройки мониторинга логов PostgreSQL:
- Настройте оповещения для критических событий (сбоев подключения, медленных запросов, всплесков ошибок)
- Коррелируйте логи с метриками PostgreSQL для всестороннего мониторинга базы данных
- Создавайте пользовательские дашборды для характерных для приложения шаблонов запросов
- Настройте
log_min_duration_statementдля выявления медленных запросов с учётом ваших требований к производительности
Использование в продакшене
Это руководство опирается на встроенный в ClickStack OpenTelemetry Collector для быстрой первичной настройки. Для продакшен-развертываний мы рекомендуем запускать собственный OTel Collector и отправлять данные на OTLP-эндпоинт ClickStack. См. раздел Отправка данных OpenTelemetry для настройки продакшен-среды.