18.1 理解 Sentinel 中的时间

Sentinel 是由分布到您的整个网络中的多个进程组成的分布式系统。此外,事件源可能会引入一定的延迟。为了适应此需求,Sentinel 进程会在处理事件之前将事件重新排序到一个时序流中。

每个事件都有三个时间字段:

  • 事件时间: 这是由所有分析引擎、搜索、报告等使用的事件时间。

  • Sentinel 进程时间: Sentinel 从设备收集数据的时间,该时间是从 Collector Manager 系统时间得到的。

  • 观察器事件时间: 设备放在数据中的时间戳。数据可能并非始终包含可靠的时间戳,并且可能与 Sentinel 进程时间大不相同。例如,当设备批量递送数据时。

下图说明了 Sentinel 在传统储存设置中是如何做到这一点的:

图 18-1 Sentinel 时间

  1. 默认情况下,“事件时间”设置为“Sentinel 进程时间”。但是,理想情况是使“事件时间”与“观察器事件时间”相匹配(如果它可用且可信赖)。最好将数据收集配置为信任事件源时间(如果设备时间可用、准确且已由收集器正确分析)。收集器会将“事件时间”设置为与“观察器事件时间”相匹配。

  2. “事件时间”与服务器时间相差不到 5 分钟(早于或晚于服务器时间)的事件通常由事件视图来处理。如果“事件时间”晚于服务器时间 5 分钟以上,则此事件不显示在事件视图中,但会添加到事件储存中。“事件时间”与服务器时间在未来相差 5 分钟以上并在过去相差不到 24 小时的事件仍然会显示在图表中,但不会显示在该图表的事件数据中。必须执行向下钻取操作才能从事件储存中检索这些事件。

  3. 事件将排序到 30 秒的时间间隔中,以便 Correlation Engine 可以按时间顺序处理它们。如果“事件时间”早于服务器时间 30 秒以上,则 Correlation Engine 不会处理这些事件。

  4. 如果事件时间早于 Collector Manager 系统时间 5 分钟以上,Sentinel 会直接将这些事件路由到事件储存,从而绕过 Correlation Engine 和安全智能等实时系统。