SCOM中TimeAdded与TimeRaised值异常原因咨询
为什么部分SCOM告警的TimeAdded早于TimeRaised?
先明确两个时间属性的定义,以及你观察到的异常现象:
关键属性说明
通过Get-SCOMAlert | Get-Member -MemberType Property可以看到这两个核心时间属性:
Get-SCOMAlert | Get-Member -MemberType Property
部分输出:
Name MemberType Definition ---- ---------- ---------- TimeAdded Property datetime TimeAdded {get;} TimeRaised Property datetime TimeRaised {get;}
它们的官方定义是:
TimeRaised:告警在代理端触发时生成的时间戳。
TimeAdded:告警写入OpsMgr数据库时生成的时间戳。
按照逻辑,告警先触发再入库,TimeAdded应该晚于TimeRaised,但你执行以下命令后:
Get-SCOMAlert | Select Name, TimeRaised, TimeAdded
出现了明显的时间倒置:
Name TimeRaised TimeAdded ---- ---------- --------- All Management Servers Pool Unavaila... 5/14/2018 11:25:30 AM 5/14/2018 11:18:16 AM All Management Servers Pool Unavaila... 5/14/2018 11:17:30 AM 5/14/2018 11:10:16 AM All Management Servers Pool Unavaila... 5/14/2018 11:09:30 AM 5/14/2018 11:02:16 AM All Management Servers Pool Unavaila... 5/14/2018 11:01:30 AM 5/14/2018 10:54:16 AM Power Shell Script failed to run 4/30/2018 4:26:53 PM 4/30/2018 6:06:50 PM Power Shell Script failed to run 4/30/2018 4:26:53 PM 4/30/2018 6:06:50 PM
核心原因分析
这种异常几乎都是时间同步问题导致的,具体来说:
TimeRaised是告警触发时代理服务器的系统时间,TimeAdded是告警写入数据库时数据库服务器的系统时间。- 你例子里的时间差基本稳定在7分钟左右,说明触发这些告警的代理服务器系统时间比数据库服务器快了7分钟。当代理在自己的「11:25」触发告警,上报到数据库时,数据库服务器的时间才到「11:18」,自然就出现了
TimeAdded早于TimeRaised的情况。
除此之外,还有两种少见的可能性:
- 时间回拨场景:如果代理服务器之前被人为调快了时间,触发了一批告警后又把时间回拨到正确值,这些延迟上报的告警入库时,
TimeAdded就会比TimeRaised更早。 - SCOM组件异常:极少数情况下,SCOM代理或管理服务器的时间处理逻辑出现bug,但这种情况概率极低,优先排查时间同步问题。
解决与验证步骤
- 检查服务器时间一致性:在代理服务器、管理服务器、数据库服务器上分别执行
Get-Date(PowerShell),对比时间误差,正常应该控制在几秒内。 - 验证NTP配置:确保所有相关服务器都配置了可靠的NTP时间源(企业内部NTP服务器或公共源),并且NTP服务运行正常。可以用
w32tm /query /status命令检查时间同步状态。 - 查看SCOM日志:检查代理服务器的「Operations Manager」事件日志,看看是否有时间同步相关的警告,或者告警上报延迟的记录,辅助定位问题。
内容的提问来源于stack exchange,提问作者Jay Joshi
相关产品推荐
相关产品推荐

