Мониторинг логов 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 со следующей конфигурацией:
Данная конфигурация:
- Считывает журналы PostgreSQL в формате CSV из стандартного расположения
- Поддерживает многострочные записи логов (ошибки часто занимают несколько строк)
- Разбирает формат CSV со всеми стандартными полями журналов PostgreSQL
- Извлекает временные метки, чтобы сохранить исходное время логов
- Добавляет атрибут
source: postgresql, который можно использовать для фильтрации в HyperDX - Направляет логи в экспортёр ClickHouse через выделенный конвейер обработки
- В пользовательской конфигурации вы задаёте только новые receivers и pipelines
- Процессоры (
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 для настройки продакшен-среды.