С помощью удаленных команд вы можете указать какие из предустановленных команд будут выполнены на наблюдаемом узле сети при выполнении некоторых условий.
Таким образом, удаленные команды являются мощным механизмом для умного про-активного мониторинга.
Из наиболее очевидных применений функции вы можете попробовать:
Настройка действий для удаленных команд аналогична настройке действий для отправки сообщений, с той лишь разницей, что вместо отправки сообщения Zabbix будет выполнять команду.
Выполнение удаленных команд не поддерживается через Zabbix прокси, поэтому команды с Zabbix сервера на агенте требуют прямого подключения.
Ограничение удаленной команды после раскрытия всех макросов зависит от типа базы данных и выбранной кодировки (при сохранении не-ASCII символы требуют более чем один байт):
База данных | //Ограничение в символах // | //Ограничение в байтах // |
MySQL | 65535 | 65535 |
Oracle база данных | 2048 | 4000 |
PostgreSQL | 65535 | не ограничено |
IBM DB2 | 2048 | 2048 |
SQLite (только Zabbix прокси) | 65535 | не ограничено |
Смотрите также страницу о выполнении команд.
Удаленные команды будут выполнены даже если намеченный узел сети в обслуживании.
Следующее руководство содержит пошаговые инструкции о том, как настроить удаленные команды.
Удаленные команды, которые выполняются на стороне Zabbix агента (пользовательские скрипты) сначала должны быть включены в соответствующем zabbix_agentd.conf.
Убедитесь, что параметр EnableRemoteCommands равен 1 и раскомментирован. Перезапустите демона агента, если изменили этот параметр.
Удаленные команды не работают с активными Zabbix агентами.
Затем, при настройке нового действия в Настройка→Действия:
Например:
В этом случае, Zabbix попытается перезапустить процесс Apache. Используя эту команду, убедитесь, что она будет выполнена Zabbix агентом (отметьте соответствующий пункт в Выполнять на).
Обратите внимание на использование sudo - пользователь Zabbix не имеет прав на перезапуск системных сервисов по умолчанию. Смотрите подсказки ниже о том, как настроить sudo.
Zabbix агент должен работать на удаленном узле сети и должен принимать входящие подключения. Zabbix агент выполняет команды в фоновом режиме.
Zabbix не проверяет была ли выполнена команда успешно.
Удаленные команды на Zabbix агенте выполняются без использования какого-либо времени ожидания с помощью ключа system.run[,nowait]. На Zabbix сервере удаленные команды выполняются со временем ожидания указанном в TrapperTimeout параметре в zabbix_server.conf файле.
Убедитесь, что пользователь 'zabbix' имеет права на выполнение добавленных команд. Один наиболее интересный вариант - использование sudo для предоставления доступа к привилегированным командам. Для настройки доступа, выполните из под root:
Примеры строк, которые можно использовать в файле sudoers:
# разрешает пользователю 'zabbix' выполнение любых команд без пароля.
zabbix ALL=NOPASSWD: ALL
# разрешает пользователю 'zabbix' перезапуск apache без пароля.
zabbix ALL=(ALL) NOPASSWD: /etc/init.d/apache restart
В некоторых системах настройки в файле sudoers будут препятствовать не-локальным пользователям выполнять команды. Для изменения этого, раскомментируйте опцию requiretty в /etc/sudoers.
Если целевая система имеет несколько интерфейсов выбранного типа (Zabbix агент или IPMI), удаленные команды будут выполнены на интерфейсе по умолчанию.
В случае удаленных команд через IPMI необходимо использовать следующий синтаксис:
где
Перезагрузка Windows при определенном условии.
Для того, чтобы автоматически перезагрузить Windows, когда Zabbix обнаруживает проблемы, определим следующие действия:
ПАРАМЕТР | Описание |
---|---|
Тип операции | 'Удаленная команда' |
Тип | 'Пользовательский скрипт' |
Команда | c:\windows\system32\shutdown.exe -r -f |
Перезагрузка узла сети с использованием управления по IPMI.
ПАРАМЕТР | Описание |
---|---|
Тип операции | 'Удаленная команда' |
Тип | 'IPMI' |
Команда | reset |
Выключение узла сети с использованием управления по IPMI.
ПАРАМЕТР | Описание |
---|---|
Тип операции | 'Удаленная команда' |
Тип | 'IPMI' |
Команда | power off |