Коллеги, всем привет!
Прошу разжевать очень подробно, как реализовать удаленный запуск приложения по сработке триггера в Zabbix на рабочей станции под управлением Windows.
На рабочей станции запущен Notepad.exe
Zabbix мониторит, чтобы он был запущен
Как только пользователь закрывает блокнот, срабатывает триггер, и Zabbix удаленно запускает блокнот снова.
Если вам не лень, прошу расписать подробно: настройки агента, настройки элемента данных, настройки триггера, и настройки скриптов.
Огромное спасибо.
Сомневаюсь, что кто-то захочет подробно все описывать. Пример запуска скрипта на хосте по срабатыванию триггера есть в моей статье - https://serveradmin.ru/zvonok-opoveshhenie-zabbix-cherez-asterisk-na-mobilnyiy-telefon/
Суть такая:
1. На хосте настраиваете bat файл на запуск блокнота.
2. На zabbix server настраиваете шаблон для мониторинга работы приложения notepad с триггером.
3. Создаете действие, которое срабатывает по триггеру. В действии указываете запуск bat файла на хосте.
В принципе, ничего сложного. Думаю, если вам реально надо, разберетесь.
Ну, собственно...
Настройка конфига агента:
EnableRemoteCommands=1
LogRemoteCommands=1
Элемент данных:
proc.num[notepad.exe]
Триггер:
{TestMaschine:proc.num[notepad.exe].last()}=0
Условие:
Триггер равно TestMaschine: notepad.exe
Действие (удаленная команда):
C:\1\start.bat Содержимое bat файла:
"C:\WINDOWS\system32\notepad.exe"
quit
На bat максимальные права, учётка - админ.
Вот, что пишет лог агента:
16792:20191014:163128.073 Executing command 'C:\1\start.bat'
То есть, лог говорит "выполнение команды...". Но по факту, ничего не происходит.
Куда копать?
@jojomsk не получится сделать так как ты написал.
Вот в чем проблема заббикс выполняет скрипт определенное время (смотри что у тебя в конфе прописано). Если скрипт не закрылся за это время то происходит его прерывание.
В твоем варианте скрипта идет вызов блокнота и он будет работать пока работает процесс консоли (скрипта) таймер проходит и происходит завершение приложения.
Это были причины почему так не работает. Теперь обсудим что сделать что бы работало.
Для начала создадим задачу в планировщике заданий. В нее вносим наш bat файл. Расписание не устанавливаем. Прописывает от имени кого пользователя ее запускать. Все сохраняем переходим к следующему шагу. Идем в заббикс создаем скрипт в поле команда пишем: "SCHTASKS /Run /TN test"
Где test название задачи из планировщика. Советую использовать en раскладку при именовании задачи что бы не издеваться над собой. Т.к заббикс на стороне сервера все вызывает из cmd.
Переходим на карту сети проверяем на узле работу скрипта, радуемся, переделываем действия в заббикс на такую команду и живем хорошо)
Поскольку это планировщик задач выполняет задачу от имени пользователя, а не заббикс то и ограничений по времени нет. Вообще можно на прямую приложение вызывать через планировщик, но это уже у кого какое ТЗ.
И да этот метод работает в проде уже более двух лет.