Мониторинг автоматической программы - PullRequest
1 голос
/ 13 апреля 2011

В настоящее время у нас есть пакетная программа, которая работает 24/7. Он на самом деле тестирует несколько страниц и просто отправляет нам электронное письмо, если обнаруживает какую-либо ошибку на странице. Если электронных писем нет, мы предполагаем, что программа все еще работает.

Сказав это, нам на самом деле нужен сервис (возможно) или другой способ узнать, остановилась ли программа. Программа установлена ​​на тестовой машине, которая работает круглосуточно и без выходных. В настоящее время мы думаем о какой-то службе мониторинга Push. третья сторона системы будет пинговать нашу программу, и если она не получит ожидаемый пинг, она предупредит нас. Вы знаете такой сервис? Или вы можете порекомендовать другие варианты? Спасибо!

Ответы [ 3 ]

0 голосов
/ 02 мая 2011

Существует два решения:

  1. По электронной почте, когда ваш пакетный скрипт не работает
  2. Перезапустите ваш пакетный скрипт, если он не работает

Для (1), загрузите pslist и bmail .Используйте их со следующим пакетным скриптом:

@echo off
:start
set SECONDS=10
pslist | findstr /i YOUR_BATCH_SCRIPT > isrunning.txt
for %%A in (isrunning.txt) do if %%~zA==0 bmail -s SMTPSERVER -t TOEMAIL -f FROMEMAIL -h -a "Batch script is down!"
choice /C a /T %SECONDS% /D a
goto :start

ПРИМЕЧАНИЕ. Вам нужно отредактировать YOUR_BATCH_SCRIPT и параметры для bmail (smtpserver и т. Д.) В соответствии с вашей средой.

Для (2), вы можете использовать утилиту, например Application Monitor , чтобы перезапустить вашу пакетную программу в случае сбоя.

0 голосов
/ 12 июня 2012

ребята, спасибо всем за ваши ответы, и я просто благодарен за вашу помощь.В любом случае, я вернулся, чтобы сообщить вам (и другим, которые могут иметь и будут нуждаться в этом), что я уже нашел услугу, которая соответствует моим требованиям.Я сейчас использую бесплатный сервис Pushmon.Это на самом деле собирается начать, но я уже попробовал это с помощью кода приглашения.Я использую его уже несколько недель вместе с нашими новыми запланированными программами тестирования, и пока он меня не подвел.

0 голосов
/ 01 мая 2011

Лучший способ контролировать сценарий - периодически регистрировать его состояние и / или контрольную точку в файле.Каждая фаза / основная итерация вашего сценария будет либо регистрироваться в файле, либо отправлять сообщение в системный журнал.В качестве альтернативы, если ваш пакетный скрипт выполняет итерацию за определенной точкой кода достаточно часто, вы можете вставить таймер проверки работоспособности.По истечении указанного времени вы поместите сообщение в файл журнала.

Псевдокод может выглядеть следующим образом.

check_timeout
  is current time > timeout
    Yes ->  write a log message and set timeout to a point x seconds/minutes/hours into the future.
    No -> Do nothing and return from function
endcheck_timeout


Main
  set timeout to 0
  loop
    check_timeout
    do processing
  endloop
endmain

В качестве альтернативы вы можете изменить подпрограмму check_timeout для пересылкисообщение для системы мониторинга, такой как Zabbix , используя zabbix_sender для обновления элемента с текущим временем.Затем вы должны написать триггер для активации, если время последнего обновления было в 1,5 или более раз больше среднего интервала регистрации (зависит от вашей средней нагрузки, но у вас может быть разница во времени).

...