Поддержка активности пересылки трафика UDP на один узел через NAT

У меня проблемы с балансировкой нагрузки UDP Syslog для узлов кластера Graylog. Сначала казалось, что все работает нормально, но кажется, что трафик передается на 99% на один из двух узлов.

У меня есть два сервера Ubuntu (18.04) под управлением Keepalived 1.3.9. Они разделяют виртуальный IP-адрес, который используется через VRRP. Они используют NAT для пересылки трафика на реальные серверы на основе циклического перебора.

global_defs {
 notification_email {
     redacted@mail
   }
   notification_email_from severname-redacted
   smtp_server mailsever.redacted
   smtp_connect_timeout 30
   router_id servername
}

vrrp_instance VI_1 {
  state MASTER
  interface ens160
  virtual_router_id 216
  priority 200
  advert_int 1
  preempt_delay 30
  virtual_ipaddress {
    10.18.242.216
  }
  notify /usr/local/bin/vrrp_state.sh
}

virtual_server 10.18.242.216 10514 {
  delay_loop 2
  protocol UDP
  lb_algo rr   # round robin
  lb_kind NAT   # NAT

  real_server 10.18.242.214 10514 {
    weight 1
    HTTP_GET {
      url {
        path "/api/system/lbstatus"
        status_code 200
      }
      connect_timeout 3
      connect_port 9000
    }
  }

  real_server 10.18.242.213 10514 {
    weight 1
    HTTP_GET {
      url {
        path "/api/system/lbstatus"
        status_code 200
      }
      connect_timeout 3
      connect_port 9000
    }
  }
}

Вторичный балансировщик нагрузки использует ту же конфигурацию, за исключением приоритета 100.

Аварийное переключение между балансировщиками нагрузки работает, как и ожидалось, но они, похоже, перенаправляют трафик только на первый узел Graylog:

oot@redacted-lb1:~# ipvsadm -L -n --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
UDP  10.18.242.216:10514                 0       57        0    16581        0
  -> 10.18.242.213:10514                 0       67        0    19666        0
  -> 10.18.242.214:10514                 0        0        0        0        0

Как видите, на вторичный узел Graylog нет трафика, хотя вес равен и мы используем циклический перебор. Некоторые неполадки, которые не сработали:

  • При удалении первого узла из балансировщиков нагрузки вы видите, что трафик все еще поступает на LB, но он не перенаправляется на узел Graylog
    • Изменение веса, кажется, не имеет эффекта
    • Перезагрузка всех серверов
    • Выполнение всех тех же тестов на вторичном LB путем выключения LB1.

Узлы Graylog работают нормально и практически идентичны по конфигурации. Вы можете отправить системный журнал им обоим напрямую, чтобы они не были проблемой.

0 ответов

Другие вопросы по тегам