Kapacitor
用于处理、监控和对时间序列数据进行告警的开源框架
安装
Kapacitor 有两个二进制文件:
- kapacitor – 用于调用 Kapacitor API 的命令行程序。
- kapacitord – Kapacitor 服务器守护进程。
你可以直接从下载页面下载二进制文件,或者使用 go get 获取:
go get github.com/influxdata/kapacitor/cmd/kapacitor
go get github.com/influxdata/kapacitor/cmd/kapacitord
配置
可以在这里找到一个示例配置文件
Kapacitor 也可以使用以下命令为你提供示例配置:
kapacitord config
入门
本 README 为你提供了 Kapacitor 的高级概述及其使用方法,以及一些工作原理细节。 要开始使用 Kapacitor,请参阅本指南。完成入门练习后,你可以查看不同 Telegraf 插件的 TICKscripts。
基本示例
Kapacitor 使用名为 TICKscript 的 DSL 来定义任务。
一个简单的 TICKscript,用于对高 CPU 使用率进行告警,如下所示:
stream
|from()
.measurement('cpu_usage_idle')
.groupBy('host')
|window()
.period(1m)
.every(1m)
|mean('value')
|eval(lambda: 100.0 - "mean")
.as('used')
|alert()
.message('{{ .Level}}: {{ .Name }}/{{ index .Tags "host" }} 的CPU使用率很高: {{ index .Fields "used" }}')
.warn(lambda: "used" > 70.0)
.crit(lambda: "used" > 85.0)
// 发送告警到选择的处理程序。
// Slack
.slack()
.channel('#alerts')
// VictorOps
.victorOps()
.routingKey('team_rocket')
// PagerDuty
.pagerDuty()
将上述脚本保存到文件 cpu_alert.tick
中,然后运行以下命令启动任务:
# 定义任务(假设 CPU 数据在 'telegraf' 数据库中)
kapacitor define \
cpu_alert \
-type stream \
-dbrp telegraf.default \
-tick ./cpu_alert.tick
# 启动任务
kapacitor enable cpu_alert