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

В данном разделе приведены возможные проблемы при установке, обновлении или работе R-Vision SIEM и способы их решения.

Longhorn: ошибка конфигурации

Версия R-Vision SIEM: 1.0.0 и выше. Должен быть установлен провайдер хранилища Longhorn.

Проявление: при установке или обновлении системы возникает ошибка Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[kube-api-access scripts data config tz]: timed out waiting for the condition.

Причина: некорректные настройки Longhorn или на узлах кластера не запущена служба iscsid.

Решение:

  1. Проверьте настройки Longhorn. Для этого выполните следующие действия:

    1. Осуществите проброс портов. Для этого выполните на хосте с сетевым доступом к управляющему узлу кластера следующую команду:

      kubectl -n longhorn-system port-forward service/longhorn-frontend <local_port>:80

      Здесь:

      • <local_port> — порт на хосте, по которому будет осуществляться доступ к Longhorn.

    2. В браузере откройте URL localhost:<local_port>, где <local_port> — порт с предыдущего шага. Отобразится панель управления Longhorn.

    3. Чтобы просмотреть и отредактировать конфигурацию узлов (реплик) Longhorn, перейдите в раздел Node.

    4. Если количество узлов Longhorn больше, чем количество рабочих узлов кластера, удалите лишние узлы. Для этого нажмите на кнопку Remove Node в выпадающем меню в столбце Operation для каждого из лишних узлов.

    5. Для каждого узла Longhorn проверьте, не превышает ли объем выделенного ему пространства размер диска узла кластера:

      1. В выпадающем меню в столбце Operation нажмите на кнопку Edit node and disks.

      2. Если в поле Storage Reserved выделено больше пространства, чем размер диска узла кластера, уменьшите размер пространства и нажмите на кнопку Save.

        Рекомендуется выделять под Longhorn 30% диска узла кластера.
  2. Если исправление конфигурации Longhorn не решило проблему, проверьте, запущена ли служба iscsid на всех узлах кластера:

    1. На каждом узле кластера выполните команду:

      systemctl status iscsid
    2. Если статус службы отличается от active (running), запустите ее:

      systemctl start iscsid

Loki: не работает loki-gateway

Версия R-Vision SIEM: ниже 2.0.0.

Проявление: ошибка при просмотре логов коллектора в интерфейсе:

Не удалось получить логи коллектора.
connect ECONNREFUSED <...>

В логах пода loki-gateway отображается ошибка:

host not found in resolver "coredns.kube-system.svc.cluster.local." in /etc/nginx/nginx.conf:33

Причина: чарт Loki по умолчанию использует имя coredns для конфигурации разрешения имен пода loki-gateway, однако в кластере может использоваться другое имя для сервиса DNS — например, kube-dns.

В системе версии 2.0.0 и выше данный параметр определяется автоматически, но при обновлении с более старой версии проблема может воспроизводиться, поэтому перед обновлением следует ее устранить.

Решение: нужно исправить конфигурацию сервиса loki-gateway. Для этого:

  1. Получите фактическое имя DNS-сервиса:

    K8S_DNS_SERVICE="$(kubectl get service -n kube-system -l k8s-app=kube-dns -o 'jsonpath={.items..metadata.name}')"
  2. Получите конфигурацию loki-gateway:

    LOKI_CONFIG="$(get cm loki-gateway -n kube-prometheus-stack -o 'jsonpath={.data.nginx\.conf}')"
  3. Сравните имена DNS-сервисов:

    echo "K8s DNS: $K8S_DNS_SERVICE"
    echo "Loki DNS: $(echo "$LOKI_CONFIG" | grep resolver)"
    Пример вывода имен DNS-сервисов
    K8s DNS: kube-dns
    Loki DNS: resolver coredns.kube-system.svc.cluster.local.;

    Если в выводе имена сервисов разные, перейдите к шагу 4.

  4. Откройте карту конфигурации loki-gateway:

    KUBE_EDITOR=nano kubectl edit configmap/loki-gateway -n kube-prometheus-stack

    Замените имя DNS-сервиса coredns после resolver на значение переменной K8S_DNS_SERVICE. После исправления строка карты конфигурации должна принять вид:

    resolver <dns_name>.kube-system.svc.cluster.local.;

    Здесь:

    • <dns_name> — имя DNS-сервиса Kubernetes, полученное на шаге 3, например, kube-dns.

  5. Сохраните файл и перезапустите loki-gateway:

    kubectl rollout restart deployment/loki-gateway -n kube-prometheus-stack

Сбой при обновлении c версии ниже 2.3.0

Версия R-Vision SIEM: ниже 2.3.0.

Проявление: сбой при обновлении системы с версии ниже 2.3.0.

Решение:

  1. Удалите метаданные модулей, которые успели развернуться до сбоя:

    kubectl get cm -n <namespace> -o name | grep release-info | xargs -n1 -t kubectl delete -n <namespace>
  2. Запустите обновление повторно без распаковки дистрибутива:

    export PATH=$PATH:/opt/r-vision/common/bin
    evoctl instance update -v