Настройка получения событий по произвольному порту

Некоторые точки входа, такие как Syslog, позволяют получать события только по портам из определенного диапазона, например, 30000—​32767. Однако, если нет возможности передавать события из внешней системы на порты из этого диапазона, вы можете настроить проксирование трафика через Ingress-контроллер. В таком случае информация о событиях будет перенаправляться из порта, на который она поступает, на порт, который будет использоваться в конвейере обработки событий.

Чтобы настроить проксирование трафика TCP и UDP с данными о событиях, выполните следующие действия:

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

  2. Создайте ConfigMap tcp-services, выполнив следующую команду:

    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: tcp-services
      namespace: <namespace>
    data:
      <tcp_port>: "<namespace>/wl-<collector_id>-collector-main:<entry_point_port>"
    EOF

    Здесь:

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

    • <tcp_port> — порт, с которого перенаправляется TCP-трафик.

    • <collector_id> — идентификатор коллектора, в котором находится точка входа.

      Идентификатор можно посмотреть в поле ID на вкладке Информация в карточке коллектора.
    • <entry_point_port> — порт точки входа, на который необходимо перенаправить TCP-трафик.

  3. Создайте ConfigMap udp-services, выполнив следующую команду:

    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: udp-services
      namespace: <namespace>
    data:
      <tcp_port>: "<namespace>/wl-<collector_id>-collector-main:<entry_point_port>"
    EOF

    Здесь:

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

    • <udp_port> — порт, с которого перенаправляется UDP-трафик.

    • <collector_id> — идентификатор коллектора, в котором находится точка входа.

      Идентификатор можно посмотреть в поле ID на вкладке Информация в карточке коллектора.
    • <entry_point_port> — порт точки входа, на который необходимо перенаправить UDP-трафик.

  4. Добавьте созданные объекты ConfigMap в список аргументов запуска контроллера Nginx, выполнив следующие команды:

    kubectl -n ingress-nginx patch deployment ingress-nginx-controller --type='json' -p='[{"op": "add", "path": "/Pod Template/Containers/controller/Args", "value": "--tcp-services-configmap=<namespace>/tcp-services"}]'
    kubectl -n ingress-nginx patch deployment ingress-nginx-controller --type='json' -p='[{"op": "add", "path": "/Pod Template/Containers/controller/Args", "value": "--udp-services-configmap=<namespace>/udp-services"}]'

    Здесь:

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

  5. Чтобы открыть на прослушивание порты, на которые поступают события из внешней системы, добавьте их в конфигурацию сервиса ingress-nginx-controller:

    1. Создайте файл патча ingress-nginx-svc-controller-patch.yml со следующим содержимым:

      spec:
        ports:
        - name: syslog-tcp
          port: <tcp_port>
        - name: syslog-udp
          port: <udp_port>

      Здесь:

      • <tcp_port> — порт, с которого перенаправляется TCP-трафик.

      • <udp_port> — порт, с которого перенаправляется UDP-трафик.

    2. Примените патч к конфигурации сервиса ingress-nginx-controller, выполнив следующую команду:

      kubectl -n ingress-nginx patch service ingress-nginx-controller --patch "$(cat ingress-nginx-svc-controller-patch.yml)"
  6. Дождитесь, пока поды контроллера Nginx перезапустятся и перейдут в статус Running.

    Чтобы проверить статус подов контроллера Nginx, вы можете выполнить следующую команду:

    kubectl -n ingress-nginx get pods -l app.kubernetes.io/instance=ingress-nginx
  7. Добавьте на конвейер точку входа со следующими свойствами:

    • Тип точки входа: в соответствии с типом внешней системы.

    • Протокол: TCP или UDP.

    • Порт: порт, указанный в значении ключа порта для ConfigMap tcp-services или udp-services, в соответствии с выбранным вами протоколом.

  8. Включите конвейер и убедитесь, что события поступают в систему.

    Если после выполнения вышеперечисленных шагов события не поступают в систему, обратитесь в службу поддержки по адресу support@rvision.ru.

Пример настройки проксирования событий

Рассмотрим следующий пример настройки проксирования трафика для точки входа Syslog:

  • Точка входа находится в коллекторе с идентификатором 20483267-4a08-49b8-8abd-7389c50a805d.

  • TCP-трафик перенаправляется с порта 514 на 30000.

  • UDP-трафик перенаправляется с порта 515 на 30001.

  • Система установлена в пространстве имен Kubernetes evo.

Чтобы настроить проксирование трафика с данными о событиях, выполните следующие действия:

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

  2. Создайте ConfigMap tcp-services, выполнив следующую команду:

    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: tcp-services
      namespace: evo
    data:
      514: "evo/wl-20483267-4a08-49b8-8abd-7389c50a805d-collector-main:30000"
    EOF
  3. Создайте ConfigMap udp-services, выполнив следующую команду:

    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: udp-services
      namespace: evo
    data:
      515: "evo/wl-20483267-4a08-49b8-8abd-7389c50a805d-collector-main:30001"
    EOF
  4. Добавьте созданные объекты ConfigMap в список аргументов запуска контроллера Nginx, выполнив следующие команды:

    kubectl -n ingress-nginx patch deployment ingress-nginx-controller --type='json' -p='[{"op": "add", "path": "/Pod Template/Containers/controller/Args", "value": "--tcp-services-configmap=evo/tcp-services"}]'
    kubectl -n ingress-nginx patch deployment ingress-nginx-controller --type='json' -p='[{"op": "add", "path": "/Pod Template/Containers/controller/Args", "value": "--udp-services-configmap=evo/udp-services"}]'
  5. Чтобы открыть на прослушивание порты, на которые поступают события из внешней системы, добавьте их в конфигурацию сервиса ingress-nginx-controller:

    1. Создайте файл патча ingress-nginx-svc-controller-patch.yml со следующим содержимым:

      spec:
        ports:
        - name: syslog-tcp
          port: 514
        - name: syslog-udp
          port: 515
    2. Примените патч к конфигурации сервиса ingress-nginx-controller, выполнив следующую команду:

      kubectl -n ingress-nginx patch service ingress-nginx-controller --patch "$(cat ingress-nginx-svc-controller-patch.yml)"
  6. Дождитесь, пока поды контроллера Nginx перезапустятся и перейдут в статус Running.

    Чтобы проверить статус подов контроллера Nginx, вы можете выполнить следующую команду:

    kubectl -n ingress-nginx get pods -l app.kubernetes.io/instance=ingress-nginx
  7. Добавьте на конвейер точку входа со следующими свойствами:

    • Тип точки входа: Syslog.

    • Протокол: TCP или UDP.

    • Порт:

      • Если выбран протокол TCP — 30000.

      • Если выбран протокол UDP — 30001.

  8. Включите конвейер и убедитесь, что события поступают в систему.

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

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