Устранение проблем при ретроспективной обработке событий

В данном разделе приведены возможные проблемы при ретроспективной нормализации или корреляции событий и способы их решения.

Ошибка отсутствия драйвера в логах коллектора

Проявление: в логах коллектора отображается ошибка, сообщающая об отсутствии подходящего драйвера для строки подключения:

No suitable driver found for jdbc:es://IP:9200

Причина: коллектор был запущен до завершения процесса синхронизации нового драйвера базы данных с узлами кластера.

Решение:

  1. Убедитесь, что новый драйвер загружен в систему, одним из следующих способов:

    • Через командную строку

    • Через Lens

    1. Подключитесь к терминалу master-узла кластера.

    2. Получите список подов коллекторов, выполнив следующую команду:

      kubectl get pods -A | grep wl.
      Пример вывода команды:
      <namespace>   wl.<collector_id>-col-m-<pod_hash>   2/2   Running   0   12m

      Здесь:

      • <namespace> — пространство имен, в котором установлена система.

      • <collector_id> — идентификатор коллектора.

      • <pod_hash> — уникальный идентификатор пода, генерируемый системой автоматически.

    3. Скопируйте идентификатор коллектора, в котором необходимо проверить наличие драйвера.

    4. Проверьте наличие файла драйвера внутри контейнера коллектора:

      kubectl exec -n <namespace> \
        wl.<collector_id>-col-m-<pod_hash> \
        -c <collector_id>-col-m \
        -- sh -c 'ls /app/java/clickhouse-jdbc-*-all-dependencies.jar 2>/dev/null'

      Здесь:

      • <collector_id> — идентификатор коллектора, полученный на предыдущем шаге.

      • <pod_hash> — уникальный идентификатор пода, генерируемый системой автоматически.

      В выводе команды должен отобразиться загруженный вами JAR-файл, например, clickhouse-jdbc-0.9.8-all-dependencies.jar.

    1. Подключитесь к кластеру с помощью Lens.

    2. В выпадающем меню свойств кластера выберите пункт Workloads → Pods.

    3. Выберите пространство имен, в котором установлена система, в выпадающем списке Select Namespace в правой части экрана. Отобразится таблица подов кластера.

    4. Найдите под коллектора по его идентификатору: wl.<collector_id>-col-m-<pod_hash>.

    5. Откройте терминал контейнера <collector_id>-col-m.

    6. Перейдите в директорию с драйверами:

      cd java/
    7. Выполните команду ls и убедитесь, что в списке присутствует необходимый JAR-файл драйвера.

  2. Перезапустите коллектор. Синхронизация драйвера может занять несколько минут, после чего ошибка должна исчезнуть.

Ошибка при запуске коллектора

Проявление: коллектор завершает работу с ошибкой при запуске. В Lens отображается статус нехватки ресурсов: Insufficient memory.

Причина: нехватка ресурсов на worker-узле для запуска коллектора.

Решение: уменьшите выделяемые ресурсы (RAM и CPU) для коллектора, чтобы он мог быть запущен на доступном worker-узле.

Ошибка memory limit exceeded

Проявление: в логах коллектора и базы данных ClickHouse (/var/log/clickhouse-server/clickhouse-server.err.log) фиксируется ошибка memory limit exceeded:

Code: 241. DB::Exception: (total) memory limit exceeded: would use 3.38 GiB (attempt to allocate chunk of 4.16 MiB bytes), current RSS: 1.01 GiB, maximum: 3.37 GiB. (MEMORY_LIMIT_EXCEEDED)

Причина: при ретроспективной нормализации или корреляции коллектор запрашивает из базы данных ClickHouse слишком большой объем событий за один раз. В результате превышается лимит выделенной памяти для выполнения запроса.

Решение:

  • Вариант 1. Уменьшите количество вычитываемых событий за один запрос в настройках точки входа: в параметрах SQL-запрос и Максимальное количество строк.

  • Вариант 2:

    1. Выделите дополнительный объем ОЗУ для сервера, на котором развернута база данных ClickHouse.

    2. Перезапустите службу базы данных ClickHouse.

Была ли полезна эта страница?

Обратная связь