暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kapacitor在Chronograf中的配置和使用

码农游乐场 2021-09-08
2925

Kapacitor概述

Kapacitor是TIGK技术栈的告警服务,用户通过tickScript脚本来对时序数据库当中的数据进行过滤,筛选,批处理等进行告警,告警信息可以通过日志保存在本地,或回插到influxdb,还可以直接在告警产生后发起http请求到指定地址,kapacitor支持数据流(stream)和批处理(batch)数据。以下是从官方文档中翻译过来的,当一回翻译官吧,哈哈。

Kapacitor有两种不同的方式处理警报消息:

  • 可以将消息直接推送到通过警报节点公开的事件处理程序

  • 消息可以发布到一个主题名称空间,一个或多个警报处理程序可以订阅该名称空间。

无论使用哪种方法,都需要在配置文件中启用和配置处理程序。如果处理程序需要令牌和密码等敏感信息,也可以使用Kapacitor HTTP API对其进行配置

推送消息

将消息推送到处理程序是《Kapacitor入门》 指南中介绍的基本方法 。这涉及简单地调用通过alert节点可用的相关链接方法。可以将消息推送到log()文件,email() 服务,httpOut()缓存和许多第三方服务。

发布和订阅

警报主题只是将警报分组的名称空间。警报事件触发时,可以将其发布到主题。多个处理程序可以订阅(可以绑定)该主题,并且所有处理程序都处理该主题的每个警报事件。处理程序通过kapacitor命令行客户端和处理程序绑定文件绑定到主题。处理程序绑定文件可以用yaml或编写json。它们包含四个关键字段和一个可选字段。

  • topic:声明处理程序将订阅的主题。

  • id:声明绑定的身份。

  • kind:声明要使用的事件处理程序的类型。请注意,这需要在kapacitord配置中启用。

  • match:(可选)声明一个match表达式,该表达式用于过滤将要处理的警报事件。请参阅 下面的“ 匹配表达式”部分。

  • options:特定于相关处理程序的选项。这些在下面的处理程序列表部分中列出

  • 示例1:用于松弛处理程序和cpu主题的处理程序绑定文件

topic: cpu
id: slack
kind: slack
options:
channel: '#kapacitor'

处理程序列表

以下是可用警报事件处理程序的列表:

HandlerDescription
HandlerDescription
AlertaPost alert message to Alerta.
emailSend and email with alert data.
execExecute a command passing alert data over STDIN.
HipChatPost alert message to HipChat room.
KafkaSend alert to a Apache Kafka cluster.
logLog alert data to file.
MQTTPost alert message to MQTT.
OpsGenie v1Send alert to OpsGenie using their v1 API. (Deprecated)
OpsGenie v2Send alert to OpsGenie using their v2 API.
PagerDuty v1Send alert to PagerDuty using their v1 API. (Deprecated)
PagerDuty v2Send alert to PagerDuty using their v2 API.
postHTTP POST data to a specified URL.
PushoverSend alert to Pushover.
SensuPost alert message to Sensu client.
SlackPost alert message to Slack channel.
SNMPTrapTrigger SNMP traps.
TalkPost alert message to Talk client.
tcpSend data to a specified address via raw TCP.
TelegramPost alert message to Telegram client.
VictorOpsSend alert to VictorOps.

具体的还可以参考官方文档[https://docs.influxdata.com/kapacitor/v1.5/working/alerts/],这里就不翻译了。

Kapacitor安装

官方称在windows下使用是实验性的,言外之意可能会出现问题,那么我们这里先不管了,重新搭建环境也麻烦,所以还是继续在windows下吧。下载之后解压缩,这里就不再赘述了。

如何运行呢?

默认的配置文件在windows下不行,根本运行不起来,如下所示:

PS C:\influxdb\kapacitor-1.5.5-1> .\kapacitord.exe -config .\kapacitor.conf

'##:::'##::::'###::::'########:::::'###:::::'######::'####:'########::'#######::'########::
##::'##::::'## ##::: ##.... ##:::'## ##:::'##... ##:. ##::... ##..::'##.... ##: ##.... ##:
##:'##::::'##:. ##:: ##:::: ##::'##:. ##:: ##:::..::: ##::::: ##:::: ##:::: ##: ##:::: ##:
#####::::'##:::. ##: ########::'##:::. ##: ##:::::::: ##::::: ##:::: ##:::: ##: ########::
##. ##::: #########: ##.....::: #########: ##:::::::: ##::::: ##:::: ##:::: ##: ##.. ##:::
##:. ##:: ##.... ##: ##:::::::: ##.... ##: ##::: ##:: ##::::: ##:::: ##:::: ##: ##::. ##::
##::. ##: ##:::: ##: ##:::::::: ##:::: ##:. ######::'####:::: ##::::. #######:: ##:::. ##:
..::::..::..:::::..::..:::::::::..:::::..:::......:::....:::::..::::::.......:::..:::::..::
2020/05/14 15:49:32 Using configuration at: .\kapacitor.conf
run: create server: invalid configuration: dir must be an absolute path. To generate a valid configuration file run `kapacitord config > kapacitor.generated.conf`.

PS C:\influxdb\kapacitor-1.5.5-1>.\kapacitord.exe config >  kapacitor.generated.conf

  • 修改数据路径以及其他的一些路径

hostname = "localhost"
data_dir = "C:\\influxdb\\kapacitor-1.5.5-1\\.kapacitor"
skip-config-overrides = false
default-retention-policy = ""

[alert]
persist-topics = true

[http]
bind-address = ":9092"
auth-enabled = false
log-enabled = true
write-tracing = false
pprof-enabled = false
https-enabled = false
https-certificate = "/etc/ssl/kapacitor.pem"
https-private-key = ""
shutdown-timeout = "10s"
shared-secret = ""

[replay]
dir = "C:\\TIGK\\kapacitor-1.5.5-1\\.kapacitor\\replay"

[storage]
boltdb = "C:\\TIGK\\kapacitor-1.5.5-1\\.kapacitor\\kapacitor.db"

[task]
dir = "C:\\TIGK\\kapacitor-1.5.5-1\\.kapacitor\\tasks"
snapshot-interval = "1m0s"

[load]
enabled = false
dir = "C:\\TIGK\\kapacitor-1.5.5-1\\.kapacitor\\load"

  • 启动kapacitor

PS C:\influxdb\kapacitor-1.5.5-1> .\kapacitord.exe -config .\kapacitor.generated.conf

这样应该可以成功启动了,如果有报错可能还是配置文件有问题。需要注意的是配置文件必须转换成utf-8编码格式,否则可能会出现乱码哦。

Chronograf中使用Kapacitor

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

在Chronograf文档中,将Chronograf连接到Kapacitor, 创建Kapacitor警报, 配置Kapacitor事件处理程序和高级Kapacitor使用率部分中介绍了与Kapacitor一起使用。

添加一个Kapacitor实例

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

  2. 在列表中的“ Acitve Kapacitor”标题下的最右列中,找到InfluxDB源,单击“ 添加配置”。“配置Kapacitor”页面将使用默认设置加载。

  3. 在“连接详细信息”分组中,设置Kapacitor URL的值和该Kapacitor的名称,并在必要时添加用户名和密码凭据。

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

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


  6. 点击Send TestAlert按钮,会发送一条测试邮件到邮箱

从Chronograf管理Kapacitor

  1. 在“配置”表中,找到Influxdata实例及其关联的Kapacitor实例,单击Kapacitor下拉菜单,然后单击“ 编辑”图标。

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

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

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

在Chronograf中创建警报

  1. 通过单击左侧导航栏中的“ 警报”图标,然后选择"Manage Task",打开“警报规则”选项卡。将加载警报规则表(Kapacitor任务)。

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

  3. 请注意,左上角的规则名称编辑框带有字符串Untitled Rule。将此名称更改为易于创建警报的名称。

  4. 在“ 选择时间序列 ”部分中,选择一个数据库,一个度量和一个要监视的字段。注意在测量中可以选择一个或多个标签。但是,不需要选择特定标签。还要注意,在每个标签旁边可以为group by子句选择标签。

  5. 在“ 规则条件 ”部分中,对于本示例,请保持标记阈值处于 选中状态。在is子句的下拉列表框中,选择 小于。并且,在数量的编辑框中输入值80,对于该字段,该值表示百分比。

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


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

  8. 过了一段时间之后,可以看到AlertHistory,触发了很多次报警,然后看了下邮箱,确实收到了很多邮件。



    Kapacitor还有很多其他的方式进行告警的处理,有兴趣可以去研究下。


文章转载自码农游乐场,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论