# 11 Внешние проверки

#### Обзор

Внешняя проверка исполняется Zabbix сервером [выполнением shell
скрипта](ru/manual/appendix/command_execution) или бинарного файла.
Однако, когда узлы сети наблюдаются через Zabbix прокси, внешние
проверки выполняются через этот прокси.

Внешние проверки не требуют на наблюдаемом узле сети какого-либо агента.

Синтаксис ключа элемента данных:

    скрипт[<параметр1>,<параметр2>,...]

Где:

|АРГУМЕНТ|ОПРЕДЕЛЕНИЕ|
|----------------|----------------------|
|**скрипт**|Имя shell скрипта или бинарного файла.|
|**параметр(ы)**|Опциональные параметры командной строки.|

Если вы не хотите передавать какие-нибудь параметры скрипту, вы можете
использовать:

    script[] или
    script

Zabbix сервер заглянет в папку указанную как размещение внешних скриптов
(параметр 'ExternalScripts' в [файле конфигурации Zabbix
сервера](/ru/manual/appendix/config/zabbix_server)) и выполнит заданную
команду. Команда будет выполнена от имени пользователя под которым
запущен Zabbix сервер, так что любые права доступа или переменные среды
должны быть обработаны в оболочке скрипта, если необходимо, и права
доступа на команду должны разрешать этому пользователю выполнение
скрипта. Для выполнения доступны только те команды, которые имеются в
наличии в указанной папке.

::: notewarning
Не злоупотребляйте внешними проверками! Каждый
скрипт требует запуска процесса форка Zabbix сервером, запуск множества
скриптов может значительно снизить производительность
Zabbix.
:::

#### Пример использования

Выполнение скрипта **check\_oracle.sh** с первым параметром "-h". Второй
параметр будет заменен IP адресом или DNS именем узла сети в зависимости
от выбранного в настройках узла сети.

    check_oracle.sh["-h","{HOST.CONN}"]

Предположим, что узел сети настроен на использование IP адреса, тогда
Zabbix выполнит:

    check_oracle.sh "-h" "192.168.1.4"

#### Результат внешней проверки

Результирующим значением проверки является стандартный вывод вместе со
стандартным выводом ошибок (возвращается полный вывод с обрезанными
пробелами в конце начиная с Zabbix 2.0.

::: noteimportant
Текстовый (символ,​ журнал или текстовый типы
данных) элемент данных не станет неподерживаемым в случае вывода
стандартной ошибки.
:::

Код выхода не проверяется.

Обратите внимание, что в Zabbix версиях 3.4.0-3.4.2 у результата
выполнения проверялся код выхода. В этих версиях элемент данных
становился неподдерживаемым, если код выхода отличался от 0 (нуля).

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