Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

探头介绍

探测是基于意图的分析中抽象的基本单元。通常,给定的探测器使用来自网络的某些数据集,对其执行各种连续的聚合和计算,并可选择指定所述聚合和计算的某些条件,从而引发异常。

探测器是有向无环图 (DAG),其中图形的节点是处理器和阶段。阶段是与上下文关联的数据,可由操作员检查。处理器是从输入数据生成和减少输出数据的操作集。处理器的输入是一个或多个级,处理器的输出也是一个或多个级。探头 DAG 中边的方向性表示此输入到输出流。

重要的是,探头中的初始处理器是特殊的,没有任何输入级。它们名义上是数据的生成器。我们将这些称为源处理器。

IBA 的工作原理是将来自收集器的原始遥测数据摄取到探针中以提取知识(例如:异常、聚合等)。给定收集器将遥测数据发布为指标集合,其中每个指标都有标识(即一组键值对)和一个值。IBA 探测(通常使用图形查询)必须完全指定指标的标识,才能将其值摄取到探测中。借助此功能,探测可以使用引入筛选器引入具有部分标识规范的指标,从而支持引入具有未知标识的指标。

某些探测器是自动创建的。这些探测器不会自动删除。这使得操作和实施方面都变得简单。

处理器

探测器的输入处理器处理所需的配置,以将原始遥测数据引入探测器,以启动数据处理管道。对于这些处理器,阶段输出项(一个或多个)的数量等于指定图形查询中的结果数。例如,如果指定了多个图形查询。 graph_query: [A, B],查询 A 匹配 5 个节点,查询 B 匹配 10 个节点,查询 A 的结果可以使用 0 到 4 的索引访问,查询 B 的结果可以使用 5 到 14 的索引访问 query_result

如果未指定处理器的输入类型和/或输出类型,则处理器将采用调用 in 的单个输入,并生成调用 单个输出。

某些处理器字段称为 表达式。在某些情况下,它们是 图形查询 ,并且被记录下来。在其他情况下,它们是生成值的 Python 表达式 。例如,在累加处理器中,持续时间可以指定为带秒的整数(例如 900),也可以指定为表达式(例如 60 * 15)。但是,表达式可能更有用:有多种方法可以参数化它们。

表达式支持字符串值。字符串和支持表达式的处理器配置参数在指定静态值时应使用特殊引号。例如,无效,因为它引用变量“up”,而不是静态字符串, state: "up" 因此它应该是: state: '"up"'

表达式始终与图形查询相关联,并针对该查询的每个结果匹配项运行。表达式的执行上下文使得查询中指定的每个变量都解析为关联匹配结果中的命名节点。有关详细信息,请参阅 服务数据收集器 示例。

基于图形的处理器已通过 query_tag_filter 进行了扩展,使您能够按标记筛选图形查询结果。在 IBA 探测中,标记仅用作服务器和外部路由器的过滤标准,特别是用于 ECMP 不平衡(外部接口)探测和东西向总流量探测。有关特定处理器信息,请参阅“参考”部分中的 探测器处理器

引入筛选器

使用“引入筛选器”,一个查询结果可以将多个指标引入探测。表数据类型用于将多个指标存储为单个阶段输出项的一部分。表数据类型分别包括 、 、 table_ts table_dss、-,以table_ns对应于现有类型 - 、 dssts -ns

IBA 集合筛选器

收集筛选器确定从目标设备收集的指标。

给定设备上给定收集器的收集筛选器只是存在于不同探测器中的引入筛选器的集合。您还可以将其指定为 IBA 或探测器上下文之外启用服务的一部分,但此处适用于服务启用的现有优先规则 - 仅聚合给定优先级级别的过滤器。当多个探测指定针对特定设备上的特定服务的引入筛选器时,收集的指标是一个联合 - 换句话说,当指标与任何筛选器匹配时,将发布指标。这就是为什么数据在摄取到 IBA 探针之前也会由控制器组件过滤的原因。

此筛选器由遥测收集器评估,通常是为了更好地控制从底层设备操作系统提取的可用指标子集(例如,仅提取路由子集,而不是获取所有路由,这可能是一个巨大的数字)。在任何情况下,只有与集合筛选器匹配的指标才会作为原始遥测数据发布。

作为在设备上启用服务的一部分,您现在可以为服务指定集合筛选器。此过滤器成为作为“self.service_config.collection_filters”的一部分提供给收集器的附加输入。

IBA 过滤器格式

以下是筛选器(引入和收集)的设计/可用性目标

  1. 易于创作 - 给定探测器作者是指定它的人
    • 大多数情况下是匹配任何,匹配给定的可能值列表,相等匹配,范围检查键是否具有数值。
  2. 高效评估 - 假设筛选器是在收集或引入的热路径中评估的。
  3. 可聚合 - 聚合多个筛选器,因此此聚合逻辑不必成为单个收集器的责任。
  4. 编程语言中立 - 在过滤器上运行的组件将来可以使用 Python 或 C++ 或其他语言。
  5. 可编程 - 适合控制器本身和/或收集器围绕滤波器的未来可编程性,以增强可用性、性能等。

考虑到上述目标,以下是 filter1 的建议和说明性架构。有关具体示例,请参阅引入筛选器部分,以更好地了解这一点。

筛选器规范的一个实例被解释为所有指定键的 AND (也称为每键约束)。来自多个探头的多个过滤器规格在过滤器级别被视为 OR

注意:

此处提供的架构仅用于传达需求。您可以选择任何方式来完成所述用例。

收集器处理器配置中指定的收集器处理器additional_properties可以使用特殊 context. 命名空间进行访问。例如,如果收集器定义了属性 system_role,则可以通过以下方式使用它:

注意:

只要项集与从收集器处理器配置派生的原始集相同,项上下文就可用。数据通过更改此集的处理器后,它不再可用(例如,任何分组处理器)。

从蓝图中,导航到 分析> 探测以转到探测表视图。要转到探测器的详细信息,请单击其名称。您可以实例化、创建、克隆、编辑、删除、导入和导出探测器。下面的屏幕截图适用于 Apstra 版本 4.2.0。在 Apstra 4.2.1 版本中,某些菜单选项卡已被重命名、移动和/或添加。

您可以通过各种方式显示某些探针中的载物台。例如,单击名为“ 设备系统运行状况”的探测器时,将看到下图。您可以将数据源从“ 实时 ”更改为 “时间序列”,然后以各种方式聚合数据。此外,您还可以查看每个探测器上使用的磁盘空间(如果适用)。

谨慎:

如果 Apstra 控制器磁盘空间不足,则会删除较旧的遥测数据文件。要保留较旧的遥测数据,您可以使用 Apstra 虚拟机群集增加容量。

在标准视图中,具有数十个处理器的非线性探头的结构和逻辑并不容易区分。您可以单击展开按钮(左侧面板顶部)以查看处理器相互关联的展开表示。例如,下图显示了 设备遥测运行状况 探测的展开视图的一部分。

数据源

在适用的阶段,可以指定用于收集数据的源(实时或时间序列)。使用时序,可以自定义收集数据的方式,如下所示:

  • 聚合类型(Apstra 4.2.0 版中的新功能)

    • 没有

    • allOf - 布尔值 - 如果对周期内的所有样本为真,则为 true

    • anyOf - 布尔值 - 如果期间内至少有一个样本为 true,则为 true

    • 平均值 - 聚合周期内的平均值

    • 聚合周期中的最后一个值 - 最后一个值

    • 最大值 - 聚合周期内的最大值

    • 最小值 - 聚合周期内的最小值

  • 聚合周期(关闭或指定的秒数、分钟数、小时数或天数)

  • 要收集的时间回溯时间(最后的分钟数、小时数或天数)