文档文档

在 Chronograf 中使用 Kapacitor

目录

概述

作为 TICK 堆栈 的一部分,Chronograf 是一个图形用户界面,旨在简化监控基础设施、可视化数据、管理数据库和管理警报。 Chronograf 通过警报管理与 Kapacitor 集成。

在 Chronograf 文档中,与 Kapacitor 一起工作的内容涵盖在 将 Chronograf 连接到 Kapacitor创建 Kapacitor 警报配置 Kapacitor 事件处理程序高级 Kapacitor 用法 部分。

当前文档将总结此处介绍的许多要点,并提供在 Chronograf 中使用任务和 TICKscripts 的技巧。

配置 Chronograf 以与 Kapacitor 一起使用

Chronograf 中的 Kapacitor 实例与特定的 InfluxDB 数据库相关联,这些数据库应已绑定到 Kapacitor 和 Chronograf。 要在 Kapacitor 中定义 InfluxDB 数据库,请参阅 Kapacitor 入门配置 Kapacitor 指南。 要在 Chronograf 中定义 InfluxDB 数据库,请参阅 Chronograf 文档中的 InfluxDB 设置

添加 Kapacitor 实例

要将 Kapacitor 实例添加到 Chronograf

  1. 在左侧导航栏中,单击配置齿轮图标。 将加载 InfluxDB 源列表。

    Configuration open
  2. 在列表中找到 InfluxDB 源,并在“活动 Kapacitor”标题下的最右侧列中,单击添加配置。 将加载配置 Kapacitor 页面,其中包含默认设置。

    configuration-new
  3. 在“连接详细信息”分组中,设置 Kapacitor URL 和此 Kapacitor 的名称的值,如果需要,还添加用户名和密码凭据。

    configuration-details
  4. 单击连接按钮。 如果“连接详细信息”正确,则会显示成功消息,并且会出现一个新部分“配置警报端点”。

    configuration-success
  5. 如果使用第三方警报服务或 SMTP,请更新“配置警报端点”部分中的第三方设置。

  6. 通过再次单击配置图标返回“配置”页面。 新的 Kapacitor 实例应列在“活动 Kapacitor”标题下。

    configuration-review

从 Chronograf 管理 Kapacitor

事件处理程序

可以通过 Chronograf 修改的关键 Kapacitor 功能集之一是第三方警报处理程序。

要修改第三方警报处理程序
  1. 在“配置”表中,找到 Influxdata 实例及其关联的 Kapacitor 实例,单击 Kapacitor 下拉菜单,然后单击编辑图标

    Configuration open
  2. 单击需要更改的处理程序。 其选项卡将变为活动状态。

    Configuration open
  3. 编辑相关字段,然后单击更新配置按钮。

    Configuration open
  4. 如果配置属性有效,将显示成功消息。

    Configuration open
  5. 可以通过 Kapacitor HTTP API 验证更新后的配置。 例如,要验证更新后的 SMTP 配置,请检查端点 /kapacitor/v1/config/smtp 处的 JSON 文档(例如:https://#:9092/kapacitor/v1/config/smtp)。

有关更多信息,请参阅 使用 HTTP API 进行配置 部分。

在 Chronograf 中创建警报

Chronograf 中的警报对应于专门设计用于在数据流值升高或降低到指定阈值以下时触发警报的 Kapacitor 任务。 请注意,只有最常见的警报用例可以通过 Chronograf 进行管理。 这些包括

  • 具有静态上限、下限和范围的阈值。
  • 基于单位或百分比变化的相对阈值。
  • 死信开关。

更精细的警报和其他任务需要在 Kapacitor 中直接定义。

要创建基于 Telegraf 提供的 CPU 指标的基本静态阈值警报

  1. 通过单击左侧导航栏中的警报图标,然后在弹出菜单中单击创建,打开“警报规则”选项卡。 将加载警报规则(Kapacitor 任务)表。 这些是从 Kapacitor 查询的。

    Configuration open
  2. 单击创建规则按钮。 将加载“创建/编辑规则”页面。

    Configuration open
  3. 请注意,在左上方,规则名称编辑框中包含字符串未命名规则。 将此名称更改为要创建的警报的合理名称。

    Configuration open
  4. 选择时间序列部分中,选择要监控的数据库、指标和字段。 请注意,在指标中可以选择一个或多个标签。 但是,不需要选择特定标签。 另请注意,在每个标签旁边,可以选择用于分组依据子句的标签。

    Configuration open
  5. 规则条件部分中,对于此示例,保持选中标签阈值。 在 is 子句的下拉列表框中,选择小于。 并且,在数量的编辑框中,输入值 80,对于此字段,这意味着百分比。

    Configuration open
  6. 警报消息部分中,保持选项卡 smtp。 请注意,这需要正确配置 SMTP 处理程序。 更新收件人和消息正文的值。 另请注意,底部或模板文本区域接受其下方建议的模板字段。 单击模板字段以将其添加到模板。

    Configuration open
  7. 当三个关键部分配置正确后,单击保存规则按钮。 规则列表将再次加载。

    Configuration open
  8. 新规则在列表中可见。 可以通过单击其名称打开进行编辑。

    Configuration open

该规则也可通过 Kapacitor 命令行客户端查看。

示例 1 – 在 Kapacitor 中查看 Chronograf 警报

$ kapacitor list tasks
ID                                                 Type      Status    Executing Databases and Retention Policies
batch_load_test                                    batch     enabled   true      ["telegraf"."autogen"]
chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54 stream    enabled   true      ["telegraf"."autogen"]
cpu_alert                                          stream    disabled  false     ["telegraf"."autogen"]
top_scores                                         stream    disabled  false     ["game"."autogen"]

Chronograf 生成的任务(或警报规则)列出了 chronograf 和版本令牌(例如 v1),后跟 UUID。

通过 Chronograf 管理任务

通过 Chronograf,可以启用、禁用和删除 Kapacitor 任务。 这甚至适用于未作为 Chronograf 警报生成的任务。

要通过 Chronograf 启用任务

  1. 警报规则表中找到任务。
  2. 已启用列中,将任务的状态从已禁用切换为已启用。 指示状态更改的消息将显示在页面顶部。
enable-disable screenshot

状态更改也可以在 Kapacitor 端通过使用命令行客户端列出任务并检查状态列来验证。

示例 2 – 在 Kapacitor 中查看通过 Chronograf 启用的任务

$ kapacitor list tasks
ID                                                 Type      Status    Executing Databases and Retention Policies
batch_load_test                                    batch     enabled   true      ["telegraf"."autogen"]
chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54 stream    enabled   true      ["telegraf"."autogen"]
chronograf-v1-fa28d99e-e875-4521-8bd2-463807522bbd stream    enabled   true      ["co2accumulator"."autogen"]
cpu_alert                                          stream    disabled  false     ["telegraf"."autogen"]
top_scores                                         stream    disabled  false     ["game"."autogen"]

要通过 Chronograf 禁用任务

  1. 警报规则表中找到任务。 请参阅上面的屏幕截图。
  2. 已启用列中,将任务的状态从已启用切换为已禁用。 指示状态更改的消息将显示在页面顶部。

状态更改也可以在 Kapacitor 端通过使用命令行客户端列出任务并检查状态列来验证。

示例 3 – 在 Kapacitor 中查看通过 Chronograf 禁用的任务

$ kapacitor list tasks
ID                                                 Type      Status    Executing Databases and Retention Policies
batch_load_test                                    batch     enabled   true      ["telegraf"."autogen"]
chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54 stream    enabled   true      ["telegraf"."autogen"]
chronograf-v1-fa28d99e-e875-4521-8bd2-463807522bbd stream    disabled  false     ["co2accumulator"."autogen"]
cpu_alert                                          stream    disabled  false     ["telegraf"."autogen"]
top_scores

要通过 Chronograf 删除任务

  1. 警报规则表中找到任务。
  2. 单击表格最后一列中的删除按钮。 指示任务已删除的消息将显示在页面顶部。
delete screenshot

删除也可以在 Kapacitor 端通过使用命令行客户端列出任务来验证。

示例 4 – 验证通过 Chronograf 删除的任务

$ kapacitor list tasks
ID                                                 Type      Status    Executing Databases and Retention Policies
batch_load_test                                    batch     enabled   true      ["telegraf"."autogen"]
chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54 stream    enabled   true      ["telegraf"."autogen"]
cpu_alert                                          stream    disabled  false     ["telegraf"."autogen"]
top_scores                                         stream    disabled  false     ["game"."autogen"]

注意:请记住,所有 Kapacitor 任务都可以通过 Chronograf 访问。 当使用 Chronograf 禁用、启用和删除任务时,应注意不要意外更改与 Chronograf 警报无关的任务的状态或存在。

在 Chronograf 中查看警报任务

Chronograf 警报在“警报历史记录”页面中可见。

要查看页面。

  1. 单击左侧导航栏中的警报图标。 将弹出一个菜单。

  2. 在弹出菜单中,选择项历史记录

    delete screenshot
  3. 警报历史记录页面将加载,其中包含一个表格,显示在页面右上角的下拉过滤器定义的时间范围内发布的警报。

    delete screenshot

Kapacitor 任务和 Chronograf

当首次使用 TICKscripts 并使用 Kapacitor 任务时,检查 Chronograf 生成的任务可能具有指导意义。

要查看生成的任务,请使用 kapacitor 客户端 show 命令打开它。

示例 5 – 在 Kapacitor 中显示 Chronograf 警报任务

$ kapacitor show chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54
ID: chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54
Error:
Template:
Type: stream
Status: enabled
Executing: true

控制台输出包括一个 TICKscript 部分,显示用于创建任务的脚本。

示例 6 – Chronograf 警报任务的 TICKscript

// ...
var db = 'telegraf'

var rp = 'autogen'

var measurement = 'cpu'

var groupBy = []

var whereFilter = lambda: TRUE

var name = 'CPU USAGE'

var idVar = name + ':{{.Group}}'

var message = ' {{.ID}} is {{.Level}} for {{ index .Fields "value" }}'

var idTag = 'alertID'

var levelTag = 'level'

var messageField = 'message'

var durationField = 'duration'

var outputDB = 'chronograf'

var outputRP = 'autogen'

var outputMeasurement = 'alerts'

var triggerType = 'threshold'

var details = 'CPU usage is up. '

var crit = 80

var data = stream
    |from()
        .database(db)
        .retentionPolicy(rp)
        .measurement(measurement)
        .groupBy(groupBy)
        .where(whereFilter)
    |eval(lambda: "usage_idle")
        .as('value')

var trigger = data
    |alert()
        .crit(lambda: "value" < crit)
        .stateChangesOnly()
        .message(message)
        .id(idVar)
        .idTag(idTag)
        .levelTag(levelTag)
        .messageField(messageField)
        .durationField(durationField)
        .details(details)
        .email('heinrich.faust@1808.io', 'valentin.faust@1808.io')

trigger
    |influxDBOut()
        .create()
        .database(outputDB)
        .retentionPolicy(outputRP)
        .measurement(outputMeasurement)
        .tag('alertName', name)
        .tag('triggerType', triggerType)

trigger
    |httpOut('output')
// ...

请注意,所有不是由方法调用生成的值都在方法调用中使用之前定义为变量。 此外,管道分为四个部分,其中两个部分导致变量赋值。 变量 trigger 特别令人感兴趣。 它获取警报流,然后首先将其写入 chronograf 数据库的 alerts 指标,然后再将其缓存到 Kapacitor HTTP 服务器的端点。

在 Chronograf 的警报历史记录中查看来自任务的警报

生成警报的 Kapacitor 任务不必在 Chronograf 中定义,这些警报才会出现在 Chronograf 的警报历史记录中。 它们只需将警报数据写入 InfluxDB 中 chronograf 数据库的 alerts 指标即可。

例如,可以编写类似于上面显示的 Chronograf 生成的警报的基于 Telegraf 中 CPU 使用率的警报。 可以更改名称,并且可以使用文字值定义 InfluxDBOut() 链接方法的属性方法中的字段。

示例 7 – 为 Chronograf 警报历史记录配置的 influxDBOut

// ...
var name = 'CPU ALERTS FROM FUBAR'
// ...
var trigger = data
    |alert()
// ...
trigger
    |influxDBOut()
        .create()
        .database('chronograf')
        .retentionPolicy('autogen')
        .measurement('alerts')
        .tag('alertName', name)
        .tag('triggerType', 'custom')
/// ...

具有此 trigger 块的 TICKscript 可以定义如下。

$ kapacitor define cpu_alert_fubar -tick cpu_chron_alert.tick -type stream -dbrp "telegraf"."autogen"

然后它将在 Chronograf 警报中可见。

delete screenshot

启用它,然后向 CPU 添加人为负载。

while true; do i=0; done

几分钟后,警报将出现在 Chronograf 的警报历史记录表中。

delete screenshot

为了使警报在 Chronograf 中可见,重要的是将键值为 alertNametag 以及键值为 triggerTypetag 添加到 influxDBOut() 写入的数据点。

编写可在 Chronograf 中编辑的任务

为了使任务可以在 Chronograf 中编辑,它需要包含 Chronograf 警报任务生成的变量。 这些变量在 示例 6 中可见。 该任务还应该是一个简单的警报任务,例如 Chronograf 生成的那些任务。 通过包含变量和链接方法 infludDBOut(),然后可以通过 Chronograf 警报规则表中的链接访问该任务。

delete screenshot

通过单击链接,将加载编辑警报页面,其中包含该任务。å

delete screenshot

总结

本文档介绍了将 Kapacitor 实例添加到 Chronograf 的要点,然后使用该实例创建、启用、编辑、禁用和删除警报任务。 Chronograf 生成的警报作为任务直接写入 Kapacitor 实例,可以在其中列出、查看和使用 kapacitor 命令行客户端应用程序进一步管理它们。

还介绍了如何使 Kapacitor 任务将警报写入 InfluxDB 中的 chronograf 数据库,以便它们在 Chronograf 的警报历史记录中可见。 通过将 Chronograf 变量添加到简单警报 TICKscript,该任务将在 Chronograf 中可编辑。


此页对您有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。 您可以继续像当前一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB 3 开源版现已发布公开 Alpha 版

InfluxDB 3 开源版现已可用于 alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 alpha 版的一部分。

InfluxDB 3 Core 是我们的新开源产品。 它是用于时间序列和事件数据的最新数据引擎。 InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看