Home »

Запуск приложения н...
 

Запуск приложения на хосте по триггеру.


jojoMSK
Сообщения: 4
Topic starter
(@jojomsk)
Эникей
Присоединился: 2 года назад

Коллеги, всем привет!

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

На рабочей станции запущен Notepad.exe

Zabbix мониторит, чтобы он был запущен

Как только пользователь закрывает блокнот, срабатывает триггер, и Zabbix удаленно запускает блокнот снова.

Если вам не лень, прошу расписать подробно: настройки агента, настройки элемента данных, настройки триггера, и настройки скриптов.

 

Огромное спасибо.

Ответить
Метки темы
9 Ответов
Zerox
Сообщения: 661
Admin
(@zerox)
Honorable Member
Присоединился: 7 лет назад

Сомневаюсь, что кто-то захочет подробно все описывать. Пример запуска скрипта на хосте по срабатыванию триггера есть в моей статье - https://serveradmin.ru/zvonok-opoveshhenie-zabbix-cherez-asterisk-na-mobilnyiy-telefon/

Суть такая:

1. На хосте настраиваете bat файл на запуск блокнота.

2. На zabbix server настраиваете шаблон для мониторинга работы приложения notepad с триггером.

3. Создаете действие, которое срабатывает по триггеру. В действии указываете запуск bat файла на хосте. 

В принципе, ничего сложного. Думаю, если вам реально надо, разберетесь. 

Ответить
1 Ответить
jojoMSK
(@jojomsk)
Присоединился: 2 года назад

Эникей
Сообщения: 4

@zerox

Ответ ради ответа?:)

Спасибо, статью давно прочитал, делал по аналогии, но не заработало. Поэтому спросил здесь в надежде на подробный ответ:)

Ответить
jojoMSK
Сообщения: 4
Topic starter
(@jojomsk)
Эникей
Присоединился: 2 года назад

Ну, собственно...

Настройка конфига агента:

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'

То есть, лог говорит "выполнение команды...". Но по факту, ничего не происходит.
Куда копать?

 

 

Ответить
3 Ответы
Zerox
Admin
(@zerox)
Присоединился: 7 лет назад

Honorable Member
Сообщения: 661

@jojomsk

Zabbix-agent от какого пользователя запущен? Попробуй его запустить от пользователя, под которым ты ожидаешь запуск блокнота. А вообще опиши задачу полностью. Ты же хочешь не блокнот по факту запускать, а что-то другое. 

Ответить
jojoMSK
(@jojomsk)
Присоединился: 2 года назад

Эникей
Сообщения: 4

@zerox

Есть группа хостов, на которых запущена группа приложений.

Если хотя бы одно из приложений не работает на хосте, то хост не выполняет свою задачу на 100%.

В данный момент Zabbix мониторит сам факт работы приложений. Аллерты настроены, как надо.

При этом одно из приложений периодически выключается. И для того, чтобы приложение работало, нужно подключаться на каждый проблемный хост и запускать приложение вручную. 

Хочу, чтобы Zabbix сам запускал проблемное приложение.

 

P.S.: Агент запущен от пользователя "СИСТЕМА" :oops: 

Ответить
Zerox
Admin
(@zerox)
Присоединился: 7 лет назад

Honorable Member
Сообщения: 661

@jojomsk

Чтобы это нормально работало, надо приложения запускать как службы, если они это умеют. И управлять уже службами. Если это не возможно, то надо тестировать и пробовать различные варианты запуска, чтобы приложения нормально стартовали. 

Ответить
Dzhon D
Сообщения: 19
(@dzhon-d)
Младший сисадмин
Присоединился: 2 года назад

 

@jojomsk не получится сделать так как ты написал.

Вот в чем проблема заббикс выполняет скрипт определенное время (смотри что у тебя в конфе прописано). Если скрипт не закрылся за это время то происходит его прерывание. 

В твоем варианте скрипта идет вызов блокнота и он будет работать пока работает процесс консоли (скрипта) таймер проходит и происходит завершение приложения.

Это были причины почему так не работает. Теперь обсудим что сделать что бы работало.

Для начала создадим задачу в планировщике заданий.  В нее вносим наш bat файл. Расписание не устанавливаем. Прописывает от имени кого пользователя ее запускать. Все сохраняем переходим к следующему шагу. Идем в заббикс создаем скрипт в поле команда пишем: "SCHTASKS /Run /TN test"

Где test название задачи из планировщика. Советую использовать en раскладку при именовании задачи что бы не издеваться над собой. Т.к заббикс на стороне сервера все вызывает из cmd.

 Переходим на карту сети проверяем на узле работу скрипта, радуемся, переделываем действия в заббикс на такую команду и живем хорошо) 

Поскольку это планировщик задач выполняет задачу от имени пользователя, а не заббикс то и ограничений по времени нет. Вообще можно на прямую приложение вызывать через планировщик, но это уже у кого какое ТЗ. 

И да этот метод работает в проде уже более двух лет. 

Ответить
2 Ответы
Zerox
Admin
(@zerox)
Присоединился: 7 лет назад

Honorable Member
Сообщения: 661

@dzhon-d

Спасибо за информацию про планировщик. Я бы не догадался. Правда у меня и задач никогда не было запускать по триггеру приложения. Обычно это все же службы. 

Ответить
Dzhon D
(@dzhon-d)
Присоединился: 2 года назад

Младший сисадмин
Сообщения: 19

@zerox

Есть такая система видеонаблюдения трассир. Там или автовход в систему ставить без пароля так ещё и с админскими правами или вот таким образом ее запускать. Не оставлять же админа без пароля, пусть и локального.

Ответить