Ad Widget

Collapse

Как на 500+ пк автоматически установить Zabbix агент для Windows.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AleksandrL
    Junior Member
    • Dec 2025
    • 2

    #1

    Как на 500+ пк автоматически установить Zabbix агент для Windows.

    Коллеги, доброго дня.
    Может кто-то подсказать есть ли способ как устанавливать zabbix агент на пк автоматически, а не в ручную на каждую машину и вообще возможно ли это?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3406

    #2
    Зависит от вашей конфигурации. Как правило, в таких больших сетях уже есть какие-то средства автоматизации - например, SCCM, ZENworks или хотя бы домен Active Directory, где можно установить MSI-пакет (ссылка) через доменные политики.

    Comment

    • Diesel315
      Senior Member
      • Jan 2020
      • 159

      #3
      Не очень понятно нужно сразу на все 500 в один момент или вообще просто помаленьку, потихоньку.
      А так можно через powershell скрипт. Либо вручную по одному указывать целевой хост, либо несколько (через запятую), либо файл со списком ПК скормить.

      Доработать под себя:
      Code:
      $CompList=@("comp1","comp2");
      $distr="\\10.64.4.36\Install\Zabbix\Zabbix_agent\*"
      $path="C$\Zabbix_agent"
      
      foreach ($Comp in $CompList){
          #Remote execute commands. Uninstall old version Zabbix-agent
          Invoke-Command -ComputerName $Comp -ScriptBlock {
              #
              $agent="C:\Zabbix_agent\bin\zabbix_agentd.exe"    
              #
              cmd /c "$agent --stop"
              cmd /c "$agent --uninstall"
              }      
          #Remote execute commands. Check directory and create/
          Invoke-Command -ComputerName $Comp -ScriptBlock {    
              #
              $pathLocal="C:\Zabbix_agent"
              #
              If(!(test-path $pathLocal))
                {
                 New-Item -ItemType Directory -Force -Path $pathLocal
                }
              }
          #Copy zabbix files to Comp
          Copy-Item -Path $distr -Destination "\\$Comp\$path" -Recurse -Force
          
          $conf="\\$Comp\$path\conf\zabbix_agentd.conf";
          
          $options="LogFile=C:\Zabbix_agent\logs\zabbix_agentd.log`n"
          $options+="Server=10.64.4.12`n"
          $options+="ServerActive=10.64.4.12`n"
          $options+="Hostname=$Comp`n"
          $options+="Timeout=10"
          $options | Set-Content $conf
      
          #Remote execute commands. Install new version Zabbix-agent                        
          Invoke-Command -ComputerName $Comp -ScriptBlock {    
              #
              $agent="C:\Zabbix_agent\bin\zabbix_agentd.exe"
              #
              $conf="C:\Zabbix_agent\conf\zabbix_agentd.conf"
              #
              cmd /c "$agent --config $conf --install"
              cmd /c "$agent --start"
              New-NetFirewallRule -DisplayName 'zabbix' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 10050
              New-NetFirewallRule -DisplayName 'zabbix' -Profile 'Domain' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 10050
          }
      }




      Comment

      • AleksandrL
        Junior Member
        • Dec 2025
        • 2

        #4
        Спасибо за советы и помощь, буду пробовать.

        Comment

        • Victor Sklyarov
          Senior Member
          • Apr 2016
          • 187

          #5
          PowerShell к сожалению работает на зверинце OS по разному, а на ХР вообще не работает. Проще использовать SMB и RPC
          1. В батнике устанавливаем переменные Password, Login, Address. Нужно учитывать нюансы обращения к доменным компьютерам по логину локального админа или по логину доменного админа.
          2. Узнаём разрядность OS wmic /node:%addr% /user:%login% /password:%Password% OS get OSArchitecture
          Для ХР и 2003 так узнать разрядность нельзя. У меня не было 64 битных ХР, я узнавал только по имени OS get Name
          *лучше в запросах использовать полные пути к пространствам имён WMI, поскольку алиасы далеко не всегда работают
          * чтобы RPC работал нужно разрешить на компьютере административный доступ по сети. Для ХР и Win7 установить в реестре ForceGuest=0, для остальных LocalAccountTokenFilterPolisy=1 Кроме того сеть компьютера должна быть частной (доменной). В общественной сети доступ априори запрещён. К сожалению эти параметры скриптом не выставишь, приходится их выставлять либо при установке ОС, либо по RDP
          3. Подсоединяемся к C$ удалённого компьютера net use \\IP\c$ %Password% /USER:.\%Login%
          * системные разделяемые ресурсы должны быть включены, в противном случае правим в реестре AutoShareWks
          * чтобы это работало в новых версиях ОС должна быть разрешена поддержка SMB HKLM\SYSTEM\CurrentControlSet\Services\Lanmanserve r\Parameters\smbservernamehardeninglevel = 0 Зачастую во всяких embedded OS и в LTS она запрещена.
          * для изменения реестра нужно проверить работу службы RemoteRegistry, если не запущена-запустить. Любые изменения реестра требуют перезагрузки для применения изменений.
          Если соединения нет, нужно для начала проверить, запущен ли lanmanserver wmic .... service where 'name="lanmanserver"' get state и если он остановлен пробовать запустить
          wmic .... service where 'name="lanmanserver"' call Startservice. Если не запустится, проверить конфигурацию запуска. При start=disable запустить не удастся. Нужно установить auto.

          4. копируем файлы zabbix на подсоединённый диск в нужные директории через xcopy. Если канал до удалённого компьютера медленный или нестабильный лучше использовать robocopy
          5 Устанавливаем агента wmic /node:%addr% /user:%login% /password:%Password% process call create 'c:\zabbix\bin\zabbix_agentd -c ... -i'
          6 Запускаем wmic /node:%addr% /user:%login% /password:%Password% process call create 'c:\zabbix\bin\zabbix_agentd -c ... -s' Отключаемся от диска.

          Как видим основная работа будет в подготовке компьютера к взаимодействию по сети. Зато в дальнейшем не будет проблем что-то распространить на настроенные компьютеры. Конечно, для доменных сетей выбор у вас богаче, можно SCCM применять (только ещё нужно следить, что он работает :-) Описанный подход без проблем работает и в доменных сетях.
          Last edited by Victor Sklyarov; Yesterday, 15:33.

          Comment

          Working...