Zabbix обновление агентов windows

Установка Zabbix agent на Windows

В нашем примере мы установим агент для Zabbix на Windows в качестве службы, а также сделаем минимальную настройку для отправки данных на сервер.

Загрузка агента

Переходим на страницу загрузки агента Zabbix и выбираем платформу операционной системы (x32 или x64) и версию агента, например:

* помимо этого, мы можем выбрать вариант дистрибутива: с использованием шифрования или нет, а также файл установки — msi пакет или архив. В данном примере мы выбрали версию 5.

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

Ждем окончания загрузки и переходим к установке.

Установка агента

В зависимости от загрузки типа пакета (MSI или архив) будут разные методы установки. Рассмотрим оба.

Установка из MSI-пакета

Это удобный вариант, который позволит установить агента с помощью мастера. Чтобы начать, кликаем дважды по скачанному пакету и в окне приветствия нажимаем Next:

Принимаем лицензионное соглашение, установив галочку I accept the terms in the License Agreement и нажимаем Next:

В следующем окне оставляем имя компьютера, на который устанавливается агент и вводим имя или IP-адрес сервера zabbix, после кликаем по Next:

* в данном примере имя нашего компьютера Windows PC, а сервера — zabbix-server.dmosk.local.

Выбираем компоненты, которые хотим установить — можно просто оставить все по умолчанию и нажимаем Next:

Подтверждаем установку, кликая по Install:

Ждем завершения процесса — агент установлен.

Установка из архива

Данный метод требует дополнительных манипуляций, но с его помощью можно автоматизировать процесс. Мы рассмотрим только установку.

Распаковываем содержимое скачанного архива в каталог, где будут находиться файлы программы, например в C:\Program Files\Zabbix Agent. В итоге, у нас получится:

Открываем WordPad от администратора и в нем открываем конфигурационный файл conf/zabbix_agentd.conf и правим опцию для сервера zabbix — находим строку:

* где zabbix-server.dmosk.local — имя сервера Zabbix.

Теперь открываем командную строку от администратора и выполняем команду для установки агента:

«C:\Program Files\Zabbix Agent\bin\zabbix_agentd.exe» —config «C:\Program Files\Zabbix Agent\conf\zabbix_agentd.conf» —install

* где C:\Program Files\Zabbix Agent — папка, куда мы распаковали архив.

Мы должны увидеть что-то на подобие:

zabbix_agentd.exe [468]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [468]: event source [Zabbix Agent] installed successfully

Теперь открываем службы Windows и находим «Zabbix Agent» — кликаем по ней правой кнопкой мыши и выбираем Запустить:

Настройка брандмауэра

Если в нашей системе работает брандмауэр Windows, необходимо разрешить порт 10050 или приложение zabbix agent.

Для этого переходим в Панель управленияСистема и безопасностьБрандмауэр Windows (или вводим команду control /name Microsoft.WindowsFirewall). Кликаем по ссылке Разрешение взаимодействия с приложением или компонентов в брандмауэре Windows — добавляем наше приложение zabbix_agentd в исключение.

Читайте также:  Efi для mac os catalina

Это же действие можно выполнить в powershell — запускаем ее от администратора и вводим команду:

New-NetFirewallRule -DisplayName «Разрешить приложение Zabbix Agent» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Program «C:\Program Files\Zabbix Agent\bin\zabbix_agentd.exe»

Или мы можем добавить в исключение порт. Это можно сделать также из командной строки poweshell:

New-NetFirewallRule -DisplayName «Разрешить порт 10050 для Zabbix» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 10050

Проверка работы

Чтобы убедиться в работоспособности агента, мы можем зайти на сервер zabbix и выполнить подключение по telnet, например, командой:

telnet 192.168.1.15 10050

* где 192.168.1.15 — IP-адрес компьютера с установленным Zabbix.

Мы должны увидеть

Connected to nr-fs-06.
Escape character is ‘^]’.

.. и через небольшой интервал времени:

Connection closed by foreign host.

Но если агент не запущен или не работает, мы увидим ошибку:

telnet: connect to address . Connection refused

В панели сервера в узлах сети при корректной установке и настройке, мы также должны увидеть доступность компьютера по агенту:

RDP dog

При использовании Zabbix есть небольшая проблемма. Как и многие развивающиеся OpenSource проекты, дистрибутив программы постоянно обновляется, выходят новые версии. Для того, чтобы использовать новые «плюшки» надо обновлять Windows агенты Zabbix. Автоматически они не обновляются. А жаль.

Итак, вопрос как автоматически обновить агент состоит из двух частей:

1. Как автоматически обновить файлы;

2. Как автоматически обновить файлы на всех системах в сети;

Первая часть проблем не составляет. Давненько я не брал в руки WinRar!

Для начала я собрал необходимый набор файлов:

*не сомневаясь в тех кто это читает, все таки, напомню, zabbix_agentd.conf должен содержать Вашу конфигурацию, т.е. его надо взять с рабочей системы. У меня таких 2 — для систем внутри домена и снаружи.

Затем написал cmd- файл, который эти файлы скопирует в нужную папку.

Вообще я этот файл создавал для установки Zabbix-агента, но с минимальными изменениями он справится и с обновлением:

inst.cmd

Осталось только упаковать набор файлов и командный файл в «установщик» дабы проще было его копировать по сети и удаленно запускать. Просто создаем Winrar SFX архив, со следующими параметрами:

Называем это zabbix_agent_int_x64.exe.

Собственно и все.

Не думаю, что данным постом я сорвал покровы со страшных тайн. Пишу больше для себя в копилку.

Тем более, как мне думается, люди использующие и настроившие Zabbix способны и сами написать скрипт.

У нас осталось только проблема, как распространить обновление агента на все наблюдаемые системы.

Пути как минимум два:

В следующей маленькой статье рассмотрим вариант с psexec.

Zabbix Helper Kit и автоматизация обновления Zabbix Agent

Zabbix Helper Kit и автоматизация обновления Zabbix Agent’a должны облегчить жизнь начинающим админам мастдая. ZHK нужно использовать тогда, когда необходимо использовать кастомизируемую энтерпрайз систему мониторинга, но вы испытываете трудности с обновлением непосредственно Заббикс агента, а так же его файлов конфигурации на подконтрольных вам машинах. Собственно избавлению от этих трудностей и будет посвящена серия статей о Zabbix Helper Kit, сей пост – небольшое лирическое отступление.

Что же такое Zabbix?

Эти 6 букв скрывают под собой, для многих новый, дивный мир агент-серверной телеметрии энтерпрайз класса, которой может пользоваться каждый. Прекраснейшая, всеобъемлющая справка на множестве языков. Огромное комьюнити. Открытые исходники. Возможность использовать в продакшене в небольших сетях, просто скачав готовый образ для виртмашины.

Читайте также:  Windows 64 бит не устанавливается

Но есть одно нО

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

Как обычно происходит развёртывание агента на Windows машины:

  1. Админ(ы) пробегают по нескольким десяткам компьютеров, ручками копируют на них агент с конфигом и регистрируют его в системе.
  2. Zabbix Agent и его файл конфигурации разворачиваются через GPO.
  3. Админ(ы) тем или иным способом, к установленному в системе агенту, монтируют сетевую шару с файлом конфигурации и различными скриптами\расширениями, которые заббикс агент подгружает при старте тем самым получая в своё распоряжение новые UserParameters.
  4. Всевозможные psexec и msi решения.

Чем это грозит?

  1. Необходимость добавить новый UserParameter. Изменить файл конфигурации чтобы например добавить запасной сервер или включить забытые изначально, активные проверки. Обновление агента. Любая подобная операция приводит к повторному забегу по всем компьютерам.
  2. Необходимость ждать пока обновятся групповые политики. Теоретически возможные проблемы если сеть построена на основе линуксовых AD DC. Невозможность работы с компьютерами не входящими в домен вообще. Геморрой с обновлением агента или применением изменений в его настройках, до момента повторной отработки групповых политик.
  3. Если в момент запуска агента шара не будет доступна, агент не запустится. Когда шара сменит свой адрес – повторный забег по всем компьютерам. Ну и исходя из этого, если шара перестала работать в процессе работы агента, мы лишаемся телеметрии.
  4. Не такой стандартизированный метод как например GPO, но самый гибкий из всех. Потенциальные проблемы ограничиваются лишь фантазией человека занимающегося конкретной реализацией.

Какой самый общий недостаток?

  1. Во-первых, проблема с регулярной, централизованной и единовременной доставкой обновлений как самого агента, так и его конфигурации с расширениями.
  2. Во-вторых, даже если мы доставили обновление конфигурации и расширений агента, они не вступят в силу до его перезапуска.
  3. В третьих, мы не можем обновить агент не остановив службу.

Как должно выглядеть идеальное решение?

  1. Zabbix Agent со всеми файлами должен храниться на наблюдаемой машине.
  2. Обновление агента и его файлов не должно влиять на работу системы.
  3. Агент должен запускаться вне зависимости от наличия у машины соединения с сетью.
  4. Первоначальная установка агента должна быть максимально проста.
  5. Обслуживание агента должно быть не сложнее его установки.
  6. Необходима изменять конфигурацию агента и расширять его функционал на лету.
  7. Самым важным из всего, я бы отметил возможность делать всё вышеперечисленное не отрывая задницы от кресла, калории ведь не казённые, надо экономить.

Встречайте! Zabbix Helper Kit!

Собственно это набор утилит написанных на языке AutoIt, разрабатываемый мною и используемый в сфере коммерческой эксплуатации Zabbix на протяжение многих лет. Поэтому он предназначен для решения всех проблем обслуживания Zabbix Agent Windows и еще чуть-чуть. Основной его целью является упрощение превращения Zabbix в средство управления инфраструктурой предприятия. В один прекрасный день я решил начать с нуля, систематизировать код, провести рефакторинг и опубликовать исходники для свободного использования.

Читайте также:  Vostro 15 3568 windows

Что умеет Zabbix Helper Kit на момент написания статьи:

  1. Выкачивать из указанного в настройках репозитория (FTP сервера):
    • Zabbix Agent в зависимости от битности OS Windows.
    • Файл конфигурации агента.
  2. Устанавливать Zabbix Agent как сервис мастдая.
  3. Создавать правило для него в брандмауэре Windows.
  4. Записвывать в брандмауэр правило для себя.
  5. Запиливаться в планировщик задач и запускаться каждый час:
    • Если компьютер в домене то имени заданной учётной записи.
    • Если в рабочей группе то от имени системы.
  6. Сравнивать локальную версию репозитория с удалённой.
  7. В случае обнаружения в репозитории новой версии, скачивать содержимое репозитория к себе в папку.
  8. Останавливать Zabbix Agent, применять скачанные обновления и запускать его снова.

Реализовывает весь описанный функционал утилита Zabbix Helper Updater.

Zabbix Helper Kit скачать

Распространяется Zabbix Helper Kit через GitHub в виде исходников AutoIt и в будущем в виде скомпилированных exe файлов. Для работы необходим FTP сервер. Так же необходимо для скомпилированных файлов прописывать исключения в антивирусах.

Деплой Zabbix-агентов на большое количество Windows-based серверов с помощью Powershell

Добрый день!
Недавно передо мной встала задача — быстро установить большое количество Zabbix-агентов на Windows-сервера.
Я решил, что это можно и нужно решать с помощью скриптов. В качестве «языка» я выбрал любимый мной (и не только мной!) Powershell.
Небольшой мануал Вы найдете под катом!

Powershell v2.0+ предлагает очень удобные средства удаленного запуска (Powershell Remoting) и я бы с удовольствием использовал бы их, но в моем случае имелась одна проблема — на «пути» могли попадаться сервера с Windows Server 2003 (без необходимых апдейтов), поэтому я принял решение использовать psexec.exe

Мне нужно было максимально автоматизированное решение, поэтому я писал такой скрипт, в который я загружаю список DNS-имен серверов из файла, а на выходе получаю XML-файл для импорта в Zabbix.

Первое, что нам надо сделать, это положить на общий ресурс папку (\\server\share\DeployZabbix), в которой будут:
1) Файл агента для x86-систем (zabbix_agentd86.exe)
2) Файл агента для x64-систем (zabbix_agentd64.exe)
3) Файл конфигурации zabbix_agentd.conf (в котором нужно указать хотя бы адрес/DNS-имя Zabbix-сервера)
4) 2 батника, Install86.bat и Install64.bat со следующим содержанием:
Install86.bat:

Второе, что нам потребуется, это папка, в которой будет лежать скрипт для разворачивания агентов, и все необходимое для его работы:
1) Собственно, сам скрипт DeployZabbix.ps1 (о нем ниже)
2) Три .txt-файла (Source1.txt, Source2.txt, Source3.txt) — это «куски» .xml файла, который получится на выходе. Не забудьте заменить группу «Default» на нужную Вам в тексте!

3) Собственно, сам psexec.exe (взять его можно отсюда)
4) Файл computers.csv, в котором FQDN-имена серверов идут каждый с новой строчки.

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

Можно еще добавить строчки, чтобы скрипт убирал ненужные файлы, но т.к. они весят меньше 1Мб, я заморачиваться не стал.

Затем, получившийся .xml-файл (который будет лежать в каталоге со скриптом) импортируем в список хостов в Zabbix.

Вот, собственно, и все. Надеюсь данный туториал будет хоть кому-нибудь полезен.

Оцените статью