2010-09-13 2 views
1

Я являюсь основным разработчиком в очень чувствительной системе для своей компании. Этот код разработан очень хорошо, но в нем есть несколько недостатков, которые делают его немного неустойчивым. Мы, конечно же, работаем над устранением недостатков, которые вызывают проблемы с стабильностью, но в то же время у нас время от времени случаются ошибки. «Неправильная» вещь, идущая «неправильно», может быть очень плохой для компании, хотя поэтому крайне важно, чтобы в промежуточный период мы быстро и быстро определяли и исправляли проблемы. В долгосрочной перспективе я хотел бы иметь автоматизированную систему мониторинга, чтобы делать проверки на достоверность данных и другие вещи, которые будут уведомлять нас о проблемах по мере их возникновения. Прямо сейчас, хотя для того, чтобы просто убедиться, что ничего катастрофического не произойдет, прежде чем мы доберемся до этого момента, я ищу совет.Обратная связь, запрошенная для решения по применению/мониторингу данных

У нас есть несколько проверок (в основном проверка данных, которые могут быть выполнены с помощью простого SQL-запроса) для запуска каждый день. Другие, которые должны запускаться еженедельно, а другие - ежемесячно. Раньше я отдавал эти запросы другим и делал их работу, чтобы убедиться, что они запускаются, когда они должны быть. К сожалению, люди несовершенны и с неизбежным поворотом, мы всегда, кажется, обнаруживаем что-то плохое, что произошло позже, чем нам хотелось бы, потому что одна или несколько из этих ручных проверок не были выполнены. Может ли кто-нибудь предложить совет или сообщить мне о приложении, которое могло бы помочь мне управлять этими сценариями или, возможно, существующим приложением, которое может сделать некоторые из этих работ для меня? На данный момент моим единственным вариантом было бы бесплатное приложение, но если у кого-то есть предложение чего-то не бесплатного, я бы включил его в список вещей, которые нужно рассмотреть позже. Я знаю, что у моей компании есть система мониторинга Open NMS, но ответственные люди не откажутся от какого-либо контроля со мной, поэтому я могу настроить ее для своей системы, в то же время они не отвечают на мои запросы на настройку мониторинга вообще. Моя компания также в прошлом использовала Nagios, но я не думаю, что любой из них делает точно, что я хочу, поскольку я не ищу веб-мониторинг в первую очередь.

Цените любую помощь/совет.

ответ

2

Что вам нужно написать очень простое приложение, которое использует таймер для периодического запуска действия (например, работает скрипт SQL и отправки по электронной почте, когда запрос не будет или что еще вы хотите). Затем вы устанавливаете это приложение в качестве службы Windows или deix deamon, поэтому он работает в фоновом режиме все время. Кроме того, вы можете запустить это приложение, используя планировщик задач (windows) или cron (linux).

Инструменты, такие как AlertGrid, могут по-прежнему быть полезными, потому что даже если вы пишете такое маленькое приложение и устанавливаете его как сервис/деамон, вы никогда не узнаете, вдруг ли он неожиданно вышел из строя и почему-то остановился (в худшем случае это хостинг-машина спускаться). Проблема заключается в следующем: , если вы автоматизируете повторяющуюся задачу, вы устраняете возможность человеческой ошибки, но вы начинаете сталкиваться с другим врагом: «молчащие» сбои.

Таким образом, чтобы отслеживать, действительно ли выполняются ваши повторяющиеся задачи, у вас должно быть что-то, что может получать сообщения «Я жив» из вашего приложения и поднять предупреждения, когда сообщение не будет получено за x минут.Это должно быть a) быть ВНЕШНЕГО устройства, на котором размещено ваше приложение b) быть НАДЕЖНЫМ (так что он сам не опустится).

Такие инструменты, как AlertGrid, делают именно это и многое другое. AlertGrid хорош, потому что его относительно легко интегрировать и использовать.

Но это еще не все. Вы написали: «Итак, если я обнаружил проблему, я могу отправить уведомление на alert-grid.com, и он отправит уведомления всем сторонам, для которых мы настроили?». Трюк заключается в том, что вы говорите, что ВЫ хотите обнаружить проблему. Рассмотрим другой подход: настройте AlertGrid, чтобы определить, является ли событие инцидентом или нет. Не все события должны быть инцидентами, в большинстве случаев ваши SQL-скрипты будут проходить без ошибок, не так ли? Почему бы не сообщить об успехе? Таким образом вы убиваете двух птиц одним камнем: вы контролируете, работает ли ваше приложение, периодически проверяя любые события (как успешные, так и неудачные) и поднимая предупреждения, если вы не получили событие за х раз, и вы автоматически определяете, какие события являются инцидентами и отправляют уведомления по электронной почте смс или телефону соответствующим контактным лицам. Еще одно преимущество: если правила уведомления изменяются (например, вы хотите отправить SMS-сообщение на Mr X вместо электронной почты в Mrs Y), вам не нужно повторно компилировать или передислоцировать приложение, вы только перенастраиваете его в AlertGrid.

+0

Очень полезно. Это именно та информация, которую я искал. Я надеялся найти что-то легкое для реализации, которое было бесплатным, что могло бы выполнить мои задачи для меня, но в конце концов знало, что я перейду к более настраиваемой службе Windows или тому подобному. Я не рассматривал тихое решение, хотя я очень ценю вашу помощь и ваше предложение о том, как интегрировать это с такими решениями, как alertgrid. – omatase

1

Вы можете попробовать AlertGrid - с помощью этого приложения вы можете настроить легко правила уведомления, как «Если моя запланированная задача не закончена вовремя -> отправить SMS»

Мы также используем AlertGrid контролировать некоторые логические статы наши запланированные задачи (мы измеряем некоторые времена exectuion, количество обработанных записей), и, конечно же, у нас есть предупреждения при пересечении некоторых пороговых значений.

Существует бесплатная учетная запись (не ограничена по времени) с некоторым количеством предупреждений (цена зависит от количества SMS и телефонных предупреждений в основном). Интеграция с AlertGrid очень проста по сравнению с другими решениями.

(я являюсь членом команды AlertGrid)

+0

будет ли AlertGrid позволять мне легко выполнить некоторый SQL против базы данных, проанализировать результаты, а затем отправить предупреждение, если эти результаты не соответствуют тому, что нам нужно? – omatase

+0

AlertGrid позволяет запускать внешний url (это может быть URL-адрес, указывающий на ваш скрипт, который будет запускать необходимую логику). Честно говоря, я судил из вашего описания, что у вас уже есть некоторые сценарии, которые выполняются по расписанию, и вы хотите получить предупреждение, если выполнение по каким-то причинам завершилось неудачей. Оба варианта возможны с помощью AlertGrid. Мы можем помочь вам с этой интеграцией, если вы предоставите более подробную информацию. – dzida

+0

У нас нет запланированных скриптов. У нас есть некоторые сценарии SQL, которые мы запускаем вручную. Например, можно запросить таблицу и убедиться, что нет строк с идентификатором состояния 27. Если он найдет строки, человек, выполняющий скрипт, знает, чтобы поднять красный флаг. Мы хотели бы, чтобы этот сценарий автоматически запускался и сообщал нам о проблеме автоматически. – omatase