什么是一些技术来监控一个软件的多个实例?

build议在StackOverflow的成员这里问这个问题。

我有一个自助服务亭软件,将在多个网站上运行。 我想远程监视less量的参数。

信息亭应用程序本身已经完成了。 我现在正在创build一个软件,从一个中心位置监控所有的信息亭,以便客户可以远程查看特定的细节(例如,信息亭中有多less现金,如果信息亭处于打开状态closures,如果它目前出现故障等)。 因为我处于这样一个早期的发展阶段,我的select是相当开放的。 我明白,我没有给予很多资格,但我想尝试获得各种可能的解决scheme。 一些细节:

  • 信息亭软件是在Windows Embedded上运行的VB6应用程序
  • 监控软件将运行在Windows的现代桌面版(XP,Vista或7)上,
  • 数据库是SQL Server 2008

我最初的想法是开发一个.NET应用程序,它会以设定的时间间隔(比如每隔一段时间)简单地报告每个信息亭的最后一次数据库事务,但是我真的希望信息亭软件实时报告它的状态,也许只是发送一个embedded了less量信息的数据包。 我不确定从哪里开始,可能需要对自助terminal软件进行哪些修改,以及监控软件需要什么。 链接到这些主题的文章将是最受欢迎的。

我的build议是:使用已经certificate有监控能力的东西。 不要开发SERVER SIDE监控工具。

你可以使用开源的解决scheme,如zabbix或者nagios ,甚至是付费的。

Zabbix有一些被称为UserParameter的东西。 您可以使用它来扩展zabbix“标准”function。 例如,您可以创build一个应用程序(或VBS脚本,powershel等)来validation自助服务terminal有多lesslogin用户(或任何您需要的)。 通过使用本地zabbix服务,该应用程序/脚本将被调用并执行,并将收集到的值发送到zabbix服务器。

使用这种技术,您可以设置zabbix发送警报/阈值来通知您当信息亭拥有过多的login用户。

通过使用“专业”监控工具,您还可以监控其他信息亭的方面,如CPU,内存,networking等。

我工作的公司有一些信息亭,我们使用zabbix来监控它。

– EDIT – 关于您的陈述“让客户可以远程查看特定的详细信息”,这是另一个必要条件,在我看来,驱动解决scheme已经build立的一个:安全。 例如,Zabbix可以“附加”到LDAP服务器上,并且对用户(用户可以看到的以及用户可以执行的操作)有很好的控制。

您可以将Zabbix的function作为基础,只实现您实际需要的function。

例如:在我们公司,我们有一个Zabbix助手脚本,通过UDP以一种非常简单的格式定期向主机发送监控数据: item value~item value etc脚本的另一部分运行在Zabbix服务器主机上,接收这些行从众多的主机,并使用更复杂的Zabbix本地协议一次几个传输到Zabbix服务器。 我们支付的价格是安全的(任何人都可以发送一个伪造的数据包)和可能的数据包丢失,但在我们的私人networking内,没关系。

您可以在自助服务terminal运行类似的代理,并使他们开始通过其命令将这些数据发送给客户。 当然,你将缺乏历史和触发器,但是如果你需要它们,实现对Zabbix的MSSQL支持会更容易。

对于后者,只有DB接口代码可能需要改变(当然,只要查找引擎特定的#ifdef )。 逻辑本身在日常操作中使用普通SQL,不使用存储过程。 数据库模板是特定于引擎的,并被打包为.sql文件以便手动运行。 要在Windows中编译服务器,MinGW或Cygwin(可能带有-mno-cygwin编译器选项)是你的朋友。