В разделе Администрирование → Скрипты можно настраивать и поддерживать пользовательские глобальные скрипты.
Глобальные скрипты, в зависимости от настроенной области действия и прав доступа пользователя, доступны для выполнения:
Скрипты выполняются на Zabbix агенте, Zabbix сервере (прокси) или только Zabbix сервере. Смотрите также Выполнение команд.
Как на Zabbix агенте, так и на Zabbix прокси удалённые скрипты по умолчанию запрещены. Их можно разрешить следующим образом:
Здесь отображается список существующих скриптов с подробной информацией о них.
Отображаемые данные:
Столбец | Описание |
---|---|
Имя (Name) | Имя скрипта. При нажатии на имя скрипта откроется диалог настройки этого скрипта. |
Область (Scope) | Область действия скрипта — операция действия, действие вручную над узлом сети или действие вручную над событиями. Этот параметр определяет, где доступен скрипт. |
Использование в действия (Used in actions) |
Отображаются действия, где используется скрипт. |
Тип (Type) | Отображается тип скрипта — Webhook, Скрипт, SSH, Telnet или команда IPMI. |
Выполнение на (Execute on) |
Отображается, будет ли скрипт выполняться на Zabbix агенте, Zabbix сервере (прокси) или только на Zabbix сервере. |
Команды (Commands) | Отображаются все команды, выполняемые скриптом. Для вебхуков здесь ничего не отображается. |
Группа пользователей (User group) |
Отображается группа пользователей, которой доступен этот скрипт (или Все при всех группах пользователей). |
Группа узлов сети (Host group) |
Отображается группа узлов сети, которой доступен этот скрипт (или Все при всех группах узлов сети). |
Доступ к узлам сети (Host access) |
Отображается уровень прав доступа к группе узлов сети — Чтение или Запись. Только пользователи с требуемым уровнем прав доступа смогут иметь доступ к выполнению скрипта. |
Для настройки нового скрипта, нажмите на кнопку Создать скрипт в правом верхнем углу.
Кнопки ниже списка предлагают некоторые опции массового редактирования:
Для использования этой опции отметьте флажки перед соответствующими скриптами и нажмите на кнопку Удалить.
Для отображения только интересующих вас скриптов вы можете использовать фильтр. Для лучшей эффективности поиска данные ищутся с нераскрытыми макросами.
Ссылка Фильтр доступна выше списка скриптов. При нажатии на неё становится доступным фильтр, где вы можете отобрать скрипты по имени и области действия.
Атрибуты скрипта:
Параметр | Описание | |
---|---|---|
Имя (Name) |
Уникальное имя скрипта. Например: Очистить файловую систему /tmp |
|
Область (Scope) |
Область действия скрипта — операция действия, действие вручную над узлом сети или действие вручную над событиями. Этот параметр определяет, где может использоваться скрипт - в удалённых командах операций действия, из меню узлов сети или из меню события соответственно. Если область действия выставить в значение «Операция действия», то скрипт станет доступным всем пользователям, имеющим права доступа к Настройка → Действия. Если скрипт реально используется в каком-либо действии, значение его области действия «Операция действия» нельзя поменять на что-то другое. Поддержка макросов Область действия влияет на набор доступных макросов. Например, относящиеся к пользователю макросы ({USER.*}) поддерживаются в скриптах, чтобы позволить передать информацию о том пользователе, который запустил скрипт. Однако, если область действия скрипта - операция действия, то эти макросы не поддерживаются, поскольку операции действия выполняются автоматически. Чтобы найти, какие макросы поддерживаются, выполните поиск по фразам «Оповещения и команды на события триггеров/Команды на события триггеров», «Скрипты действий вручную над узлом сети» и «Скрипты действий вручную над событиями» в таблице поддерживаемых макросов. Обратите внимание, что если макрос может раскрыться в значение, содержащее пробелы (например, имя узла сети), не забудьте заключить его в кавычки при необходимости. |
|
Путь в меню (Menu path) |
Желаемый путь к скрипту в меню. Например, Default или Default/ будет отображать скрипт в соответствующей папке. Меню могут быть вложенными, например: Главное меню/Вложенное меню1/Вложенное меню2 . При доступе к скриптам через меню узла сети или события в разделах мониторинга, они будут организованы в соответствии с данными папками.Это поле отображается, только если для параметра Область выбраны значения «Действие вручную над узлом сети» или «Действие вручную над событиями». |
|
Тип (Type) |
Нажмите на соответствующую кнопку для выбора типа скрипта: Webhook, Скрипт, SSH, Telnet или команда IPMI. |
|
Тип скрипта: Webhook | ||
Параметры (Parameters) |
Укажите переменные вебхука в виде пар атрибут-значение. Смотрите также: настройка способа оповещения Вебхук. В значениях параметров поддерживаются макросы и настраиваемые пользовательские макросы. Поддержка макросов зависит от области действия скрипта (см. Область выше). |
|
Скрипт (Script) |
Введите код JavaScript в блоке, который появляется при нажатии на поле параметра (или на кнопку просмотра/изменения рядом с ним). Поддержка макросов зависит от области действия скрипта (см. Область выше). Смотрите также: настройка способа оповещения Вебхук, Дополнительные объекты JavaScript. |
|
Время ожидания (Timeout) |
Тайм-аут выполнения JavaScript (1-60s, по умолчанию 30s). Поддерживаются суффиксы времени, например: 30s, 1m. |
|
Тип скрипта: Скрипт | ||
Выполнение на (Execute on) |
Нажмите на соответствующую кнопку для выполнения скрипта оболочки на: Zabbix агент — скрипт будет выполняться агентом Zabbix (если элемент данных system.run разрешён) на узле сети Zabbix сервер (прокси) — скрипт будет выполняться Zabbix сервером или прокси (если разрешено параметром EnableRemoteCommands) — в зависимости от того, контролируется ли узел сети сервером или прокси Zabbix сервер — скрипт будет выполняться только сервером Zabbix |
|
Команды (Commands) |
Введите полный путь к командам, которые будут выполняться в скрипте. Поддержка макросов зависит от области действия скрипта (см. Область выше). Также поддерживаются настраиваемые пользовательские макросы. |
|
Тип скрипта: SSH | ||
Метод аутентификации (Authentication method) |
Выберите метод аутентификации — пароль или публичный ключ. | |
Имя пользователя (Username) |
Введите имя пользователя. | |
Пароль (Password) |
Введите пароль. Это поле доступно, если в качестве метода аутентификации выбрано «Пароль». |
|
Файл публичного ключа (Public key file) |
Введите путь к файлу с открытым ключом (public key file). Это поле доступно, если в качестве метода аутентификации выбрано «Публичный ключ». |
|
Файл приватного ключа (Private key file) |
Введите путь к файлу с закрытым ключом (private key file). Это поле доступно, если в качестве метода аутентификации выбрано «Публичный ключ». |
|
Фраза-пароль ключа (Passphrase) |
Введите парольную фразу (passphrase). Это поле доступно, если в качестве метода аутентификации выбрано «Публичный ключ». |
|
Порт (Port) |
Введите порт. | |
Команды (Commands) |
Введите команды. Поддержка макросов зависит от области действия скрипта (см. Область выше). Также поддерживаются настраиваемые пользовательские макросы. |
|
Тип скрипта: Telnet | ||
Имя пользователя (Username) |
Введите имя пользователя. | |
Пароль (Password) |
Введите пароль. | |
Порт (Port) |
Введите порт. | |
Команды (Commands) |
Введите команды. Поддержка макросов зависит от области действия скрипта (см. Область выше). Также поддерживаются настраиваемые пользовательские макросы. |
|
Тип скрипта: IPMI | ||
Команды (Command) |
Введите команды IPMI. Поддержка макросов зависит от области действия скрипта (см. Область выше). Также поддерживаются настраиваемые пользовательские макросы. |
|
Описание (Description) |
Введите описание для скрипта. | |
Группа узлов сети (Host group) |
Выберите группу узлов сети, которой будет доступен этот скрипт (или Все для всех групп узлов сети). | |
Группа пользователей (User group) |
Выберите группу пользователей, которой будет доступен этот скрипт (или Все для всех групп пользователей). Это поле отображается, только если для параметра Область выбраны значения «Действие вручную над узлом сети» или «Действие вручную над событиями». |
|
Требуемые права доступа к узлам сети (Required host permissions) |
Выберите уровень прав доступа к группе узлов сети — Чтение или Запись. Только пользователи с требуемым уровнем прав доступа будут иметь доступ на выполнение скрипта. Это поле отображается, только если для параметра Область выбраны значения «Действие вручную над узлом сети» или «Действие вручную над событиями». |
|
Включить подтверждение (Enable confirmation) |
Отметьте эту опцию, чтобы перед выполнением скрипта отображалось сообщение подтверждения. Эта возможность может быть особенно полезна при потенциально опасных операциях (таких как скрипт перезагрузки) или при операциях, которые могут занять продолжительное время. Это поле отображается, только если для параметра Область выбраны значения «Действие вручную над узлом сети» или «Действие вручную над событиями». |
|
Текст подтверждения (Confirmation text) |
Введите текст подтверждения, если всплывающее окно подтверждения было включено выше (например: Удалённая система будет перезагружена. Вы уверены?). Для просмотра того, как этот текст будет выглядеть, нажмите на Тест подтверждения после поля ввода. Поддерживаются макросы {HOST.*} и {USER.*}. Поддерживаются настраиваемые [пользовательские макросы]. Предупреждение: Макросы не будут раскрыты при тестировании сообщений подтверждения. Это поле отображается, только если для параметра Область выбраны значения «Действие вручную над узлом сети» или «Действие вручную над событиями». |
Скрипты, запускаемые Zabbix сервером, выполняются в порядке, описанном на странице Выполнение команд (включая проверку кода завершения). Результат выполнения скрипта будет отображён во всплывающем окне, которое появится после запуска скрипта.
Возвращаемым значением скрипта является стандартный вывод вместе со стандартным выводом ошибок.
Возвращаемое значение ограничено 16 МБ (включая конечные пробелы, которые усекаются); также применяются ограничения базы данных. Когда данные должны проходить через Zabbix прокси, они должны сохраняться в его базе данных, поэтому к ним применимы те же ограничения базы данных.
Смотрите пример скрипта и окно с результатом ниже:
Результат скрипта не отображает текст самого скрипта.
Вы можете столкнуться с ситуацией, когда при выполнении скрипта произойдёт превышение времени ожидания.
Посмотрите ниже пример скрипта, запускаемого на Zabbix агенте, и окно с результатом:
Сообщение об ошибке в этом случае будет следующим:
Превышено время ожидания при выполнении скрипта командной строки.
(Timeout while executing a shell script).
Чтобы избежать подобной ситуации, рекомендуется выполнить оптимизацию самого скрипта (вместо изменения параметра Timeout до соответствующего значения (в нашем случае, > ‘5’) в конфигурации Zabbix агента и конфигурации Zabbix сервера).
В случае, если параметр Timeout изменён в конфигурации Zabbix агента, всё ещё появляется следующее сообщение об ошибке:
Она означает, что изменения сделаны в конфигурации Zabbix агента и требуется также изменить настройку Timeout в конфигурации Zabbix сервера.
Посмотрите ниже пример запуска скрипта на Zabbix сервере и окно с результатом:
Также рекомендуется выполнить оптимизацию самого скрипта (вместо изменения параметра TrapperTimeout до соответствующего значения (в нашем случае, > ‘11’) в конфигурации Zabbix сервера).