Устранение проблем при установке или обновлении
В данном разделе приведены возможные проблемы при установке, обновлении или работе 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
.
Решение:
-
Проверьте настройки Longhorn. Для этого выполните следующие действия:
-
Осуществите проброс портов. Для этого выполните на хосте с сетевым доступом к управляющему узлу кластера следующую команду:
kubectl -n longhorn-system port-forward service/longhorn-frontend <local_port>:80
Здесь:
-
<local_port>
— порт на хосте, по которому будет осуществляться доступ к Longhorn.
-
-
В браузере откройте URL
localhost:<local_port>
, где<local_port>
— порт с предыдущего шага. Отобразится панель управления Longhorn. -
Чтобы просмотреть и отредактировать конфигурацию узлов (реплик) Longhorn, перейдите в раздел Node.
-
Если количество узлов Longhorn больше, чем количество рабочих узлов кластера, удалите лишние узлы. Для этого нажмите на кнопку Remove Node в выпадающем меню в столбце Operation для каждого из лишних узлов.
-
Для каждого узла Longhorn проверьте, не превышает ли объем выделенного ему пространства размер диска узла кластера:
-
В выпадающем меню в столбце Operation нажмите на кнопку Edit node and disks.
-
Если в поле Storage Reserved выделено больше пространства, чем размер диска узла кластера, уменьшите размер пространства и нажмите на кнопку Save.
Рекомендуется выделять под Longhorn 30% диска узла кластера.
-
-
-
Если исправление конфигурации Longhorn не решило проблему, проверьте, запущена ли служба
iscsid
на всех узлах кластера:-
На каждом узле кластера выполните команду:
systemctl status iscsid
-
Если статус службы отличается от
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
. Для этого:
-
Получите фактическое имя DNS-сервиса:
K8S_DNS_SERVICE="$(kubectl get service -n kube-system -l k8s-app=kube-dns -o 'jsonpath={.items..metadata.name}')"
-
Получите конфигурацию
loki-gateway
:LOKI_CONFIG="$(get cm loki-gateway -n kube-prometheus-stack -o 'jsonpath={.data.nginx\.conf}')"
-
Сравните имена 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.
-
Откройте карту конфигурации
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
.
-
-
Сохраните файл и перезапустите
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.
Решение:
-
Удалите метаданные модулей, которые успели развернуться до сбоя:
kubectl get cm -n <namespace> -o name | grep release-info | xargs -n1 -t kubectl delete -n <namespace>
-
Запустите обновление повторно без распаковки дистрибутива:
export PATH=$PATH:/opt/r-vision/common/bin evoctl instance update -v