Как можно заранее настроить Zabbix Agent 2 для быстрого развертывания на нескольких компьютерах с Windows, которые не находятся в доменной сети?

Добрый день всем! <br/> У меня возникла задача развернуть систему мониторинга Zabbix для большого количества систем с нуля. Установка и настройка сервера прошла без сложностей, однако возникли проблемы с быстрой установкой агентов, работающих в активном режиме. В документации описанные методы требуют ручного ввода данных о сервере при установке, а также ручного создания правил в брандмауэре, что не подходит для ситуации, когда нужно настраивать десятки рабочих машин. Я изучал документацию версии 7.0, но так и не нашел ясного объяснения о том, как сконфигурировать установщик или выполнить установку через терминал с помощью нескольких команд, используя свою конфигурацию.
  • 10 февраля 2025 г. 9:44
Ответы на вопрос 2
Добрый день! Для автоматизации установки Zabbix Agent 2 на нескольких компьютерах с Windows вне доменной сети вы можете воспользоваться следующими методами:

### 1. Подготовка конфигурационного файла

1. **Создайте конфигурационный файл `zabbix_agent2.conf`** на одном из компьютеров и настройте его согласно вашим требованиям. Важные параметры:
   - `Server` — IP-адрес или доменное имя вашего Zabbix-сервера.
   - `Hostname` — имя данного компьютера в системе мониторинга (можно использовать значение переменной, например, `{HOST.NAME}`).
   - Убедитесь, что `HostMetadata` также задан, если вы используете метаданные для группировки хостов.

### 2. Встраивание конфигурации в процесс установки

Вы можете использовать командную строку для установки Zabbix Agent 2 с указанием собственного конфигурационного файла.

#### Установка через командную строку:

1. **Скачайте установочный пакет Zabbix Agent 2** для Windows в формате `.msi` или `.zip`.
2. Если вы используете `.msi`, можете установить агент через командную строку следующим образом:

   ```shell
   msiexec /i zabbix_agent2-*.msi /qn SERVER="<Your_Zabbix_Server_IP>" HOSTNAME="<Host_Name>" /l*v install.log
   ```

   Замените `<Your_Zabbix_Server_IP>` на IP-адрес вашего Zabbix-сервера, а `<Host_Name>` на имя хоста.

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

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

```powershell
New-NetFirewallRule -DisplayName "Zabbix Agent 2" -Direction Inbound -Protocol TCP -LocalPort 10050 -Action Allow
```

Это добавит правило для разрешения входящих подключений на порт 10050, который используется Zabbix Agent 2.

### 4. Автоматизация с помощью PowerShell

Вы можете создать скрипт на PowerShell, который будет выполнять все шаги по установке Zabbix Agent 2 на целевые компьютеры. Пример скрипта:

```powershell
# Установка Zabbix Agent 2
Start-Process msiexec.exe -ArgumentList '/i zabbix_agent2-*.msi /qn SERVER="<Your_Zabbix_Server_IP>" HOSTNAME="<Host_Name>"' -Wait

# Настройка брандмауэра
New-NetFirewallRule -DisplayName "Zabbix Agent 2" -Direction Inbound -Protocol TCP -LocalPort 10050 -Action Allow
```

### 5. Распространение скрипта

- Вы можете разместить скрипт на общедоступном ресурсе (например, в сетевой папке) или использовать инструменты, такие как PsExec, для удаленного выполнения на целевых машинах.
  
- В случае использования групповых политик (GPO) в специализированных сценариях, можно развернуть скрипт через GPO для автоматической установки на нужные компьютеры, хотя этот метод требует, чтобы хотя бы одна машина была в домене.

### Заключение

Такая автоматизация позволит вам быстро и без ручного вмешательства установить и настроить Zabbix Agent 2 на нескольких рабочих машинах с Windows. Обязательно протестируйте скрипт на одной машине перед развертыванием на всех компьютерах, чтобы убедиться, что все работает правильно.
Приличное количество windows-систем + нет домена = страдания на ровном месте 

Пишите костыль на Powershell или юзайте какой-нить Ansible и т. п.
Похожие вопросы