【发布时间】:2012-01-26 03:53:45
【问题描述】:
我有许多 Windows 服务(用 C# 4.0 编写),它们以不同的时间间隔连接到数据库并执行各种复杂的任务。其中一些任务每天仅每隔 X 小时发生一次。但是,服务器支持团队想知道 Windows 服务是否真的在运行,因为任务之间可能存在很大的间隔。他们基本上想要每个 Windows 服务的心跳。每隔 5 分钟,Windows 服务就会执行一些可由 Microsoft System Center Operation Manager (SCOM) 监控的操作。任何解决方案都必须由 SCOM 轻松监控,因为服务器支持团队依赖它。
实现这种功能的最佳方式是什么?我想过使用性能计数器并让 SCOM 监听这些,但不确定这是否是性能计数器的最佳用途。
UPDATE(完全忘了包括):目前每个服务都会向数据库写入此操作,但 SCOM 不太擅长监控数据库记录和区分哪个服务在做什么等。
【问题讨论】:
-
运营经理可以monitor Windows services作为一项功能。您不必在代码中实现任何其他内容。
-
@ValAkkapeddi 是的,我知道 Operations Manager 和 SCOM 可以查看服务是否正在运行、停止、暂停,但是如果我的服务正在运行并且由于某种原因没有执行其任务怎么办。我想让 SCOM 知道我的任务是否正在执行。
-
@ScottWylie 我明白了,那么在这种情况下,性能计数器似乎并不是一个糟糕的方法。您甚至可以设置智能指标,例如任务执行时间或您有什么来帮助您的支持团队更主动地识别和解决问题。
标签: c# windows-services