Ad Widget

Collapse

Massive Agent update

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • blastik
    Junior Member
    • Sep 2011
    • 7

    #1

    Massive Agent update

    Hi Guys,

    Out of curiosity. What method do you use to upgrade linux/windows agents massively?

    Thanks!
  • cmastete
    Junior Member
    • Sep 2021
    • 2

    #2
    Hi,

    I also have the same doubt, is there a possibility to update the zabbix agent on multiple Windows clients using a massive procedure...?

    Example: Update from v5.4.3 to v5.4.4


    Best regard,

    Christian.

    Comment

    • knightwolf8877
      Junior Member
      • Sep 2021
      • 20

      #3
      me too following

      Comment

      • tim.mooney
        Senior Member
        • Dec 2012
        • 1427

        #4
        Any tool that allows you to do configuration management for your systems will handle a simple task like ensuring that version 5.4.4 of the agent is installed and running on your systems.

        At my site, we've been using puppet for configuration management for our Linux systems for several years, so we have puppet code to ensure the zabbix-agent is installed, the service is enabled and running, the agent config file is configured in a certain way, and the firewall on the client is open to access from our Zabbix server. Our puppet code also installs scripts that the agent users for custom items and other client-specific config for the agent.

        For me to update our entire fleet of Linux systems to a new version of the zabbix agent, it's as simple as changing a version string in the config file that models our zabbix agent, and then committing that change to our version control system (e.g. git, subversion, etc.). The next time the puppet agent runs on each client system, it sees that the installed zabbix agent version isn't correct, so it installs the correct version of the package and does a restart of the zabbix-agent service.

        Other Linux configuration management systems like Ansible, Chef, Saltstack, etc. will all be able to achieve the same results.

        For Windows, you might use Microsoft's SCCM, or possibly just group policy, or maybe you look into Microsoft's Desired State Configuration (aka configuration management). Or, you could use one of the opensource configuration management systems that work on both Linux and Windows. Puppet does and it can integrate with Microsoft's DSC. I don't know about Chef or Ansible, but my guess is at least one of them also has at least some Windows support.

        Configuration management can be hard to get started with, and if you're going to go down that road, I recommend you carefully evaluate both what your requirements are and several of the configuration management systems. They all have their pros and cons, and they can be a bit of a moving target. Even more than that, if you work on a team of sysadmins (or a "DevOps" group), you have to get buy-in from all your sysadmins. If you have a team of 6 sysadmins and 5 use your configuration management system and one sysadmin tries to "work around it" or doesn't adopt the configuration management workflow, it will cause a lot of problems.

        Comment

        • MaSch
          Junior Member
          • Mar 2019
          • 14

          #5
          i use windows group policy with installskript for my windows servers

          Comment

          • cyber
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Dec 2006
            • 4807

            #6
            If 5 out of 6 use it and one does not, then all of those 5 should stare at that one until s/he does.. ...

            Comment

            • cmastete
              Junior Member
              • Sep 2021
              • 2

              #7
              Hola,

              al final probé con un script powershell:

              -------------------------------------------------------------------------------------------------------------

              $ServerListFile = "C:\Temp\ServerList.txt"
              $Computers = Get-Content $ServerListFile
              $Sourcefile = "C:\Temp\zabbix_agent2-5.4.9-windows-amd64-openssl.msi"
              foreach ($computer in $computers) {
              $DestinationFolder = "\\$computer\C$\Temp"
              $PingRequest = Test-Connection -ComputerName $Computer -Quiet -Count 1 -ErrorAction SilentlyContinue
              if ($PingRequest -eq $True){
              if (!(Test-Path -path $destinationFolder)) {
              New-Item $destinationFolder -Type Directory
              }
              Copy-Item -Path $sourcefile -Destination $destinationFolder -Force
              Invoke-Command -ComputerName $computer -ScriptBlock {& cmd /c "Msiexec /i C:\Temp\zabbix_agent2-5.4.9-windows-amd64-openssl.msi server=10.10.2.133 sport=10050 rmtcmd=1 /qn"}
              }
              Else {
              Write-Host $Computer Off -ForegroundColor ‘Red’
              }
              }

              -----------------------------------------------------------------------------------------

              Quizás se pueda mejorar.

              Saludos Christian.

              Comment

              Working...