当其他用户在线提交报告内容时,我们需要通过网络向各种用户(合规、生产)发送桌面警报。
目前我们正在使用 NET SEND,但这并不能保证交付,并且从客户端和服务器的角度来看都证明是不可靠的(我猜在更高版本的 Windows 中将不支持;我们目前正在运行 XP)。
我们正在考虑基于 Jabber 的解决方案,但是否有人使用 Jabber 客户端像 NET SEND 那样在屏幕上弹出警报消息,而不是仅仅将聊天窗口置于最前面或在系统附近显示临时“toast”消息托盘。
我们需要警报消息是持久的,并且只被用户关闭,表明他们已经看到它。Toast 风格的弹出窗口会很好,只要它不仅在有限的时间内并且必须再次被用户关闭。
有什么解决办法吗?
我们家也有类似的东西。我们将 Miranda IM 客户端与 notifyanything 和弹出插件一起使用。
Notifyanything 允许客户端在指定端口上接收 udp 消息。Popup 就是这样做的,在用户屏幕顶部的窗口中显示消息。
在我们的例子中,一切都在内部网络上,所以 UPD 数据包的丢失不是问题。
这是我们运行以将 udp 消息从服务器发送给用户的 python 脚本示例:
我遇到了这个确切的问题。目标是沿着升级路径传递每个警报 - 如果在给定的时间范围内未确认警报,则将警报发送给列表中的下一个人。我们确定 Jabber 是最佳解决方案,但要做到这一点,我们必须扩展协议或调查更多客户端。(该协议非常适合扩展,并且有无数的客户端可用)。这个问题是因为经常需要确认一些警报而不是其他警报。
例如。警报的最终路径:
问题是,如果在此过程中生成第二个警报,管理员 A 或 B 可能希望确认它,但不确认第一个警报。例如,如果他们正忙于生成另一个警报的单独问题,或者如果他们不在计算机附近,则知道第二个警报并不严重,但第一个警报需要由附近的人处理计算机和升级机制是找到合适人选的最有效方式。
Jabber 中有两种类型的消息传递。(我相信称为普通与聊天)这两种类型中的一种可能允许区分响应消息的方式。不幸的是,如果收到大量消息,可能允许这样做的消息类型会给我们测试的客户端带来极大的不便。(此外,我不确定测试人员是否确定是否有可能确实区分正在响应的内容,因为这个问题压倒了测试)。
由于它是探索性的,而且我们真的没有时间实施完整的解决方案,因此我们无法确定问题是否只是选择了更好的客户端,或者是否需要对协议进行扩展。我仍然认为 Jabber 是提供警报的最佳方法。对于任何警报传递/升级系统,确认警报的人应该拥有警报的所有权,并且应该对每个未能确认警报的人产生影响。这必须与系统了解联系人员的最佳方式、待命轮换、警报泛滥的风险、当前不在轮换中的人创建的警报问题以及由如果现有系统没有,则会意外创建问责制的警报系统。
很抱歉,这不是您问题(关于 Jabber)的准确答案,但您可能想查看 ReachAlert。
http://www.tekalign.com/
这将阻止人们破坏您的 jabber 实现,因为他们可以决定将其用于其他用途(聊天、向其他用户发送消息)。
我也同意网络发送。它正在消失,并且禁用它是一种常见的做法,因为它被滥用于垃圾邮件。
让我知道你的想法和进展;-)
这可能是在 Stackoverflow 上提出的一个更好的问题,但看起来 Jabber 确实有 python 和 perl 库,所以这应该是可能的。
http://jabberpy.sourceforge.net/
http://search.cpan.org/~reatmon/Net-Jabber-2.0/lib/Net/Jabber.pm
用过PSI jabber客户端。它具有弹出通知和声音通知。JAJC jabber 客户端也是如此。
我认为这可以通过像 ZAbbix 这样的监控解决方案来实现,您可以通过远程脚本触发任何远程事件的操作,一旦触发了操作,Zabbix 就可以进行升级。操作可以是运行远程脚本、通过 jabber 发送电子邮件或警报,直到触发器被确认。