Изменение доменного имени установленного экземпляра SIEM

Чтобы изменить доменное имя уже установленного экземпляра SIEM без потери имеющихся в системе данных, выполните следующие действия с кластером Kubernetes:

  1. Измените имена хостов для объектов Ingress, входящих в кластер:

    1. Получите список объектов Ingress в кластере:

      kubectl get ingress -n <namespace>

      После ключа -n вместо <namespace> укажите имя пространства имен, в котором установлен кластер.

      Пример вывода команды
      NAME                                   CLASS    HOSTS            ADDRESS       PORTS   AGE
      evo.core.bff-bff                       <none>   dev.siem.local   10.0.0.1      80      131d
      evo.core.host-app-host-app             <none>   dev.siem.local   10.0.0.1      80      131d
      evo.core.mf-feed-files                 <none>   dev.siem.local   10.0.0.1      80      131d
      evo.core.mf-feed-mf-feed               <none>   dev.siem.local   10.0.0.1      80      131d
      evo.siem.bff-bff                       <none>   dev.siem.local   10.0.0.1      80      131d
      evo.siem.documentation-documentation   <none>   dev.siem.local   10.0.0.1      80      131d
    2. Отредактируйте имя хоста для каждого объекта Ingress в списке, используя команду:

      kubectl -n <namespace> edit ingress <ingress-name>

      После ключа -n вместо <namespace> укажите имя пространства имен, в котором установлен кластер. Вместо <ingress-name> — имя объекта Ingress, для которого редактируете конфигурацию.

      В открывшемся файле укажите новое доменное имя (вставьте вместо <NEW-DOMAIN-NAME>) как значение ключей:

      • metadata → annotations → nginx.ingress.kubernetes.io/configuration-snippet → more_set_headers → Access-Control-Allow-Origin

      • spec → rules → host

        Если на объекте Ingress установлен TLS-сертификат, также отредактируйте значение ключа spec → tls → hosts.
        apiVersion: networking.k8s.io/v1
        kind: Ingress
        metadata:
          annotations:
            nginx.ingress.kubernetes.io/configuration-snippet: |
              # отредактируйте значение этого ключа
              more_set_headers "Access-Control-Allow-Origin: https://<NEW-DOMAIN-NAME>";
        # ...
        spec:
          rules:
          # отредактируйте значение этого ключа
          - host: <NEW-DOMAIN-NAME>
          # ...
          tls:
          - hosts:
            # если на объекте Ingress установлен TLS-сертификат, отредактируйте значение этого ключа
            - <NEW-DOMAIN-NAME>
            # ...
    3. В пространстве имен kube-prometheus-stack находится объект Ingress kube-prometheus-stack-grafana, для которого аналогичным образом следует отредактировать значения ключей:

      • spec → rules → host

      • spec → tls → hosts (если он существует)

        kubectl -n kube-prometheus-stack edit ingress kube-prometheus-stack-grafana
        Ключ metadata → annotations → nginx.ingress.kubernetes.io/configuration-snippet → more_set_headers → Access-Control-Allow-Origin для объекта kube-prometheus-stack-grafana отсутствует, добавлять его не нужно.
  2. Отредактируйте значения секретов evo.siem.global и evo.core.global, используя команду:

    kubectl -n <namespace> edit secret <secret>

    После ключа -n вместо <namespace> укажите имя пространства имен, в котором установлен кластер. Вместо <secret> укажите сначала evo.siem.global, затем evo.core.global.

    В обоих секретах нужно изменить значения ключей:

    • MODULE_DOMAIN

    • WEB_URL_HTTP

    • WEB_URL_HTTPS

    • WEB_URL_WS

      Пример фрагмента файла секрета, который необходимо отредактировать
      apiVersion: v1
      data:
        MODULE_DOMAIN: dGVzdF9kb21haW4=
        WEB_URL_HTTP: SFRUUDovL1dFQl9VUkxfSFRUUA==
        WEB_URL_HTTPS: SFRUUFM6Ly9XRUJfVVJMX0hUVFA=
        WEB_URL_WS: V1M6Ly9XRUJfVVJMX0hUVFA=
      # ...
      Значения секретов закодированы с помощью base64; новые значения также нужно указывать закодированными.
  3. Перезагрузите приложения (Deployments) кластера:

    1. Получите список Deployments в кластере:

      kubectl get deployment -n <namespace>

      После ключа -n вместо <namespace> укажите имя пространства имен, в котором установлен кластер.

      Пример вывода команды
      NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
      collector-1                      1/1     1            1           11d
      collector-2                      1/1     1            1           142m
      collector-3                      1/1     1            1           33m
      collector-4                      1/1     1            1           4h11m
      collector-audit                  1/1     1            1           42m
      dkron                            1/1     1            1           132d
      evo.core.access                  1/1     1            1           132d
      evo.core.bff                     1/1     1            1           132d
      evo.core.host-app                1/1     1            1           132d
      evo.core.mf-feed                 1/1     1            1           132d
      evo.siem-event-generator         1/1     1            1           111d
      evo.siem.active-list-manager     1/1     1            1           132d
      evo.siem.active-list-record      1/1     1            1           132d
      evo.siem.alert-manager           1/1     1            1           132d
      evo.siem.audit-manager           1/1     1            1           132d
      evo.siem.bff                     1/1     1            1           132d
      evo.siem.collector-manager       1/1     1            1           132d
      evo.siem.comment-manager         1/1     1            1           132d
      evo.siem.cron-service            1/1     1            1           132d
      evo.siem.dashboard-manager       1/1     1            1           132d
      evo.siem.documentation           1/1     1            1           132d
      evo.siem.driver-manager          1/1     1            1           132d
      evo.siem.entity-lookup-manager   1/1     1            1           132d
      evo.siem.entity-relation-manager 1/1     1            1           132d
      evo.siem.event-model-manager     1/1     1            1           132d
      evo.siem.event-storage-manager   1/1     1            1           132d
      evo.siem.expertise-manager       1/1     1            1           132d
      evo.siem.file-manager            1/1     1            1           132d
      evo.siem.integration-manager     1/1     1            1           132d
      evo.siem.ldap-client             1/1     1            1           132d
      evo.siem.log-manager             1/1     1            1           132d
      evo.siem.metric-manager          1/1     1            1           132d
      evo.siem.pipeline-verification   1/1     1            1           132d
      evo.siem.query-log-manager       1/1     1            1           47d
      evo.siem.search                  1/1     1            1           132d
      evo.siem.secret-manager          1/1     1            1           132d
      evo.siem.settings-manager        1/1     1            1           132d
      evo.siem.smtp-client             1/1     1            1           132d
      evo.siem.template-manager        1/1     1            1           132d
      minio                            1/1     1            1           132d
      nats-box                         1/1     1            1           19d
      pgbouncer                        1/1     1            1           132d
      service-orchestrator             1/1     1            1           132d
    2. Перезагрузите те Deployments, для которых менялись настройки Ingress:

      kubectl -n <namespace> rollout restart deployment <deployment-name>

      После ключа -n вместо <namespace> укажите имя пространства имен, в котором установлен кластер. Вместо <deployment-name> — имя (NAME) перезагружаемого Deployment:

      • evo.core.bff

      • evo.core.host-app

      • evo.core.mf-feed

      • evo.siem.bff

      • evo.siem.documentation

    3. Перезагрузите Deployment kube-prometheus-stack-grafana, находящийся в пространстве имен kube-prometheus-stack:

      kubectl -n kube-prometheus-stack rollout restart deployment kube-prometheus-stack-grafana
  4. Обновите конфигурацию сервиса evo.siem.frontend, выполнив следующие команды на машине, на которой запускался инсталлятор SIEM. Вместо <NEW-DOMAIN-NAME> укажите необходимое доменное имя:

    echo '{ "API_WS_URL": "wss://<NEW-DOMAIN-NAME>/api/graphql", "API_URL": "https://<NEW-DOMAIN-NAME>/api/graphql", "GRAFANA_DASHBOARD_URL": "https://<NEW-DOMAIN-NAME>/grafana/public-dashboards/35077e7f648d4fc79e448eaddf2d0ff5?orgId=1", "NOT_ALLOWED_EXPERTISE_TYPES": "configuration_schema,domain,playbook,script" }' > mf_config.json
    
    helm upgrade -i evo.siem.frontend /opt/r-vision/common/helm/r-huc -n <siem-namepsace> --values /opt/r-vision/siem/helm/evo.siem.frontend/values.yaml --set-file extraVars.CONFIG=mf_config.json --set-json='global.ingress.hosts=["<NEW-DOMAIN-NAME>"]'