> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Мониторинг журналов Redis с помощью ClickStack

> Мониторинг журналов Redis с помощью ClickStack

export const TrackedLink = ({href, eventName, children, ...rest}) => {
  const handleClick = () => {
    try {
      if (typeof window !== "undefined" && window.galaxy && eventName) {
        window.galaxy.track(eventName, {
          interaction: "click"
        });
      }
    } catch (e) {}
  };
  return <a href={href} onClick={handleClick} {...rest}>
      {children}
    </a>;
};

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<Info>
  **Вкратце**

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

<div id="existing-redis">
  ## Интеграция с существующим Redis
</div>

В этом разделе описано, как настроить существующую установку Redis для отправки журналов в ClickStack, изменив конфигурацию коллектора ClickStack OTel.
Если вы хотите протестировать интеграцию с Redis перед настройкой собственной среды, вы можете воспользоваться нашей предварительно настроенной средой и примерами данных в разделе ["Демо-набор данных"](/ru/clickstack/integration-examples/redis-logs#demo-dataset).

<div id="prerequisites">
  ### Предварительные требования
</div>

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

<Steps>
  <Step>
    #### Проверьте настройки логирования Redis

    Сначала проверьте настройки логирования Redis. Подключитесь к Redis и проверьте расположение файла журнала:

    ```bash theme={null}
    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`:

    ```bash theme={null}
    # Запись в файл вместо stdout
    logfile /var/log/redis/redis-server.log

    # Установить уровень логирования (варианты: debug, verbose, notice, warning)
    loglevel notice
    ```

    После изменения конфигурации перезапустите Redis:

    ```bash theme={null}
    # Для systemd
    sudo systemctl restart redis

    # Для Docker
    docker restart <redis-container>
    ```
  </Step>

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

    ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector, смонтировав пользовательский файл конфигурации и задав переменную окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, которой HyperDX управляет через OpAMP.

    Создайте файл `redis-monitoring.yaml` со следующей конфигурацией:

    ```yaml theme={null}
    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 через выделенный конвейер

    <Note>
      - В пользовательской конфигурации вы определяете только новые приёмники и конвейеры
      - Процессоры (`memory_limiter`, `transform`, `batch`) и экспортёры (`clickhouse`) уже определены в базовой конфигурации ClickStack — вы просто ссылаетесь на них по имени
      - Оператор `time_parser` извлекает временные метки из журналов Redis, чтобы сохранить исходное время событий в журнале
      - В этой конфигурации используется `start_at: beginning`, чтобы считывать все существующие журналы при запуске коллектора, что позволяет сразу увидеть журналы. Для развертываний в продакшн, где нужно избежать повторного приёма журналов при перезапусках коллектора, измените значение на `start_at: end`.
    </Note>
  </Step>

  <Step>
    #### Настройте 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:

    ```yaml theme={null}
    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, выполните:

    ```bash theme={null}
    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
    ```

    <Note>
      Убедитесь, что у коллектора ClickStack есть необходимые разрешения для чтения файлов журнала Redis. В продакшне используйте монтирование только для чтения (`:ro`) и придерживайтесь принципа наименьших привилегий.
    </Note>
  </Step>

  <Step>
    #### Проверка журналов в HyperDX

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

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/clickstack/redis/redis-log-view.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=2db90758b945faa52f2ae2b74917066c" alt="Представление логов" width="3810" height="1938" data-path="images/clickstack/redis/redis-log-view.png" />

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/clickstack/redis/redis-log.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=3125cd37e21f0e706845cbbf14884884" alt="Log" width="1919" height="969" data-path="images/clickstack/redis/redis-log.png" />
  </Step>
</Steps>

<div id="demo-dataset">
  ## Демо-набор данных
</div>

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

<Steps>
  <Step>
    #### Скачайте образец данных

    Скачайте образец файла журнала:

    ```bash theme={null}
    curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-server.log
    ```
  </Step>

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

    Создайте файл с именем `redis-demo.yaml` со следующей конфигурацией:

    ```yaml theme={null}
    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
    ```
  </Step>

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

    Запустите ClickStack с демо-журналами и этой конфигурацией:

    ```bash theme={null}
    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
    ```

    <Note>
      **Файл журнала монтируется напрямую в контейнер. Это сделано для тестирования со статическими демонстрационными данными.**
    </Note>

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

    После запуска ClickStack:

    1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учётную запись (возможно, сначала потребуется её создать)
    2. Перейдите в представление Search и выберите `Logs` в качестве source
    3. Установите временной диапазон **2025-10-26 10:00:00 - 2025-10-29 10:00:00**

    <Info>
      **Отображение часового пояса**

      HyperDX показывает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC)**. Широкий временной диапазон гарантирует, что вы увидите демо-журналы независимо от своего местоположения. Когда журналы появятся, вы сможете сузить диапазон до 24 часов для более наглядной визуализации.
    </Info>

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/clickstack/redis/redis-log-view.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=2db90758b945faa52f2ae2b74917066c" alt="представление журналов" width="3810" height="1938" data-path="images/clickstack/redis/redis-log-view.png" />

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/clickstack/redis/redis-log.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=3125cd37e21f0e706845cbbf14884884" alt="Log" width="1919" height="969" data-path="images/clickstack/redis/redis-log.png" />
  </Step>
</Steps>

<div id="dashboards">
  ## Панели мониторинга и визуализации
</div>

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

<Steps>
  <Step>
    #### <TrackedLink href={'/ru/examples/redis-logs-dashboard.json'} download="redis-logs-dashboard.json" eventName="docs.redis_logs_monitoring.dashboard_download">Скачать</TrackedLink> конфигурацию панели мониторинга
  </Step>

  <Step>
    #### Импорт преднастроенной панели мониторинга

    1. Откройте HyperDX и перейдите в раздел Dashboards.
    2. Нажмите "Import Dashboard" в правом верхнем углу в меню с многоточием.

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/zXCQbzXFHfeD9FBK/images/clickstack/import-dashboard.png?fit=max&auto=format&n=zXCQbzXFHfeD9FBK&q=85&s=eace17d7f86efbec4d3151bbf428941a" alt="Импорт панели мониторинга" width="3024" height="556" data-path="images/clickstack/import-dashboard.png" />

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

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/clickstack/redis/redis-import-dashboard.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=a425e4ca0177e1e5128b059c41f94763" alt="Завершение импорта" width="3812" height="1906" data-path="images/clickstack/redis/redis-import-dashboard.png" />
  </Step>

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

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

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/clickstack/redis/redis-logs-dashboard.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=baa17353149f9f366ea81df5998e5291" alt="Пример панели мониторинга" width="3812" height="1906" data-path="images/clickstack/redis/redis-logs-dashboard.png" />
  </Step>
</Steps>

<div id="troubleshooting">
  ## Устранение неполадок
</div>

<div id="troubleshooting-not-loading">
  ### Пользовательский config не загружается
</div>

**Убедитесь, что переменная окружения задана правильно:**

```bash theme={null}
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE
# Ожидаемый результат: /etc/otelcol-contrib/custom.config.yaml
```

**Проверьте, что пользовательский файл конфигурации смонтирован:**

```bash theme={null}
docker exec <container-name> ls -lh /etc/otelcol-contrib/custom.config.yaml
# Ожидаемый вывод: должен отображать размер файла и разрешения
```

**Просмотрите содержимое пользовательской конфигурации:**

```bash theme={null}
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml
# Должен отобразить содержимое файла redis-monitoring.yaml
```

**Проверьте, что эффективная конфигурация содержит ваш ресивер filelog:**

```bash theme={null}
docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog
# Должна отображаться конфигурация приёмника filelog/redis
```

<div id="no-logs">
  ### В HyperDX не отображаются журналы
</div>

**Убедитесь, что Redis записывает журналы в файл:**

```bash theme={null}
redis-cli CONFIG GET logfile
# Ожидаемый вывод: должен отображаться путь к файлу, а не пустая строка
# Example: 1) "logfile" 2) "/var/log/redis/redis-server.log"
```

**Проверьте, что Redis активно ведёт логирование:**

```bash theme={null}
tail -f /var/log/redis/redis-server.log
# Должны отображаться последние записи журнала в формате Redis
```

**Убедитесь, что коллектор может считывать журналы:**

```bash theme={null}
docker exec <container> cat /var/log/redis/redis-server.log
# Должен отображать записи журнала Redis
```

**Проверьте журналы коллектора на наличие ошибок:**

```bash theme={null}
docker exec <container> cat /etc/otel/supervisor-data/agent.log
# Ищите сообщения об ошибках, связанных с filelog или Redis
```

**Если вы используете docker-compose, проверьте тома общего доступа:**

```bash theme={null}
# Убедитесь, что оба контейнера используют один и тот же том
docker volume inspect <volume-name>
# Убедитесь, что том подключён в обоих контейнерах
```

<div id="logs-not-parsing">
  ### Журналы разбираются некорректно
</div>

**Убедитесь, что формат логирования Redis соответствует ожидаемому шаблону:**

```bash theme={null}
# 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`

<div id="next-steps">
  ## Следующие шаги
</div>

* Настройте [оповещения](/ru/clickstack/features/alerts) для критически важных метрик (уровень ошибок, пороговые значения задержки)
* Создайте дополнительные [панели мониторинга](/ru/clickstack/features/dashboards/overview) для конкретных сценариев использования (мониторинг API, события безопасности)

<div id="going-to-production">
  ## Переход к продакшну
</div>

В этом руководстве для быстрой настройки используется встроенный в ClickStack OpenTelemetry Collector. Для развертываний в продакшне мы рекомендуем запускать собственный OTel Collector и отправлять данные в конечную точку OTLP ClickStack. См. [Отправка данных OpenTelemetry](/ru/clickstack/ingesting-data/opentelemetry), чтобы настроить конфигурацию для продакшна.
