Перейти к основному содержанию
ВкратцеСобирайте и визуализируйте серверные журналы Redis в ClickStack с помощью приёмника OTel filelog. Включает демо-набор данных и преднастроенную панель мониторинга.

Интеграция с существующим Redis

В этом разделе описано, как настроить существующую установку Redis для отправки журналов в ClickStack, изменив конфигурацию коллектора ClickStack OTel. Если вы хотите протестировать интеграцию с Redis перед настройкой собственной среды, вы можете воспользоваться нашей предварительно настроенной средой и примерами данных в разделе “Демо-набор данных”.

Предварительные требования

  • Запущенный экземпляр ClickStack
  • Установленный Redis (версии 3.0 или новее)
  • Доступ к файлам журнала Redis
1

Проверьте настройки логирования Redis

Сначала проверьте настройки логирования Redis. Подключитесь к Redis и проверьте расположение файла журнала:
redis-cli CONFIG GET logfile
Распространённые пути к журналам Redis:
  • Linux (apt/yum): /var/log/redis/redis-server.log
  • macOS (Homebrew): /usr/local/var/log/redis.log
  • Docker: Часто пишутся в stdout, но можно настроить запись в /data/redis.log
Если Redis пишет логи в stdout, настройте запись в файл, обновив redis.conf:
# Запись в файл вместо stdout
logfile /var/log/redis/redis-server.log

# Установить уровень логирования (варианты: debug, verbose, notice, warning)
loglevel notice
После изменения конфигурации перезапустите Redis:
# Для systemd
sudo systemctl restart redis

# Для Docker
docker restart <redis-container>
2

Создайте пользовательскую конфигурацию OTel collector

ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector, смонтировав пользовательский файл конфигурации и задав переменную окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, которой HyperDX управляет через OpAMP.Создайте файл redis-monitoring.yaml со следующей конфигурацией:
receivers:
  filelog/redis:
    include:
      - /var/log/redis/redis-server.log
    start_at: beginning
    operators:
      - type: regex_parser
        regex: '^(?P\d+):(?P\w+) (?P\d{2} \w+ \d{4} \d{2}:\d{2}:\d{2})\.\d+ (?P[.\-*#]) (?P.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%d %b %Y %H:%M:%S'
      
      - type: add
        field: attributes.source
        value: "redis"
      
      - type: add
        field: resource["service.name"]
        value: "redis-production"

service:
  pipelines:
    logs/redis:
      receivers: [filelog/redis]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
Эта конфигурация:
  • Считывает журналы Redis из стандартного расположения
  • Разбирает формат логирования Redis с помощью регулярного выражения, чтобы извлечь структурированные поля (pid, role, timestamp, log_level, message)
  • Добавляет атрибут source: redis для фильтрации в HyperDX
  • Направляет журналы в экспортёр ClickHouse через выделенный конвейер
  • В пользовательской конфигурации вы определяете только новые приёмники и конвейеры
  • Процессоры (memory_limiter, transform, batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — вы просто ссылаетесь на них по имени
  • Оператор time_parser извлекает временные метки из журналов Redis, чтобы сохранить исходное время событий в журнале
  • В этой конфигурации используется start_at: beginning, чтобы считывать все существующие журналы при запуске коллектора, что позволяет сразу увидеть журналы. Для развертываний в продакшн, где нужно избежать повторного приёма журналов при перезапусках коллектора, измените значение на start_at: end.
3

Настройте ClickStack для загрузки пользовательской конфигурации

Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
  1. Смонтировать пользовательский файл конфигурации в /etc/otelcol-contrib/custom.config.yaml
  2. Установить переменную среды CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. Смонтировать каталог логов Redis, чтобы коллектор мог их читать
Вариант 1: Docker Compose
Обновите конфигурацию развертывания ClickStack:
services:
  clickstack:
    # ... существующая конфигурация ...
    environment:
      - CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
      # ... другие переменные окружения ...
    volumes:
      - ./redis-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
      - /var/log/redis:/var/log/redis:ro
      # ... другие тома ...
Вариант 2: Docker Run (образ «всё в одном»)
Если вы используете образ «всё в одном» с Docker, выполните:
docker run --name clickstack \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/redis-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v /var/log/redis:/var/log/redis:ro \
  clickhouse/clickstack-all-in-one:latest
Убедитесь, что у коллектора ClickStack есть необходимые разрешения для чтения файлов журнала Redis. В продакшне используйте монтирование только для чтения (:ro) и придерживайтесь принципа наименьших привилегий.
4

Проверка журналов в HyperDX

После настройки войдите в HyperDX и убедитесь, что журналы поступают:

Демо-набор данных

Для пользователей, которые хотят протестировать интеграцию Redis перед настройкой своих систем в продакшне, мы предоставляем образец данных с заранее сгенерированными журналами Redis, имитирующими реальные паттерны.
1

Скачайте образец данных

Скачайте образец файла журнала:
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-server.log
2

Создайте тестовую конфигурацию коллектора

Создайте файл с именем redis-demo.yaml со следующей конфигурацией:
cat > redis-demo.yaml << 'EOF'
receivers:
  filelog/redis:
    include:
      - /tmp/redis-demo/redis-server.log
    start_at: beginning  # Читать с начала для демонстрационных данных
    operators:
      - type: regex_parser
        regex: '^(?P<pid>\d+):(?P<role>\w+) (?P<timestamp>\d{2} \w+ \d{4} \d{2}:\d{2}:\d{2})\.\d+ (?P<log_level>[.\-*#]) (?P<message>.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%d %b %Y %H:%M:%S'
      
      - type: add
        field: attributes.source
        value: "redis-demo"
      
      - type: add
        field: resource["service.name"]
        value: "redis-demo"

service:
  pipelines:
    logs/redis-demo:
      receivers: [filelog/redis]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
EOF
3

Запустите ClickStack с демонстрационной конфигурацией

Запустите ClickStack с демо-журналами и этой конфигурацией:
docker run --name clickstack-demo \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/redis-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v "$(pwd)/redis-server.log:/tmp/redis-demo/redis-server.log:ro" \
  clickhouse/clickstack-all-in-one:latest
Файл журнала монтируется напрямую в контейнер. Это сделано для тестирования со статическими демонстрационными данными.

Проверьте журналы в HyperDX

После запуска ClickStack:
  1. Откройте HyperDX и войдите в свою учётную запись (возможно, сначала потребуется её создать)
  2. Перейдите в представление Search и выберите Logs в качестве source
  3. Установите временной диапазон 2025-10-26 10:00:00 - 2025-10-29 10:00:00
Отображение часового поясаHyperDX показывает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период 2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC). Широкий временной диапазон гарантирует, что вы увидите демо-журналы независимо от своего местоположения. Когда журналы появятся, вы сможете сузить диапазон до 24 часов для более наглядной визуализации.

Панели мониторинга и визуализации

Чтобы упростить начало мониторинга Redis в ClickStack, мы предоставляем основные визуализации для Redis Logs.
1

конфигурацию панели мониторинга

2

Импорт преднастроенной панели мониторинга

  1. Откройте HyperDX и перейдите в раздел Dashboards.
  2. Нажмите “Import Dashboard” в правом верхнем углу в меню с многоточием.
  1. Загрузите файл redis-logs-dashboard.json и нажмите “Finish Import”.
3

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

Для демо-набора данных установите временной диапазон 2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC) (скорректируйте его в соответствии с вашим часовым поясом). По умолчанию у импортированной панели мониторинга временной диапазон не задан.

Устранение неполадок

Пользовательский config не загружается

Убедитесь, что переменная окружения задана правильно:
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE
# Ожидаемый результат: /etc/otelcol-contrib/custom.config.yaml
Проверьте, что пользовательский файл конфигурации смонтирован:
docker exec <container-name> ls -lh /etc/otelcol-contrib/custom.config.yaml
# Ожидаемый вывод: должен отображать размер файла и разрешения
Просмотрите содержимое пользовательской конфигурации:
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml
# Должен отобразить содержимое файла redis-monitoring.yaml
Проверьте, что эффективная конфигурация содержит ваш ресивер filelog:
docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog
# Должна отображаться конфигурация приёмника filelog/redis

В HyperDX не отображаются журналы

Убедитесь, что Redis записывает журналы в файл:
redis-cli CONFIG GET logfile
# Ожидаемый вывод: должен отображаться путь к файлу, а не пустая строка
# Example: 1) "logfile" 2) "/var/log/redis/redis-server.log"
Проверьте, что Redis активно ведёт логирование:
tail -f /var/log/redis/redis-server.log
# Должны отображаться последние записи журнала в формате Redis
Убедитесь, что коллектор может считывать журналы:
docker exec <container> cat /var/log/redis/redis-server.log
# Должен отображать записи журнала Redis
Проверьте журналы коллектора на наличие ошибок:
docker exec <container> cat /etc/otel/supervisor-data/agent.log
# Ищите сообщения об ошибках, связанных с filelog или Redis
Если вы используете docker-compose, проверьте тома общего доступа:
# Убедитесь, что оба контейнера используют один и тот же том
docker volume inspect <volume-name>
# Убедитесь, что том подключён в обоих контейнерах

Журналы разбираются некорректно

Убедитесь, что формат логирования Redis соответствует ожидаемому шаблону:
# Redis Logs должны выглядеть так:
# 12345:M 28 Oct 2024 14:23:45.123 * Server started
tail -5 /var/log/redis/redis-server.log
Если ваши логи Redis имеют другой формат, вам может потребоваться скорректировать шаблон регулярного выражения в операторе regex_parser. Стандартный формат:
  • pid:role timestamp level message
  • Пример: 12345:M 28 Oct 2024 14:23:45.123 * Server started

Следующие шаги

  • Настройте оповещения для критически важных метрик (уровень ошибок, пороговые значения задержки)
  • Создайте дополнительные панели мониторинга для конкретных сценариев использования (мониторинг API, события безопасности)

Переход к продакшну

В этом руководстве для быстрой настройки используется встроенный в ClickStack OpenTelemetry Collector. Для развертываний в продакшне мы рекомендуем запускать собственный OTel Collector и отправлять данные в конечную точку OTLP ClickStack. См. Отправка данных OpenTelemetry, чтобы настроить конфигурацию для продакшна.
Последнее изменение 10 июня 2026 г.