Sidebar

Zabbix Summit 2022
View presentations

3 Удаленные команды

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

Шаг 1

В Zabbix агенте включите выполнение удаленных команд. Убедитесь, что параметр EnableRemoteCommands установлен в 1 и раскомментирован в zabbix_agentd.conf. Перезапустите демон агента, если вы изменили этот параметр.

Шаг 2

Настройте новое действие перейдя в Настройка → Действия и в блоке Новое действие выберите тип операции Удаленная команда.

Обратите внимание на следующие параметры в действии:

Параметр Описание
Тип действия Должен быть установлен в 'Удаленная команда'.
Удаленная команда Каждая строка должна содержать выполняемую команду. Например: хост:sudo /etc/init.d/apache restart. Удаленные команды могут содержать макросы!

Обратите внимание на использование sudo - по умолчанию пользователь Zabbix не имеет прав перезапускать системные сервисы. Ниже смотрите советы о том, как настроить sudo.

Синтаксис удаленных команд:

Удаленная команда Описание
{HOSTNAME}:<команда> Команда 'команда' будет выполнена на том узле сети где произошло событие.
<узел сети>:<команда> Команда 'команда' будет выполнена на стороне хоста 'узел сети'.
<группа узлов сети>#<команда> Команда 'команда' будет выполнена на всех узлах сети в группе узлов сети 'группа узлов сети'.

Zabbix агент выполняет команды в фоновом режиме. Zabbix не проверяет успешность выполнения команды.

Удаленные команды в Zabbix версии младше 1.4 ограничены 44 символами, а начиная с Zabbix версии 1.4 удаленные команды ограничены 255 символами.

Синтаксис удаленных команд IPMI:

Удаленная команда Описание
{HOSTNAME}:IPMI <ipmi control> [значение] Синтаксис для выполнения IPMI команды, на том узле сети где произошло событие. Поддерживаемые значения: "on", "off" или числа (по умолчанию 1).
<узел сети>:IPMI <ipmi control> [значение] Синтаксис для выполнения IPMI команды на конкретном узле сети.
<группа узлов сети>#IPMI <ipmi control> [значение] Синтаксис для выполнения IPMI команды на всех узлах сети в группе узлов сети.
Права доступа

Удостоверьтесь, что пользователь 'zabbix' имеет права на выполнение настроенных команд. Может быть нужно будет использовать sudo для получения доступа к привилегированным командам. Для настройки доступа, выполните под root:

# visudo

Примеры строк, которые могут быть использованы в файле sudoers:

# разрешает пользователю 'zabbix'  выполнять все команды без ввода пароля.
       zabbix ALL=NOPASSWD: ALL
       
       # разрешает пользователю 'zabbix' перезапускать apache без ввода пароля.
       zabbix ALL=(ALL) NOPASSWD: /etc/init.d/apache restart

На некоторых системах файл sudoers препятствует нелокальным пользователям выполнять команды. Для изменения этого, закомментируйте опцию requiretty в /etc/sudoers.

На новых системах возможно потребуется установить Defaults visiblepw в /etc/sudoers.

Пример 1

Перезагрузка Windows при определенном условии.

Для того, чтобы автоматически перезагрузить Windows в случае возникновения проблем обнаруженных Zabbix, определим следующие действия:

Параметр Описание
Тип действия 'Удаленная команда'
Удаленная команда host:c:\windows\system32\shutdown.exe -r -f
Замените 'host' на имя узла сети сервера Windows согласно веб-интерфейса Zabbix
Пример 2

Перезагрузка хоста используя управление через IPMI.

ПАРАМЕТР ОПИСАНИЕ
Тип действия 'Удаленная команда'
Удаленная команда {HOSTNAME}:IPMI reset on
Пример 3

Выключение хоста используя управление через IPMI.

ПАРАМЕТР ОПИСАНИЕ
Тип действия 'Удаленная команда'
Удаленная команда {HOSTNAME}:IPMI power off