Ad Widget

Collapse

Load balancing agent-config настройка

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Kolmik
    Member
    • Jul 2024
    • 56

    #1

    Load balancing agent-config настройка

    Добрый день!
    Перешёл на версию 7.0.0, развернул несколько прокси-серверов для балансировки нагрузки, но возникает вопрос по поводу правильной настройки агентов на хостах, а в частности строчек Server и ServerActive.

    В данной момент имею 3 прокси сервера przb1, przb2, przb3
    Имею группу przb в DNS, которая резолвится как раз в 3 этих сервера.

    В настройках указываю следующее:
    Server=przb
    ServerActive=przb1

    Группа DNS, которая резолвится в 3 прокси - это 100% работает, так как ошибка о запрете доступа с определённого прокси отсутствовала, ради теста выставлял 1 любой из прокси серверов и когда подключение шло с другого - была ошибка, а с группой нет.

    А вот с ServerActive настоящие непонятки. Я вычитал в документации, что например если хост должен работать через przb2, а в конфиге указан przb1, то при первом подключении хоста его перенаправит на нужный прокси, даже если указан не тот, с которым хост должен работать.
    Как всё таки правильно указать? Я боюсь, что если укажу в ServerActive=przb1,przb2,przb3 или ServerActive=przb, то вместо того чтобы работать с одним прокси для активных проверок - данные будут параллельно уходить на все 3 сервера, а мне дублирование данных не нужно.

    ### Option: ServerActive
    # List of comma delimited IPort (or DNS nameort) pairs of Zabbix servers and Zabbix proxies for active checks.
    # If port is not specified, default port is used.
    # IPv6 addresses must be enclosed in square brackets if port for that host is specified.
    # If port is not specified, square brackets for IPv6 addresses are optional.
    # If this parameter is not specified, active checks are disabled.
    # Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
    #
    # Mandatory: no
    # Default:
    # ServerActive=​
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Вопрос, конечно, риторический, но документацию читать не пробовали? Там же всё расписано...

    Параметр "Server=" (для агентов, работающих в пассивном режиме) должен содержать список (через запятую) всех прокси-серверов (IP-адреса либо DNS-имена), через которые может работать агент. В последних версиях можно указывать подсети (в нотации CIDR).

    Параметр "ServerActive=" (для агентов, работающих в активном режиме) должен содержать список (уже не через запятую, а через точку с запятой - ';') прокси-серверов (IP-адреса либо DNS-имена), через которые может работать агент. В идеале - всех, но не обязательно: если он ткнётся на другой прокси-сервер из той же группы, то этот прокси-сервер его перенаправит на нужный. Граничный случай - может быть указан вообще только один прокси; такая конфигурация тоже будет работать (какое-то время); но если агент будет перезапускаться в тот момент, когда этот единственный прокси недоступен, то вполне логично, что об остальных прокси-серверах он не узнает вообще.

    Да, перенаправление на другой прокси работает только для агентов, начиная с версии 7.0 (поскольку кластеризация прокси появилась только в этой версии).

    Comment

    • Kolmik
      Member
      • Jul 2024
      • 56

      #3
      Originally posted by Kos
      Вопрос, конечно, риторический, но документацию читать не пробовали? Там же всё расписано...
      Пробовал(
      Вычитал с самого начала про точку с запятой, но у меня zabbix-agent не хотел стартовать, ругался как раз на эту строчку, к сожалению не помню на обновлённом агенте или на старом.

      Сейчас ещё раз попробовал указать через точку с запятой на некоторых хостах - и всё работает... Не знаю, твёрдо был уверен, что делал это раньше на 7ой версии агента.

      Ну и ещё пользуясь случаем хотел уточнить следующий момент:

      1. Хост назначен на группу прокси, в которую входит 3 прокси-сервера: prx1, prx2, prx3.
      2. В веб-интерфейсе zabbix видно, что zabbix назначил этому хосту prx2.
      3. В ServerActive=prx1;prx2;prx3
      4. В веб-интерфейсе zabbix по этому хосту сообщение, что активные проверки для этого хоста не доступны!
      5. В логе агента следующая строка:

      228:20240711:125850.750 Starting Zabbix Agent [какой-то хост]. Zabbix 7.0.0 (revision 49955f1fb5c).
      228:20240711:125850.750 **** Enabled features ****
      228:20240711:125850.751 IPv6 support: YES
      228:20240711:125850.751 TLS support: NO
      228:20240711:125850.751 **************************
      228:20240711:125850.751 using configuration file: C:\Program Files\Zabbix Agent\bin\zabbix_agentd.conf
      228:20240711:125851.641 agent #0 started [main process]
      6096:20240711:125851.642 agent #2 started[listener #1]
      6492:20240711:125851.642 agent #4 started[listener #3]
      3592:20240711:125851.642 agent #6 started[listener #5]
      3992:20240711:125851.643 agent #8 started[listener #7]
      6744:20240711:125851.643 agent #10 started[listener #9]
      3548:20240711:125851.643 agent #12 started [active checks #1]
      7128:20240711:125851.645 agent #1 started [collector]
      3256:20240711:125851.647 agent #3 started[listener #2]
      2824:20240711:125851.647 agent #5 started[listener #4]
      5320:20240711:125851.647 agent #7 started[listener #6]
      3952:20240711:125851.647 agent #9 started[listener #8]
      5956:20240711:125851.647 agent #11 started[listener #10]
      3548:20240711:125851.650 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125856.665 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125901.686 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125906.692 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125911.697 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125916.702 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125921.708 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125926.714 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found
      3548:20240711:125931.721 no active checks on server [ap-przb-prx1:10051]: host [какой-то хост] not found​

      Дальше следуют танцы с бубнами - 100500 раз перезапускается агент, прокси с группы переназначается на выделенный, потом обратно на группу - начинает работать. Но таким образом отваливается постоянно очень много хостов.

      Последний раз сделал следующее - просто перезагрузил все прокси и о чудо - все хосты после перезагрузки сразу подцепились и активные проверки стали работать. Это значит один из прокси подзалип и из-за него не работало?
      Last edited by Kolmik; 11-07-2024, 12:03.

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Не знаю, что именно там у вас происходило, но из того, что видно из предоставленной вами информации:
        • "В ServerActive=prx1;prx2;prx3", в то же время ответ на активные проверки приходит от "ap-przb-prx1:10051". Что это за имя и почему ответ приходит от него?
        • "host [какой-то хост] not found" говорит о том, что данный сервер или прокси ничего не знает о том, что за хост с именем "какой-то хост". Первая запись лога агента ("Starting Zabbix Agent [какой-то хост].") говорит о том, что агент в самом деле считает, что он запущен на хосте с именем "какой-то хост". У вас этот хост реально так называется? Имя хоста должно точно совпадать (с учётом регистра букв) с "техническим" именем хоста (не путать с видимым именем) в веб-интерфейсе Zabbix.

        Comment

        • Kolmik
          Member
          • Jul 2024
          • 56

          #5
          Originally posted by Kos
          Не знаю, что именно там у вас происходило, но из того, что видно из предоставленной вами информации:
          • "В ServerActive=prx1;prx2;prx3", в то же время ответ на активные проверки приходит от "ap-przb-prx1:10051". Что это за имя и почему ответ приходит от него?
          • "host [какой-то хост] not found" говорит о том, что данный сервер или прокси ничего не знает о том, что за хост с именем "какой-то хост". Первая запись лога агента ("Starting Zabbix Agent [какой-то хост].") говорит о том, что агент в самом деле считает, что он запущен на хосте с именем "какой-то хост". У вас этот хост реально так называется? Имя хоста должно точно совпадать (с учётом регистра букв) с "техническим" именем хоста (не путать с видимым именем) в веб-интерфейсе Zabbix.
          Нет, имена изменены для сокращения, на самом деле ap-przb-prx1;ap-przb-prx2;ap-przb-prx3
          "Какой-то хост" просто как пример, в конфиге agenta у меня: HostnameItem=system.run[powershell -NonInteractive -Command "(gwmi win32_computersystem|%{$_.DNSHOStname+'.'+$_.Domai n}).ToLower()"] что как раз и равно имени хоста + домен. В веб-интерфейсе Zabbix имя узла равно тому, что получается в HostnameItem=

          Comment

          • Kolmik
            Member
            • Jul 2024
            • 56

            #6
            Originally posted by Kos
            Параметр "ServerActive=" (для агентов, работающих в активном режиме) должен содержать список (уже не через запятую, а через точку с запятой - ';') прокси-серверов (IP-адреса либо DNS-имена), через которые может работать агент.
            А в ServerActive нельзя ли какую-то группу DNS прописать, состоящую из нескольких серверов? Чтобы постоянно в конфиг новые сервера через точку с запятой не дописывать...

            Comment

            • Griboed0ff
              Senior Member
              • Sep 2022
              • 153

              #7
              Насколько я понял можно несколько прописать, а далее в случае падения назначенного прокси, сервер перераспределит на другие прокси и нам не нужно всегда добавлять в локальные конфигурации агента новые машины. Я вижу это примерно так, я прописываю всего три прокси в конфиге агентов, а сама группа прокси будет содержать допустим с десяток прокси. Эта конфигурация позволяет не прописывать каждую новую машину в конфиги агентов, так как вряд ли упадут все три прокси, которые прописаны в агенте.

              Comment

              • Griboed0ff
                Senior Member
                • Sep 2022
                • 153

                #8
                Originally posted by Kolmik
                А в ServerActive нельзя ли какую-то группу DNS прописать, состоящую из нескольких серверов? Чтобы постоянно в конфиг новые сервера через точку с запятой не дописывать...
                Нет такой нужды, пропиши просто 3 прокси в конфиге агента, прописывать все прокси из группы кластера не нужно, главное чтобы хотя бы один из трех был доступен, а далее сработает перенаправление на нужный прокси, даже если его нет в конфиге.

                Comment

                • Griboed0ff
                  Senior Member
                  • Sep 2022
                  • 153

                  #9
                  Коллеги, приветствую!

                  Хочу прокомментировать свои предыдущие ответы. После того как я попробовал седьмую версию, пришел к выводу, что моя идея оказалась неверной. Изначально мне казалось, что настроенная группа прокси может эффективно работать с агентом без необходимости добавления новых адресов в конфигурацию.

                  Ситуация следующая: у нас есть три прокси, но в конфигурации агента прописаны только два из них. Когда оба этих прокси отключились, агент переключился на третий прокси, который остался действующим, но его адрес не был указан в конфигурации. Это, казалось бы, отлично, но данные не идут с пассивными проверками.

                  Так что, как я понимаю сейчас, ситуация такова: агент не отвечает на пассивные проверки с прокси, адреса которых отсутствуют в его конфиге, даже если прокси состоит в группе и агент переключился на данный прокси. Он просто переключается на новый прокси, но это не решает проблему получения данных. Я прочитав документацию ранее почему-то подумал, что когда у агента будет информация о всей группе прокси, то он сможет не только переключиться на живую машину, но и дать разрешение наблюдающему прокси как будь-то он состоит в строке и Server. Пока мои тесты показали, что это не так и непонятно почему я подумал, что пассивные проверки будут работать так же как и активные. То есть необходимость прописывать все прокси в конфиг агента для пассивных проверок все же нужно. О чем документация и говорит: For passive checks, all proxies of the group must be listed in the Server parameter of agents.
                  Last edited by Griboed0ff; 18-09-2024, 11:21.

                  Comment

                  • Kolmik
                    Member
                    • Jul 2024
                    • 56

                    #10
                    Originally posted by Griboed0ff
                    Коллеги, приветствую!
                    То есть необходимость прописывать все прокси в конфиг агента для пассивных проверок все же нужно. О чем документация и говорит: For passive checks, all proxies of the group must be listed in the Server parameter of agents.
                    У меня тесты другое показали) У меня 3 прокси, все они добавлены в DNS, так же в DNS для них создана общая запись, которая резолвится как раз в 3 этих прокси.
                    Я никогда в поле Server не указывал список прокси через запятую, только общее dns-имя группы, таким образом всё работает в плане пассивных проверок, на каком бы прокси не оказалась машина.
                    В плане активных проверок использую указание всех прокси серверов через "точку с запятой", что к сожалению является не таким удобным, как использовании общей DNS-записи, так как в случае добавление новых прокси придётся лазать по всем машинам и править конфиги агентов. Да, если судить по документации - можно указать в ServerActive всего 1 прокси-сервер и далее при подключении тачки к нему - если тачка работает с другим прокси, то будет перенаправление на правильный. НО! Если как раз указанный прокси подвис, имеет какие либо проблемы, то такого переключения не будет...

                    Comment

                    Working...