[comment]: # ({d60be363-d60be363})
# 3. Агент 2

[comment]: # ({/d60be363-d60be363})

[comment]: # ({0f43cc9f-734dc3ed})
#### Обзор

Zabbix агент 2 — новое поколение Zabbix агента, его можно использовать в качестве замены Zabbix агента. Zabbix агент 2 разработан для:

-   уменьшения количества TCP соединений
-   улучшения многопоточности проверок
-   легкого расширения при помощи плагинов. Плагин должен уметь следующее:
    -   обеспечивать простые проверки, состоящие только из нескольких строк кода
    -   обеспечивать сложные проверки, состоящие из длительно выполняемых скриптов и автономного сбора данных с периодической отправкой данных обратно
-   простой замены Zabbix агента (поскольку он поддерживает весь предыдущий функционал)

Agent 2 написан на Go (с частичным использованием C кода из Zabbix агента). Для сборки Zabbix агент 2 требуется подготовленная среда Go с поддерживаемой в настоящее время [версией Go](https://go.dev/doc/devel/release#policy).

Agent 2 не имеет встроенной поддержки режима демона на Linux; его можно запустить в качестве [службы Windows](/manual/appendix/install/windows_agent).

Пассивные проверки работают аналогично Zabbix агенту. Активные проверки поддерживают интервалы по расписанию/гибкие интервалы, к тому же проверки выполняются параллельно в пределах одного активного сервера.

::: noteclassic
По умолчанию, Zabbix agent 2 планирует первый сбор данных по активным проверкам в случайное время в течение интервала времени обновления элемента данных, во избежание скачков в использовании ресурсов. Чтобы активные проверки, у которых отсутствует [интервал обновления](/manual/config/items/item/custom_intervals#интервалы-по-расписанию) *По расписанию*, выполнялись сразу после перезапуска агента, укажите параметр `ForceActiveChecksOnStart` (глобальный уровень) или `Plugins.<ИмяПлагина>.System.ForceActiveChecksOnStart` (влияет только на проверки из конкретного плагина) в [файле конфигурации](/manual/appendix/config/zabbix_agent2). Параметр уровня плагина, если задан, переопределяет собой глобальный параметр. Принудительные активные проверки при запуске агента поддерживаются, начиная с Zabbix 6.0.2. 
:::

**Параллелизм проверок**

Проверки из разных плагинов могут выполняться параллельно. Количество параллельных проверок в пределах одного плагина ограничено настройкой производительности плагина. Каждый плагин может иметь жёстко зашитую в код настройку производительности (по умолчанию, 100), значение которой можно уменьшить, указав `Plugins.<ИмяПлагина>.System.Capacity=N` при настройке [параметра](#файл-конфигурации) конфигурации *Plugins*. Прежнее название этого параметра `Plugins.<ИмяПлагина>.Capacity` всё ещё поддерживается, но устарело с версии Zabbix 6.0.

Смотрите также: [Методические указания по разработке плагинов \[en\]](https://www.zabbix.com/documentation/guidelines/en/plugins).

[comment]: # ({/0f43cc9f-734dc3ed})

[comment]: # ({de756dcf-a2064519})
#### Поддерживаемые платформы

Zabbix агент 2 поддерживается на следующих платформах:

-   Windows (все настольные и серверные версии, начиная [с Windows 10/Server 2016](/manual/installation/requirements#поддерживаемые-платформы)) — доступно в виде [предварительно скомпилированных бинарных файлов](https://www.zabbix.com/download_agents?version=6.0+LTS&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=MSI&show_legacy=0) либо в виде [исходных кодов Zabbix](https://www.zabbix.com/download_sources#60LTS)
-   Linux — доступно в виде [дистрибутивных пакетов](https://www.zabbix.com/download?zabbix=6.0&os_distribution=alma_linux&os_version=9&components=agent_2&db=&ws=) либо в виде [исходных кодов Zabbix](https://www.zabbix.com/download_sources#60LTS)

::: noteimportant
Начиная с Zabbix 6.0.35, пакеты агента Zabbix 2 больше не доступны для [RHEL 6](https://repo.zabbix.com/zabbix/6.0/rhel/6/x86_64/) из-за несовместимости Go 1.22 (и новее) с GCC 4.4.7, предоставляемым RHEL 6, что приводит к ошибкам компиляции.
Однако, следует отметить, что [пакеты агента Zabbix](/manual/installation/install_from_packages/rhel) по-прежнему поддерживаются.
:::

[comment]: # ({/de756dcf-a2064519})

[comment]: # ({196fd4de-cabc0f5f})
#### Установка

Для установки Zabbix агента 2 доступны следующие варианты:

Windows:

-   из заранее скомпилированных бинарных файлов — загрузите бинарные файлы и следуйте инструкции на странице [установки агента Windows из пакетов MSI](/manual/installation/install_from_packages/win_msi)
-   из исходных кодов — смотрите [Сборка Zabbix агента 2 на Windows](/manual/installation/install/building_zabbix_agent_2_on_windows)

Linux:

-   из дистрибутивных пакетов — следуйте инструкциям на странице [пакетов Zabbix](https://www.zabbix.com/download?zabbix=6.0&os_distribution=alma_linux&os_version=9&components=agent_2&db=&ws=), доступным при выборе вашего дистрибутива и компонента Агент 2
-   из исходных кодов — смотрите [Установка из исходных кодов](/manual/installation/install#сконфигурируйте-исходный-код); обратите внимание, что вы должны сконфигурировать исходные коды с указанием опции конфигурации `--enable-agent2`

::: noteclassic
Возможности мониторинга с использованием Zabbix агента 2 могут быть расширены с помощью плагинов.
В то время как встроенные плагины доступны «из коробки», подгружаемые плагины нужно устанавливать отдельно.
Для более подробной информации смотрите [Плагины](/manual/config/items/plugins#подгружаемые).
:::

[comment]: # ({/196fd4de-cabc0f5f})

[comment]: # ({a3a7adc1-45c02f12})
#### Опции

Следующие параметры командной строки могут быть использованы с Zabbix агентом 2:

|**Параметр**|**Описание**|
|--|--------|
|-c --config <файл-конфигурации>|Путь к файлу конфигурации.<br>Вы можете использовать данную опцию, чтобы задать файл конфигурации, размещенный в папке отличной от заданной по умолчанию.<br>В UNIX, путь по умолчанию /usr/local/etc/zabbix\_agent2.conf или как задано [во время компиляции](/manual/installation/install#установка_демонов_zabbix) переменными *--sysconfdir* или *--prefix*|
|-f --foreground|Запуск Zabbix агента без перехода в фоновый режим (по умолчанию: true).|
|-p --print|Вывод известых элементов данных и выход.<br>*Примечание*: Чтобы также получить результаты [пользовательских параметров](/manual/config/items/userparameters), вам необходимо указать файл конфигурации (если он находится вне папки заданной по умолчанию).|
|-t --test <ключ элемента данных>|Тестирование указанного элемента данных и выход.<br>*Примечание*: Чтобы также получить результат [пользовательского параметра](/manual/config/items/userparameters), вам необходимо указать файл конфигурации (если он находится вне папки заданной по умолчанию).|
|-h --help|Вывод справочной информации и выход.|
|-v --verbose|Вывод отладочной информации. Используйте эту опцию совместно с -p и -t опциями.|
|-V --version|Вывод номера версии агента и выход.|
|-R --runtime-control <опция>|Выполнение административных функций. Смотрите [управление работой](/manual/concepts/agent2#управление-работой).|

Отдельные **примеры** использования параметров командной строки:

-   отображение всех встроенных элементов данных с их значениями
-   тестирование пользовательского параметра с ключом «mysql.ping», заданном в указанном файле конфигурации

```{=html}
<!-- -->
```
    zabbix_agent2 --print
    zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf

[comment]: # ({/a3a7adc1-45c02f12})

[comment]: # ({1a245e04-11aa0de0})
##### Управление работой

Управление работой агента предоставляет некоторые опции для удалённого управления агентом.

|Опция|Описание|
|--|--------|
|log\_level\_increase|Увеличение уровня журналирования.|
|log\_level\_decrease|Уменьшение уровня журналирования.|
|metrics|Список доступных метрик.|
|version|Отображение версии агента.|
|userparameter\_reload|Загрузка заново значений параметров *UserParameter* и *Include* из текущего файла конфигурации.|
|help|Отображение справочной информации о функции управления работой.|

Примеры:

-   увеличение уровня журналирования агента 2
-   вывод опций управления работой

```{=html}
<!-- -->
```
    zabbix_agent2 -R log_level_increase
    zabbix_agent2 -R help

[comment]: # ({/1a245e04-11aa0de0})

[comment]: # ({9d823a46-77e9b590})
#### Файл конфигурации

Параметры конфигурации агента 2 большей частью совместимы с Zabbix агентом за несколькими исключениями.

|Новые параметры|Описание|
|--|--------|
|*ControlSocket*|Путь к сокету управления работой. Агент 2 использует управляющий сокет для [административных команд](#управление_работой).|
|*EnablePersistentBuffer*,<br>*PersistentBufferFile*,<br>*PersistentBufferPeriod*|Эти параметры используются для настройки постоянного хранилища агента 2 для активных элементов данных.|
|*ForceActiveChecksOnStart*|Параметр определяет, должен ли агент выполнить активные проверки немедленно после перезапуска агента или равномерно распределить их по времени. Поддерживается, начиная с Zabbix 6.0.2.|
|*Plugins*|Плагины могут иметь свои собственные параметры, в формате `Plugins.<Имя плагина>.<Параметр>=<значение>`. Общий параметр плагинов — *System.Capacity*, задаёт ограничение количества проверок, которые могут быть выполнены одновременно.|
|*StatusPort*|Этот порт агент 2 будет слушать для запросов HTTP состояния и отображать список настроенных плагинов и некоторых внутренних параметров|
|Исключенные параметры|Описание|
|*AllowRoot*, *User*|Не поддерживается, так как режим демона не поддерживается.|
|*LoadModule*, *LoadModulePath*|Загружаемые модули не поддерживаются.|
|*StartAgents*|Этот параметр использовался в Zabbix агенте для увеличения параллелизма пассивных проверок или для их отключения. В Агенте 2 параллелизм настраивается на уровне плагинов и может быть ограничен настройкой производительности. Между тем полное отключение пассивных проверок в настоящее время не поддерживается.|
|*HostInterface*, *HostInterfaceItem*|Ещё не поддерживается.|

Для получения подробной информации смотрите параметры файла конфигурации по [zabbix\_agent2](/manual/appendix/config/zabbix_agent2).

[comment]: # ({/9d823a46-77e9b590})

[comment]: # ({472820ac-472820ac})
#### Коды завершения

Начиная с версии 4.4.8, Zabbix агент 2 также может быть скомпилирован с более старыми версиями OpenSSL (1.0.1, 1.0.2).

В этом случае Zabbix предоставляет мьютексы для блокировки в OpenSSL. Если блокировка или разблокировка мьютекса не удалась, то в стандартный поток ошибок (STDERR) выводится сообщение об ошибке, и агент 2 завершает работу, возвращая код 2 или 3 соответственно.

[comment]: # ({/472820ac-472820ac})
