КраткоСобирайте и визуализируйте логи доступа Nginx (в формате JSON) в ClickStack с помощью приёмника OTel
filelog. Включает демо-набор данных и преднастроенную панель мониторинга.Интеграция с существующим Nginx
Необходимые условия
- Работающий экземпляр ClickStack
- Уже установленный Nginx
- Доступ для изменения файлов конфигурации Nginx
Настройте формат логирования Nginx
Сначала настройте Nginx так, чтобы он выводил логи в формате JSON для более удобного парсинга. Добавьте это определение формата логирования в файлnginx.conf:Файл nginx.conf обычно находится по одному из следующих путей:- Linux (apt/yum):
/etc/nginx/nginx.conf - macOS (Homebrew):
/usr/local/etc/nginx/nginx.confили/opt/homebrew/etc/nginx/nginx.conf - Docker: конфигурация обычно монтируется как том
http:Создайте пользовательскую конфигурацию OTel collector
ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector, подключив собственный файл конфигурации и задав переменную окружения. Эта конфигурация объединяется с базовой конфигурацией, которой HyperDX управляет через OpAMP.Создайте файл nginx-monitoring.yaml со следующей конфигурацией:- Считывает журналы Nginx из стандартных мест
- Разбирает JSON-записи журнала
- Извлекает и сохраняет исходные временные метки журналов
- Добавляет атрибут source: Nginx для фильтрации в HyperDX
- Направляет журналы в экспортёр ClickHouse через выделенный конвейер
- В пользовательской конфигурации вы определяете только новые приёмники и конвейеры
- Процессоры (memory_limiter, transform, batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — вы просто ссылаетесь на них по имени
- Оператор time_parser извлекает временные метки из поля time_local в логах Nginx, чтобы сохранить исходное время журналирования
- Конвейеры направляют данные из ваших приёмников в экспортёр ClickHouse через существующие процессоры
Настройка ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию collector в существующем развертывании ClickStack, необходимо:- Смонтировать пользовательский файл конфигурации по пути /etc/otelcol-contrib/custom.config.yaml
- Задать переменную окружения CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
- Смонтировать каталоги с логами Nginx, чтобы collector мог их читать
Вариант 1: Docker Compose
Обновите конфигурацию развертывания ClickStack:Вариант 2: Docker Run (универсальный образ)
Если вы используете универсальный образ сdocker run:Убедитесь, что у коллектора ClickStack есть необходимые разрешения на чтение файлов журнала nginx. В продакшне используйте монтирование только для чтения (:ro) и придерживайтесь принципа наименьших привилегий.
Проверка журналов в HyperDX
После настройки войдите в HyperDX и убедитесь, что журналы поступают:- Перейдите в представление Search
- В поле source выберите Logs и убедитесь, что видите записи журнала с такими полями, как request, request_time, upstream_response_time и т. д.
Демо-набор данных
Загрузите пример набора данных
- Записи журнала с реалистичным характером трафика
- Различные конечные точки и HTTP-методы
- Сочетание успешных запросов и ошибок
- Реалистичное время ответа и количество переданных байтов
Создайте тестовую конфигурацию коллектора
Создайте файл с именемnginx-demo.yaml со следующей конфигурацией:Запустите ClickStack с демо-конфигурацией
Запустите ClickStack с демо-журналами и этой конфигурацией:Проверьте журналы в HyperDX
После запуска ClickStack:- Откройте HyperDX и войдите в свою учётную запись (возможно, сначала потребуется создать аккаунт)
- Перейдите в представление Search и установите источник
Logs - Установите временной диапазон 2025-10-19 11:00:00 - 2025-10-22 11:00:00
Отображение часового поясаHyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демо-данные охватывают период 2025-10-20 11:00:00 - 2025-10-21 11:00:00 UTC. Широкий временной диапазон гарантирует, что вы увидите демо-журналы независимо от своего местоположения. После этого можно сузить диапазон до 24 часов для более наглядных визуализаций.
Панели мониторинга и визуализация
конфигурацию панели мониторинга
Импортируйте преднастроенную панель мониторинга
- Откройте HyperDX и перейдите в раздел Dashboards.
- Нажмите “Import Dashboard” в правом верхнем углу в меню с многоточием.
- Загрузите файл nginx-logs-dashboard.json и нажмите “Finish Import”.
Панель мониторинга будет создана со всеми уже настроенными визуализациями
Для демо-набора данных установите временной диапазон 2025-10-20 11:00:00 - 2025-10-21 11:00:00 (UTC) (скорректируйте его в соответствии с вашим местным часовым поясом). По умолчанию для импортированной панели мониторинга временной диапазон не задан.
Устранение неполадок
Пользовательская конфигурация не загружается
- Убедитесь, что переменная среды CUSTOM_OTELCOL_CONFIG_FILE задана корректно
- Убедитесь, что файл пользовательской конфигурации смонтирован по пути /etc/otelcol-contrib/custom.config.yaml
- Просмотрите содержимое пользовательской конфигурации, чтобы убедиться, что его можно прочитать
В HyperDX не отображаются журналы
- Убедитесь, что nginx записывает журналы в формате JSON
- Проверьте, что коллектор может читать журналы
- Убедитесь, что действующая конфигурация включает ваш ресивер filelog
- Проверьте журналы collector на наличие ошибок
Следующие шаги
- Настройте оповещения для критически важных метрик (частота ошибок, пороги задержки)
- Создайте дополнительные панели мониторинга для конкретных сценариев использования (мониторинг API, события безопасности)