Ad Widget

Collapse

Проверка каналов связи

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Tim.San
    Junior Member
    • Mar 2023
    • 5

    #1

    Проверка каналов связи

    Добрый день.
    Развернул на базе Zabbix agent проверку каналов связи по средствам утилиты iperf3 c удаленных площадок на центр.
    Скопировал на удаленные сервера исполняемый файл iperf3 в каталог c:\Program Files\Zabbix Agent\
    Внес изменения в конфигурационный файл zabbix_agentd.conf
    Code:
    Timeout=30
    UserParameter=iperf.speedtest[*],"c:\Program Files\Zabbix Agent\iperf3.exe" -c $1 -t $2 -f m​
    Перезапусти службу агента.

    На сервер создал шаблон Windows iperf speed test​
    создал item Замер скорости передачи данных (забирает текстовый вывод iperf на zabbix сервер)
    Тип Zabbix агент
    Ключ iperf.speedtest[ip -сервера iperf, количество повторов]
    Тип информации Текст
    Интервал обновления 1d

    Столкнулся с проблемой что все площадки выполняют замер скорости почти одновременно и появляются ошибки iperf3 сервера по занятости процесса. iperf3: error - the server is busy running a test. try again later

    Как можно разнести проверки по времени? Может есть более красивое решение по мониторингу скорости каналов?

    Читал про пользовательские интервалы, пробовал по всякому установить, по прежнему происходит одновременный замер скорости.
  • teddy
    Senior Member
    • Dec 2017
    • 234

    #2
    ну самый простой вариант запускать не iperf а такой батник
    Code:
    @echo off
    set MAX_TIMEOUT=500
    set /a time_wait=(%MAX_TIMEOUT%*%RANDOM%/32768)​ + 1
    timeout  %time_wait%
    "c:\Program Files\Zabbix Agent\iperf3.exe" -c $1 -t $2 -f m​
    что даст задержку опроса от 1сек до 501сек со случайным разбросом. понятно что MAX_TIMEOUT можно увеличивать. все равно вы опрашиваете раз в сутки, +- пару минут погоды не делает.. да и часов наверно тоже.
    да и чтоб это все работало в заббиксе - либо датчик в активный режим, либо траппер. либо вообще результат iperf писать в файл. а датчиком в заббиксе просто этот файл читать.
    Last edited by teddy; 01-04-2023, 21:26.

    Comment

    • Hamardaban
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • May 2019
      • 2713

      #3
      Если каналов для замера небольшое количество - запустите в центре несколько серверов на разных портах. И на клиентах укажите порт к которому подключаться.
      Конечно схема более геморная - но рабочая.

      Comment

      • Tim.San
        Junior Member
        • Mar 2023
        • 5

        #4
        Originally posted by teddy
        ну самый простой вариант запускать не iperf а такой батник
        Code:
        @echo off
        set MAX_TIMEOUT=500
        set /a time_wait=(%MAX_TIMEOUT%*%RANDOM%/32768)​ + 1
        timeout %time_wait%
        "c:\Program Files\Zabbix Agent\iperf3.exe" -c $1 -t $2 -f m​
        что даст задержку опроса от 1сек до 501сек со случайным разбросом. понятно что MAX_TIMEOUT можно увеличивать. все равно вы опрашиваете раз в сутки, +- пару минут погоды не делает.. да и часов наверно тоже.
        да и чтоб это все работало в заббиксе - либо датчик в активный режим, либо траппер. либо вообще результат iperf писать в файл. а датчиком в заббиксе просто этот файл читать.
        Решение я полагаю вполне рабочее, но не исключающее возможность совпадения времени и возникновения ошибки. Дополнительно придется править настройки на всех площадках которых более 25 шт.
        Больше склоняюсь к варианту централизованного запуска psexec для генерации текстового отчета и дальнейшего парсинга этого лог файлика zabbix agent`ом.

        Comment

        • Hamardaban
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • May 2019
          • 2713

          #5
          К стати есть еще вариант - запускать perf3 в режиме сервера на удаленных точках, а статистику снимать подключаясь клиентом из центра......

          Comment

          • Victor Sklyarov
            Senior Member
            • Apr 2016
            • 184

            #6
            Думаю, проблема не только в совпадении времени выполнения, но и в утилизации канала ПД zabbix сервера. По мне, так правильное решение запустить либо по cron, либо из узла zabbix_server по расписанию скрипт на python и пусть он по очереди выполняет iperf на узлах, которые сам же и получит через API по вашим условиям для выборки. А элемент данных сделать типа trap. Прочитали скриптом данные узла, отправили через zaabix_sender, читаем следующий узел.

            Comment

            • teddy
              Senior Member
              • Dec 2017
              • 234

              #7
              Originally posted by Tim.San
              ..... Дополнительно придется править настройки на всех площадках которых более 25 шт.
              .....
              а вот для этого я на bash и немного магии сделал то, чего мне в Zabbix очень не хватало. Контроль за агентами и их конфигами, некий аналог Ansible средствами Zabbix. И теперь Zabbix сам у меня следит за конфигами на удаленных точках и при надобности разливает их из специального репозитория.
              Конечно это имеет смысл если конфиги для точек единообразны. хотя бы на 80%. но обычно так и есть.
              Недостаток - для Linux нужно либо по сертификатам ходить на удаленные точки под рутом, либо, как у меня, вся аутентификация отдана на уровень LDAP.
              Желающим попробовать\посмотреть могу предоставить - пишите на e-mail. Но запускать ПЕРВЫЙ раз очень аккуратно. На тестовых кошечках.

              PS Ansible тоже годится, но он больше заточен под другое.

              Comment

              Working...