Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

8 Скрипты

Обзор

В разделе Администрирования → Скрипты пользователи могут настраивать и поддерживать скрипты.

Эти скрипты, в зависимости от набора прав доступа пользователя, становятся доступны для выполнения при нажатии на узле сети в различных местах веб-интерфейса (ПАНЕЛЬ, Проблемы, Последние данные, Карты сети), их также можно выполнять в операциях действий. Скрипты выполняются 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} и пользовательские. Примечание: Макросы не будут раскрыты при тестировании сообщения подтверждения.

Выполнение скрипта и результат

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

Обратите внимание: Возвращаемым значением скрипта является стандартный вывод вместе со стандартным выводом ошибок.

Смотрите пример скрипта и окно с результатом ниже:

uname
       uname --non-existing-flag
       /tmp/non_existing_script.sh

Время ожидания выполнения скриптов

Zabbix агент

Вы можете столкнуться с ситуацией, когда произойдёт превышение времени ожидания при выполнении скрипта.

Просмотрите ниже пример запуска скрипта на Zabbix агенте и окно с результатом:

Сообщение об ошибке в этом случае будет следующим:

Превышено время ожидания при выполнении скрипта командной строки.

Чтобы избежать подобной ситуации, рекомендуется выполнить оптимизацию самого скрипта (вместо изменения параметра Timeout до соответствующего значения (в нашем случае, > ‘5’) в конфигурации Zabbix агента и конфигурации Zabbix сервера).

В случае, если параметр Timeout изменён в конфигурации Zabbix агента, всё ещё появляется следующее сообщение об ошибке:

Get value from agent failed: ZBX_TCP_READ() timed out.

Она означает, что изменения сделаны в конфигурации Zabbix агента и требуется также изменить настройку Timeout в конфигурации Zabbix сервера.

Zabbix сервер/прокси

Просмотрите ниже пример запуска скрипта на Zabbix сервере и окно с результатом:

Также рекомендуется выполнить оптимизацию самого скрипта (вместо изменения параметра TrapperTimeout до соответствующего значения (в нашем случае, > ‘11’) в конфигурации Zabbix сервера).