В разделе Администрирования → Скрипты пользователи могут настраивать и поддерживать скрипты.
Эти скрипты, в зависимости от набора прав доступа пользователя, становятся доступны для выполнения при нажатии на узле сети в различных местах веб-интерфейса (ПАНЕЛЬ, Проблемы, Последние данные, Карты сети), их также можно выполнять в операциях действий. Скрипты выполняются Zabbix сервером или агентом.
Здесь отображается список существующих скриптов с подробной информацией о них.
Отображаемые данные:
Колонка | Описание |
---|---|
Имя | Имя скрипта. При нажатии на имя скрипта, откроется диалог настройки этого скрипта. |
Тип | Тип скрипта - Скрипт или IPMI команда. |
Выполнять на | Выполняется скрипт на Zabbix сервере или на стороне агента. |
Команды | Все команды, которые будут выполняться в рамках скрипта. |
Группа пользователей | Группа пользователей, которой этот скрипт доступен (или Все при всех группах пользователей). |
Группа узлов сети | Группа узлов сети, которой этот скрипт доступен (или Все при всех группах узлов сети). |
Доступ к узлу сети | Уровень прав доступа к группе узлов сети - Чтение or Запись. Только пользователи с требуемым уровнем прав доступа смогут иметь доступ к выполнению скрипта. |
Для настройки нового скрипта, нажмите на кнопку Создать скрипт в верхнем правом углу.
Кнопки ниже списка предлагают некоторые опции массового редактирования:
Для использования этой опции, отметьте соответствующие скрипты, затем нажмите на требуемую кнопку.
Посколько список может содержать некоторое скриптов, возможно потребуется отфильтровать только те, которые вам действительно необходимы.
Ссылка Фильтр доступна выше списка скриптов. Если вы нажмёте на неё, фильтр раскроется и вы сможете отфильтровать скрипты по имени.
Атрибуты скрипта:
Параметр | Описание |
---|---|
Имя | Уникальное имя скрипта. Начиная с Zabbix 2.2, имени скрипта может предшествовать префик с желаемым расположением скрипта, например, По умолчанию/ , поместит скрипт в соответствующую папку. При обращении к скриптам через меню в разделах мониторинга, скрипты будут организованы в соответствии с заданными папками.У скрипта не может быть такое же имя как и у существующей папки (и наоборот). Имя скрипта должно быть уникальным в пределах его папки. Неэкранированные имена скриптов проверяются на уникальность, то есть в одну папку нельзя добавить "Ping" и "\Ping". Одиночная обратная косая черта экранизирует любой символ, следующий за ним. Например, символы '/' и '\' можно экранировать с помощью обратной косой черты, т.е. \/ или \\. |
Тип | Выберите тип скрипта - IPMI команду или Скрипт. |
Выполнять на | Нажмите на соответствующую кнопку для того, чтобы скрипт выполнялся на:: Zabbix агент - скрипт будет выполнен на узле сети Zabbix агентом Zabbix сервер (прокси) - скрипт будет выполнен Zabbix сервером или прокси - в зависимости от того кем наблюдается узел сети сервером или прокси Zabbix сервер - скрипт будет выполнен только на стороне Zabbix сервера Эта опция выполнения скриптов на Zabbix агенте доступна в Zabbix начиная с версии 2.0 (выполнение удаленных команд активируется с помощью параметра EnableRemoteCommands в файле конфигурации Zabbix агента). |
Команды | Введите полный путь к командам, которые будут выполняться скриптом. В этих командах поддерживаются некоторые макросы: {HOST.CONN}, {HOST.IP}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}. Если имеется вероятность, что макрос будет преобразован в значение с пробелами (например, имя узла сети), не забудьте добавить кавычки, если потребуется. Начиная с Zabbix 2.2 в командах скриптов поддерживаются пользовательские макросы. |
Описание | Введите описание скрипта. |
Группы пользователей | Выберите группу пользователей, которой будет доступен этот скрипт (или Все для всех групп пользователей). |
Группы узлов сети | Выберите группу узлов сети, которой будет доступен этот скрипт (или Все для всех групп узлов сети). |
Требуемые права доступа к узлу сети | Выберите уровень прав доступа к группе узлов сети - Чтение или Запись. Только пользователи с требуемым уровнем прав доступа будут иметь доступ на выполнение скрипта. |
Включить подтверждение | Отметьте эту опцию, чтобы перед выполнением скрипта отображалось сообщение подтверждения. Эта возможность может быть особенно полезна при потенциально опасных операциях (такой как, скрипт перезагрузки) или при операциях, которые могут занять продолжительное время. |
Текст подтверждения | Введите текст подтверждения, если всплывающее окно подтверждения было включено выше (например, Удаленная система будет перезагружена. Вы уверены?). Для просмотра, как этот текст будет выглядеть, нажмите на Тест подтверждения после поля ввода. Начиная с Zabbix 2.2 текст подтверждения раскрывает макросы имени узлов сети - {HOST.HOST}, {HOST.NAME}, макросы связи узлов сети {HOST.IP}, {HOST.DNS}, {HOST.CONN} и пользовательские. Примечание: Макросы не будут раскрыты при тестировании сообщения подтверждения. |
Advanced configuration options are available in a collapsible Advanced configuration section:
Parameter | Description |
---|---|
Enable user input | Mark the checkbox to enable manual user input before executing the script. Manual user input will replace the {MANUALINPUT} macro value in the script. See also: Manual user input. |
Input prompt | Enter custom text prompting for custom user input. This text will be displayed above the input field in the Manual input popup. To see a preview of the Manual input popup, click on Test user input. The preview also allows to test if the input string complies with the input validation rule (see parameters below). Macro and user macro support depends on the scope of the script (see Scope in general script configuration parameters). |
Input type | Select the manual input type: String - single string; Dropdown - value is selected from multiple dropdown options. |
Dropdown options | Enter unique values for the user input dropdown in a comma-delimited list. To include an empty option in the dropdown, add an extra comma at the beginning, middle, or end of the list. This field is displayed only if 'Dropdown' is selected as Input type. |
Default input string | Enter the default string for user input (or none). This field will be validated against the regular expression provided in the Input validation rule field. The value entered here will be displayed by default in the Manual input popup. This field is displayed only if 'String' is selected as Input type. |
Input validation rule | Enter a regular expression to validate the user input string. Global regular expressions are supported. This field is displayed only if 'String' is selected as Input type. |
Enable confirmation | Mark the checkbox to display a confirmation message before executing the script. This feature might be especially useful with potentially dangerous operations (like a reboot script) or ones that might take a long time. |
Confirmation text | Enter custom confirmation text for the confirmation popup enabled with the checkbox above (for example, Remote system will be rebooted. Are you sure?). To see how the text will look like, click on Test confirmation next to the field. Macros and custom user macros are supported. Note: the macros will not be expanded when testing the confirmation message. |
If both manual user input and a confirmation message are configured, they will be displayed in consecutive popup windows.
Manual user input allows to supply a custom parameter on each execution of the script. This saves the necessity to create multiple similar user scripts with only a single parameter difference.
For example, you may want to supply a different integer or a different URL address to the script during execution.
To enable manual user input:
With user input enabled, before script execution, a Manual input popup will appear to the user asking to supply a custom value. The supplied value will replace {MANUALINPUT} in the script.
Depending on the configuration, the user will be asked to enter a string value:
Or select the value from a dropdown of pre-determined options:
Manual user input is available only for scripts where the scope is 'Manual host action' or 'Manual event action'.
Скрипты запускаемые Zabbix сервером выполняются в порядке, описанном в разделе Выполнение команд, включая проверку кода выхода. Результат выполнения скрипта отображается во всплывающем окне, которое появляется после того, как скрипт запускается.
Обратите внимание: Возвращаемым значением скрипта является стандартный вывод вместе со стандартным выводом ошибок.
Смотрите пример скрипта и окно с результатом ниже:
Вы можете столкнуться с ситуацией, когда произойдёт превышение времени ожидания при выполнении скрипта.
Просмотрите ниже пример запуска скрипта на Zabbix агенте и окно с результатом:
Сообщение об ошибке в этом случае будет следующим:
Чтобы избежать подобной ситуации, рекомендуется выполнить оптимизацию самого скрипта (вместо изменения параметра Timeout до соответствующего значения (в нашем случае, > ‘5’) в конфигурации Zabbix агента и конфигурации Zabbix сервера).
В случае, если параметр Timeout изменён в конфигурации Zabbix агента, всё ещё появляется следующее сообщение об ошибке:
Она означает, что изменения сделаны в конфигурации Zabbix агента и требуется также изменить настройку Timeout в конфигурации Zabbix сервера.
Просмотрите ниже пример запуска скрипта на Zabbix сервере и окно с результатом:
Также рекомендуется выполнить оптимизацию самого скрипта (вместо изменения параметра TrapperTimeout до соответствующего значения (в нашем случае, > ‘11’) в конфигурации Zabbix сервера).