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

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

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

Zabbix агент 2 — это новое поколение [Zabbix агента](/manual/concepts/agent), написанное на языке Go (с частичным использованием кода на C из Zabbix агента). Zabbix агент 2 разработан для:

-   уменьшения количества TCP-соединений;
-   улучшения [параллельности проверок](#параллелизм-проверок);
-   лёгкого расширения при помощи [плагинов](/manual/extensions/plugins), которые обеспечивают простые проверки с минимальным кодом и поддерживают сложные проверки, состоящие из длительно выполняемых скриптов и автономного сбора данных с периодической отправкой данных;
-   функционирования в качестве замены Zabbix агента, поддерживая все предыдущие функции.

Все метрики, поддерживаемые Zabbix агентом 2, собираются плагинами.

[comment]: # ({/72fba9e6-734dc3ed})

[comment]: # ({c03d41e5-eaa0f2bb})
##### Пассивные и активные проверки

Агент Zabbix 2 поддерживает [пассивные и активные проверки](/manual/concepts/agent#passive-and-active-checks), как и агент Zabbix.
Кроме того, активные проверки агента Zabbix 2 поддерживают [гибкие интервалы/интервалы по расписанию](/manual/config/items/item/custom_intervals) и [параллельное выполнение проверок](#check-concurrency) в рамках одного активного сервера.

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

[comment]: # ({/c03d41e5-eaa0f2bb})

[comment]: # ({c777f783-05ea1336})
##### Проверка параллельного выполнения

Проверки из разных плагинов могут выполняться одновременно.
Количество одновременных проверок в рамках одного плагина ограничено параметром емкости плагина.
Для каждого плагина может быть задано жестко закодированное значение емкости (`1000` по умолчанию), которое можно уменьшить с помощью параметра `Plugins.<PluginName>.System.Capacity=N` в [параметре](#configuration-file) конфигурации `Plugins`.

[comment]: # ({/c777f783-05ea1336})

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

Поддерживаемые платформы смотрите на странице [Требования](/manual/installation/requirements#поддерживаемые-платформы).

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

[comment]: # ({138e3f53-72764340})
#### Агент 2 в Unix-подобных системах

Агент 2 Zabbix в Unix-подобных системах запускается на узле сети, который находится под мониторингом.

[comment]: # ({/138e3f53-72764340})

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

Zabbix агент 2 можно установить на системах на базе Linux одним из следующих способов:

-   [Пакеты Zabbix](https://www.zabbix.com/download?zabbix=7.4) - выберите компонент Agent 2 (после выбора версии Zabbix, дистрибутива ОС и версии ОС) и следуйте инструкциям;
-   [Исходные тексты Zabbix](https://www.zabbix.com/download_sources#74) - загрузите исходные файлы и скомпилируйте агент, [выполнив настройку](/manual/installation/install#configure-the-sources) с параметром `--enable-agent2`.

::: noteclassic
Возможности мониторинга Zabbix агент 2 можно расширить с помощью загружаемых плагинов, которые доступны отдельно.
Подробности см. в разделе [Загружаемые плагины](/manual/extensions/plugins#loadable-plugins).
:::

[comment]: # ({/6910e45e-cabc0f5f})

[comment]: # ({f46eec4a-710d239c})
##### Если установлен как пакет

Zabbix agent 2 работает как процесс переднего плана и для работы в фоновом режиме использует внешний менеджер служб (например, systemd).
В Linux у Zabbix agent 2 нет встроенной поддержки демонизации.

Агент можно запустить, выполнив:

```bash
systemctl start zabbix-agent2
```

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

```bash
systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
```

[comment]: # ({/f46eec4a-710d239c})

[comment]: # ({d6099b39-87c53fa7})
##### Запуск вручную

Вы можете запустить агент Zabbix, найдя исполняемый файл `zabbix_agent2` и запустив его напрямую; например:

```bash
zabbix_agent2
```

[comment]: # ({/d6099b39-87c53fa7})

[comment]: # ({27b40128-466bb9c2})
#### Агент 2 в системах Windows

Zabbix агент 2 работает как отдельный процесс; однако его также можно запускать как службу Windows.

[comment]: # ({/27b40128-466bb9c2})

[comment]: # ({60f78e08-214485f8})
##### Установка

Zabbix agent 2 можно установить в Windows одним из следующих способов:

-   [Предварительно скомпилированные двоичные файлы Zabbix agent](https://www.zabbix.com/download_agents?version=7.4) - загрузите MSI-пакет установщика агента и следуйте инструкциям на странице [Установка агента Windows из MSI](/manual/installation/install_from_packages/win_msi);
-   [Исходные коды Zabbix](https://www.zabbix.com/download_sources#74) - загрузите исходные файлы и следуйте инструкциям на странице [Сборка Zabbix agent 2 в Windows](/manual/installation/install/building_zabbix_agent_2_on_windows).

::: noteclassic
Возможности мониторинга Zabbix agent 2 можно расширить с помощью загружаемых плагинов, которые доступны отдельно.
Подробности см. на странице [Загружаемые плагины](/manual/extensions/plugins#loadable-plugins).
:::

Дополнительные сведения об установке Zabbix agent 2 (из ZIP-архива) в качестве службы Windows см. на странице [Zabbix agent в Microsoft Windows](/manual/appendix/install/windows_agent#installing-agent-as-windows-service).

[comment]: # ({/60f78e08-214485f8})

[comment]: # ({b596fdca-45c02f12})
#### Параметры

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

|Parameter|Description|
|--|--------|
|**Агент UNIX и Windows**|<|
|`-c --config <config-file>`|Путь к [файлу конфигурации](/manual/concepts/agent2#configuration-file).<br>Вы можете использовать этот параметр, чтобы указать файл конфигурации, отличный от файла по умолчанию.|
|`-f --foreground`|Запустить Zabbix agent в режиме переднего плана (по умолчанию: true).|
|`-p --print`|Вывести известные элементы данных и выйти.<br>Обратите внимание: чтобы также вернуть результаты [пользовательского параметра](/manual/config/items/userparameters), необходимо указать файл конфигурации (если он не находится в расположении по умолчанию).|
|`-t --test <item key>`|Проверить указанный элемент данных и выйти.<br>Обратите внимание: чтобы также вернуть результаты [пользовательского параметра](/manual/config/items/userparameters), необходимо указать файл конфигурации (если он не находится в расположении по умолчанию).|
|`-T --test-config`|Проверить файл конфигурации и выйти.|
|`-h --help`|Вывести справочную информацию и выйти.|
|`-v --verbose`|Вывести отладочную информацию. Используйте этот параметр вместе с параметрами `-p` и `-t`.|
|`-V --version`|Вывести версию агента и сведения о лицензии.|
|`-R --runtime-control <option>`|Выполнить административные функции. См. [управление во время выполнения](/manual/concepts/agent2#runtime-control).|
|**Только агент Windows**|<|
|`-m --multiple-agents`|Использовать несколько экземпляров агента (с параметрами `-i`, `-d`, `-s`, `-x`).<br>Чтобы различать имена служб экземпляров, каждое имя службы будет включать значение Hostname из указанного файла конфигурации.|
|`-S --startup-type <value>`|Установить тип запуска службы Zabbix agent для Windows. Допустимые значения:<br>`automatic` - *(по умолчанию)* запускать службу автоматически при старте Windows;<br>`delayed` - отложить запуск службы до завершения запуска служб, которые стартуют автоматически;<br>`manual` - запускать службу вручную (пользователем или приложением);<br>`disabled` - отключить службу, чтобы ее нельзя было запустить пользователем или приложением.<br>Вы можете использовать этот параметр вместе с параметром `-i` или отдельно, чтобы изменить тип запуска уже установленной службы.|
|`-i --install`|Установить Zabbix agent для Windows как службу.|
|`-d --uninstall`|Удалить службу Zabbix agent для Windows.|
|`-s --start`|Запустить службу Zabbix agent для Windows.|
|`-x --stop`|Остановить службу Zabbix agent для Windows.|


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

-   Вывести все встроенные элементы данных агента со значениями.
-   Проверить пользовательский параметр с ключом `mysql.ping`, определенным в указанном файле конфигурации.
-   Установить службу Zabbix Agent для Windows, используя путь по умолчанию к файлу конфигурации `C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf`.
-   Изменить тип запуска установленной службы Zabbix Agent для Windows, используя файл конфигурации `zabbix_agent2.conf`, расположенный в той же папке, что и исполняемый файл агента.

```bash
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
```

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

[comment]: # ({76f056ab-11aa0de0})
##### Управление во время выполнения

Управление во время выполнения предоставляет несколько возможностей для удаленного управления.

|Option|Description|
|--|--------|
|`log_level_increase`|Увеличить уровень журналирования.|
|`log_level_decrease`|Уменьшить уровень журналирования.|
|`metrics`|Вывести список доступных метрик.|
|`version`|Показать версию агента.|
|`userparameter_reload`|Перезагрузить значения параметров `UserParameter` и `Include` из текущего файла конфигурации.|
|`help`|Показать справочную информацию по управлению во время выполнения.|

Примеры:

-   Увеличение уровня журналирования для агента 2.
-   Вывести параметры управления во время выполнения.

```bash
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
```

Начиная с Zabbix 7.4.1, команды управления во время выполнения для агента 2 выводят результат в `stdout` (стандартный вывод) вместо `stderr` (стандартный поток ошибок).

[comment]: # ({/76f056ab-11aa0de0})

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

Путь по умолчанию к файлу конфигурации:

-   В UNIX по умолчанию используется `/usr/local/etc/zabbix_agent2.conf` или путь, заданный переменными [время компиляции](/manual/installation/install#configure-the-sources) `--sysconfdir` или `--prefix`.
-   В Windows по умолчанию используется `C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf`.

Если на узле сети запущен один экземпляр агента, он может использовать файл конфигурации по умолчанию или файл конфигурации, указанный в [командной строке](/manual/concepts/agent2#options).
В случае нескольких экземпляров каждый экземпляр агента должен иметь собственный файл конфигурации (один из экземпляров может использовать файл конфигурации по умолчанию).

Параметры конфигурации Zabbix agent 2 в основном совпадают с параметрами Zabbix agent, за некоторыми исключениями:

|Parameters|<|Description|
|-|---------|----------|
|Специфичные для Zabbix agent 2 параметры конфигурации|<|<|
| |`ControlSocket`|Путь к сокету управления во время выполнения. Zabbix agent 2 использует сокет управления для [команд во время выполнения](#runtime-control).|
| |`EnablePersistentBuffer`,<br>`PersistentBufferFile`,<br>`PersistentBufferPeriod`|Эти параметры используются для настройки постоянного хранилища в Zabbix agent 2 для активных элементов данных.|
| |`ForceActiveChecksOnStart`|Определяет, должен ли агент выполнять активные проверки сразу после перезапуска или распределять их равномерно во времени.|
| |`Plugins`|У плагинов могут быть собственные параметры в формате `Plugins.<Plugin name>.<Parameter>=<value>`. Распространенный параметр плагина — `System.Capacity`, который задает предел числа проверок, выполняемых одновременно.|
| |`StatusPort`|Порт, на котором Zabbix agent 2 будет ожидать HTTP-запросы состояния и отображать список настроенных плагинов и некоторые внутренние параметры.|
|Параметры конфигурации Zabbix agent, не поддерживаемые в Zabbix agent 2|<|<|
| |`AllowRoot`,<br>`User`|Не поддерживаются в Zabbix agent 2, поскольку он не поддерживает демонизацию.|
| |`EnableRemoteCommands`|Устарел; вместо него в обоих агентах используются параметры `AllowKey` и `DenyKey`.|
| |`ListenBacklog`|Используется в Zabbix agent для определения максимального числа ожидающих подключений в очереди TCP. Не поддерживается в Zabbix agent 2.|
| |`LoadModule`,<br>`LoadModulePath`|Загружаемые модули не поддерживаются в Zabbix agent 2.|
| |`MaxLinesPerSecond`,<br>`LogRemoteCommands`|В Zabbix agent 2 вместо них используются `Plugins.Log.MaxLinesPerSecond` и `Plugins.SystemRun.LogRemoteCommands`.|
| |`StartAgents`|Этот параметр используется в Zabbix agent для увеличения параллелизма пассивных проверок или их отключения. В Zabbix agent 2 параллелизм настраивается на уровне плагина и может быть ограничен параметром capacity. Пассивные проверки в Zabbix Agent 2 отключены, если не указан параметр `Server`.|

Подробнее см. параметры файла конфигурации для [Zabbix agent2](/manual/appendix/config/zabbix_agent2).

[comment]: # ({/2d620e96-77e9b590})

[comment]: # ({76a6838b-472820ac})
#### Коды выхода

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

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

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