Какие существуют методы для мониторинга нескольких экземпляров программного обеспечения?

Было рекомендовано, чтобы я задал этот вопрос здесь членом StackOverflow.

У меня есть часть программного обеспечения для киосков самообслуживания, которое будет работать на нескольких сайтах. Я хотел бы контролировать небольшое количество параметров удаленно.

Само приложение киоска в значительной степени закончено. Сейчас я нахожусь в процессе создания программного обеспечения, которое будет контролировать все киоски из центрального местоположения, чтобы клиент мог просматривать определенные детали удаленно (например, сколько денег находится в киоске, если киоск включен или выкл, если он в данный момент не работает и т. д.). Поскольку я нахожусь на столь ранней стадии развития, мои возможности довольно открыты. Я понимаю, что я не даю очень много квалификаций, но я хотел бы попытаться получить хорошее разнообразие потенциальных решений. Некоторые детали:

  • Программное обеспечение Kiosk - это приложение VB6, работающее на Windows Embedded
  • Программное обеспечение для мониторинга будет работать на современной настольной версии Windows (XP, Vista или 7).
  • База данных SQL Server 2008

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

2 ответа

My suggestion: go with something that already has proved monitoring capabilities. Do not develop the SERVER SIDE monitoring tool.

You can use open source solutions such as zabbix or nagios and even paid ones.

В Zabbix есть что-то, что называется UserParameter. Вы можете использовать его для расширения "стандартных" возможностей zabbix. Например, вы можете создать приложение (или сценарий VBS, powershel и т. Д.), Которое проверяет, сколько зарегистрированных пользователей в киоске (или все, что вам нужно). При использовании локальной службы zabbix это приложение / сценарий будет вызвано и выполнено, а собранное значение будет отправлено на zabbix сервер.

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

Используя "профессиональный" инструмент мониторинга, вы также сможете отслеживать другие аспекты киоска, такие как процессор, память, сеть и т. Д.

В компании, в которой я работаю, есть несколько киосков, и мы используем zabbix для их мониторинга.

--EDIT - Что касается вашего заявления "чтобы клиент мог просматривать определенные детали удаленно", это еще одно условие, которое, на мой взгляд, приводит решение к уже установленному: безопасность. Например, Zabbix можно "присоединить" к серверу LDAP, и он очень хорошо контролирует пользователей (что может видеть пользователь и что может делать пользователь).

Вы можете взять функциональность Zabbix за основу и реализовать только то, что вам действительно нужно.

Например: в нашей компании у нас есть вспомогательный скрипт Zabbix, который регулярно отправляет данные мониторинга для хоста по UDP в очень простом формате: item value~item value etcДругая часть сценария выполняется на хосте Zabbix-сервера, получает эти строки от множества хостов и передает их на Zabbix-сервер, по несколько одновременно, используя более сложный собственный протокол Zabbix. Мы платим за безопасность (любой может отправить поддельный пакет) и возможную потерю пакета, но в нашей частной сети это нормально.

Вы можете запускать подобные агенты в киосках и заставить их начать отправку таких данных клиенту по его команде. Конечно, вам не хватит истории и триггеров, но если они вам понадобятся, вам будет проще реализовать поддержку MSSQL для Zabbix.

Для последнего, только код интерфейса БД, вероятно, потребует изменений (ну, просто посмотрите на конкретный движок #ifdef"S). Сама логика использует обычный SQL во время рутинной работы и не использует хранимые процедуры. Шаблоны БД зависят от движка и упакованы в файлы.sql, которые запускаются вручную. Чтобы скомпилировать сервер в Windows, ваши друзья - MinGW или Cygwin (возможно, с опцией -mno-cygwin).

Другие вопросы по тегам