Kapacitor 命令行客户端
两个关键的可执行文件作为 Kapacitor 的一部分打包。kapacitord
守护程序运行 Kapacitor 服务器,包括其 HTTP 接口。kapacitor
命令行界面 (CLI) 利用 HTTP 接口和其他资源,以提供对许多 Kapacitor 功能的访问。
在 Kapacitor 入门中介绍了 kapacitor
客户端的一般介绍。
执行客户端时,可以接受两个选项和一个命令,后跟适用于该命令的参数。
kapacitor [options] [command] [args]
本文档概述了 kapacitor
CLI 提供的命令
通用选项
默认情况下,客户端尝试通过 HTTP 与在 localhost 端口 9092 上运行的服务器通信。服务器也可以在启用 SSL 的情况下部署。两个命令行选项使您可以覆盖默认通信设置,并针对任何 Kapacitor 服务器使用客户端。
-url
-url
选项为 Kapacitor 服务器提供 HTTP url 字符串 (http(s)://host:port
)。如果未在命令行中设置,则使用环境变量 KAPACITOR_URL
的值。这可用于在远程 Kapacitor 服务器上运行 kapacitor
命令。
在 Kapacitor URL 中包含身份验证凭据
如果在 InfluxDB 和 Kapacitor 上启用了身份验证,请在 Kapacitor URL 中包含您的 InfluxDB 用户名和密码作为查询参数,分别为 u
和 p
。为了方便和安全起见,InfluxData 建议将这些凭据作为 Kapacitor URL 的一部分存储在 KAPACITOR_URL
环境变量中。
export KAPACITOR_URL=https://192.168.67.88:9092?u=username&p=password
# When KAPACITOR_URL is defined, the -url flag isn't necessary.
kapacitor list tasks
-skipVerify
-skipVerify
选项禁用 SSL 验证。连接到使用自签名 SSL 证书保护的 Kapacitor 服务器时,应使用此选项。如果未在命令行中设置,则使用环境变量 KAPACITOR_UNSAFE_SSL
的值。
使用命令行选项
$ kapacitor -skipVerify -url https://192.168.67.88:9093 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"]
cpu_alert_topic stream disabled false ["telegraf"."autogen"]
top_scores stream disabled false ["game"."autogen"]
核心命令
核心命令是在命令行应用程序中最常见的命令,或者是最常用的命令。
help
help
命令显示帮助消息。要获取有关任何命令的更详细帮助,请键入 kapacitor help <command>
。
version
version
命令打印 kapacitor
客户端的发行版本。
list
list
命令可用于打印不同 Kapacitor 工件的列表。
delete
delete
命令可用于删除不同的 Kapacitor 工件。
命令 list
和 delete
在以下部分中更详细地介绍。
服务器管理
kapacitor
客户端可用于调查服务器的各个方面、备份其数据以及处理日志。一项计划中的功能将是将任务定义推送到其他服务器的能力。
backup
backup
命令在指定的filepath 创建 Kapacitor 数据库的备份。
# Syntax
kapacitor backup [PATH_TO_BACKUP_FILE]
# Example
kapacitor backup ~/bak/kapacitor-20180101.db
此命令将静默成功。没有状态消息返回到控制台。将报告诸如权限不足或目录不存在之类的错误。要验证结果,请检查文件系统。
stats
stats
命令显示有关 Kapacitor 服务器的统计信息。它需要 general
或 ingress
参数。
# Syntax
kapacitor stats <general|ingress>
stats general
使用 kapacitor stats general
查看诸如服务器 ID 或主机名之类的值,以及诸如 Kapacitor 使用的任务和订阅数量之类的计数。
$ kapacitor stats general
ClusterID: ef3b3f9d-0997-4c0b-b1b6-5d0fb37fe509
ServerID: 90582c9c-2e25-4654-903e-0acfc48fb5da
Host: localhost
Tasks: 8
Enabled Tasks: 2
Subscriptions: 12
Version: 1.7.6~n201711280812
stats ingress
使用 kapacitor stats ingress
命令查看 InfluxDB 指标和通过 Kapacitor 服务器的数据点数量。此命令可用于确保 InfluxDB 数据正在写入 Kapacitor。
$ kapacitor stats ingress
Database Retention Policy Measurement Points Received
_internal monitor cq 5274
_internal monitor database 52740
_internal monitor httpd 5274
_internal monitor queryExecutor 5274
_internal monitor runtime 5274
_internal monitor shard 300976
_internal monitor subscriber 126576
_internal monitor tsm1_cache 300976
_internal monitor tsm1_engine 300976
_internal monitor tsm1_filestore 300976
_internal monitor tsm1_wal 300976
_internal monitor write 5274
_kapacitor autogen edges 26370
_kapacitor autogen ingress 73817
_kapacitor autogen kapacitor 2637
_kapacitor autogen load 2637
_kapacitor autogen nodes 23733
_kapacitor autogen runtime 2637
_kapacitor autogen topics 73836
chronograf autogen alerts 1560
telegraf autogen cpu 47502
telegraf autogen disk 31676
telegraf autogen diskio 52800
telegraf autogen kernel 5280
telegraf autogen mem 5280
telegraf autogen processes 5280
telegraf autogen swap 10560
telegraf autogen system 15840
vars
vars
命令显示与 Kapacitor 服务器关联的各种变量。结果以 JSON 格式输出。
$ kapacitor vars
{"cluster_id": "39545771-7b64-4692-ab8f-1796c07f3314",
"cmdline": ["kapacitord"],
"host": "localhost",
"kapacitor": {"795eb8bd-00b5-4a78-9a10-6190546e0a08": {"name": "nodes", "tags": {"host": ...
# Output example has been truncated
为了使输出更具可读性,请将命令通过管道传输到 JSON 格式化程序。
# Example using a Python JSON formatter
kapacitor vars | python -m json.tool
push
push
命令保留用于计划中的功能,该功能将允许将任务从一个 Kapacitor 服务器推送到另一个服务器。
服务
服务是 Kapacitor 服务器的功能模块,用于处理与第三方应用程序的通信、服务器配置以及数据的发现和抓取。有关服务的更多信息,请参阅配置文档。
list service-tests
list service-tests
列出服务器上当前可用的所有服务测试。
# Syntax
kapacitor list service-tests [ <SERVICE_NAME> | <PATTERN> ]
# Example
kapacitor list service-tests
PATTERN
可以是类似 grep 的模式。例如,要运行以字母“a”开头的所有服务的测试,请使用字符串“a*”。
根据您使用的终端,您可能需要通过将模式用引号引起来来将其作为字符串传递。例如:"a*"
。
服务测试列表输出示例
Service Name
alerta
azure
consul
dns
ec2
file-discovery
gce
hipchat
httppost
influxdb
kubernetes
marathon
mqtt
nerve
opsgenie
pagerduty
pushover
scraper
sensu
serverset
slack
smtp
snmptrap
static-discovery
swarm
talk
telegram
triton
victorops
service-tests
service-tests
命令执行一个或多个可用的服务测试。
kapacitor service-tests [ <SERVICE_NAME> | <PATTERN> ]
PATTERN
可以是类似 grep 的模式。例如,要运行以字母“a”开头的所有服务的测试,请使用字符串“a*”。
根据您使用的终端,您可能需要通过将模式用引号引起来来将其作为字符串传递。例如:"a*"
。
运行服务测试示例
$ kapacitor service-tests slack talk smtp
Service Success Message
slack true
talk false service is not enabled
smtp false service is not enabled
通过结合 list service-tests
和 service-tests
命令,可以在 Linux 系统上使用以下命令测试所有服务:
kapacitor list service-tests | xargs kapacitor service-tests
日志记录
Kapacitor 记录了关于自身、其服务和其任务的大量信息。有关配置日志记录的信息,请参阅配置文档。
logs
logs
命令输出整个 Kapacitor 日志流或特定服务的日志流。日志流可以按日志级别进行过滤。
# Syntax
kapacitor logs [service=<SERVICE_ID>] [lvl=<LEVEL>]
lvl
的值可以是以下之一:
debug
info
error
默认情况下,这将仅返回所选级别的消息。要查看所选级别及更高级别的消息,请在字符串末尾添加 +
字符。
监视 HTTP 服务的 DEBUG 级别及以上的日志消息
$ kapacitor logs service=http lvl=debug+
ts=2018-01-15T10:47:10.017+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.014048161+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e3c47c4-f9d9-11e7-85c5-000000000000 duration=3.234836ms
ts=2018-01-15T10:47:10.020+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.013091282+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e3c2267-f9d9-11e7-85c4-000000000000 duration=7.555256ms
ts=2018-01-15T10:47:10.301+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.301315013+01:00 method=POST uri=/write?consistency=&db=telegraf&precision=ns&rp=autogen protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e681d20-f9d9-11e7-85c7-000000000000 duration=306.967µs
ts=2018-01-15T10:47:10.301+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.301249656+01:00 method=POST uri=/write?consistency=&db=telegraf&precision=ns&rp=autogen protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e681a95-f9d9-11e7-85c6-000000000000 duration=387.042µs
# ...
跟踪 Kapacitor 日志
要跟踪所有 Kapacitor 日志,请在不使用 service
和 level
参数的情况下运行命令。
$ kapacitor logs
ts=2018-01-15T10:54:07.884+01:00 lvl=info msg="created log session" service=sessions id=33a21e96-49d5-4891-aad8-0bc96099d148 content-type=
ts=2018-01-15T10:54:10.017+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:54:10.014885535+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0893527c-f9da-11e7-8672-000000000000 duration=2.870539ms
ts=2018-01-15T10:54:10.020+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:54:10.017509083+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0893b8f6-f9da-11e7-8673-000000000000 duration=2.920775ms
# ...
level
level
命令设置从 Kapacitor 服务器写入日志文件的 Kapacitor 日志流的日志级别。在 Linux 系统上,此文件默认位于 /var/log/kapacitor/kapacitor.log
。它采用的形式如下:
kapacitor level <LEVEL>
LEVEL
的值可以是以下之一:
debug
info
error
要查看命令生效,请跟踪日志文件(例如,$sudo tail -f -n 128 /var/log/kapacitor/kapacitor.log
),然后将日志级别设置为 error。
将 Kapacitor 日志级别设置为 ERROR
kapacitor level error
Kapacitor 日志的流应显示停止。要再次激活它,请将日志级别重置为 debug
。
将日志级别设置为 DEBUG
kapacitor level debug
跟踪的流应再次变为活动状态。
watch
watch
命令跟踪与**任务**关联的日志。
这与 logs
命令不同,后者允许跟踪与服务关联的日志。
# Syntax
kapacitor watch <TASK_ID> [<TAGS> ...]
从 cpu_alert
任务中流式传输日志**
$ kapacitor watch cpu_alert
ts=2018-01-15T11:31:30.301+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=CRITICAL id=cpu:nil event_message="cpu:nil is CRITICAL" data="&{cpu map[cpu:cpu6 host:algonquin] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 0 0 0 0 0 0 0 100.00000000000199]]}"
ts=2018-01-15T11:31:30.315+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=OK id=cpu:nil event_message="cpu:nil is OK" data="&{cpu map[cpu:cpu7 host:algonquin] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 99.89989989990681 0 0 0 0 0 0 0.1001001001001535]]}"
ts=2018-01-15T11:31:30.325+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=CRITICAL id=cpu:nil event_message="cpu:nil is CRITICAL" data="&{cpu map[host:algonquin cpu:cpu6] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 0 0 0 0 0 0 0 100.00000000000199]]}"
ts=2018-01-15T11:31:30.335+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=OK id=cpu:nil event_message="cpu:nil is OK" data="&{cpu map[host:algonquin cpu:cpu7] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 99.89989989990681 0 0 0 0 0 0 0.1001001001001535]]}"
# ...
数据采样
有时,在启用任务之前记录数据样本或查询以排除任务故障可能很有用。Kapacitor 命令行客户端包含许多用于管理数据采样的有用命令。
record
record
命令可用于将数据快照或 InfluxDB 查询的结果记录到 Kapacitor 数据库中。数据快照稍后可以使用其 recording-id
访问。有三种类型的记录可用:batch
、stream
和 query
。
record batch
kapacitor record batch
记录 batch 类型任务中使用的 InfluxDB 查询的结果。它需要一个时间值,用于从 now
开始的过去数据窗口,由参数 -past
定义,或者由参数 -start
和 -stop
定义的过去间隔。-recording-id
是可选的,如果未提供,则会生成。还需要带有 TASK_ID
的 -task
参数。可选的布尔参数 -no-wait
会将回放生成到单独的进程中并退出,使其在后台运行。
# Syntax
kapacitor record batch (-no-wait) [-past <WINDOW_IN_PAST> | -start <START_TIME> -stop <STOP_TIME>] [-recording-id <ID>] -task <TASK_ID>
# Example
kapacitor record batch -past 5m -recording-id BlueJaySilverTree -task batch_load_test
record stream
kapacitor record stream
记录数据的实时流。它需要一个 -duration
值来确定记录将运行多长时间。还需要标识目标任务的 -task
参数。-recording-id
值是可选的。如果未提供,则会自动生成。可选的布尔参数 -no-wait
会将回放生成到单独的进程中并退出,使其在后台运行。
此命令与 stream
选项结合使用将运行到时间持续时间到期为止。它在控制台中返回记录 ID。
# Syntax
kapacitor record stream -duration <DURATION> (-no-wait) (-recording-id <ID> ) -task <TASK_ID>
# Example
kapacitor record stream -duration 1m -task cpu_alert
record query
kapacitor record query
记录 InfluxDB 查询。它需要通过 -query
参数提供的 InfluxDB 查询。它还需要 batch
或 stream
的 -type
值。还可以提供 -recording-id
,如果未提供,则会生成。可选的布尔参数 -no-wait
会将回放生成到单独的进程中并退出,使其在后台运行。
# Syntax
kapacitor record query [-cluster <INFLUXDB_CLUSTER_NAME>] [-no-wait] -query <QUERY> [-recording-id <RECORDING_ID>] -type <stream|batch>
# Example
$ kapacitor record query -query 'SELECT cpu, usage_idle from "telegraf"."autogen"."cpu" where time > now() - 5m' -type stream
replay
replay
命令将记录回放到任务以验证任务的行为方式。它需要通过 -recording
参数提供的记录 ID 和通过 -task
参数提供的任务 ID。可选的布尔参数 -real-clock
将切换根据记录中包含的时间戳之间的时间间隔回放数据。可选的布尔参数 -rec-time
将切换为使用实际记录的时间而不是当前时间。默认行为是使用当前时间。还可以提供可选的 -replay-id
,如果未提供,则会生成。可选的布尔参数 -no-wait
会将回放生成到单独的进程中并退出,使其在后台运行。
# Syntax
kapacitor replay [-no-wait] [-real-clock] [-rec-time] -recording <ID> [-replay-id <REPLAY_ID>] -task <TASK_ID>
# Example
$ kapacitor replay -recording 4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 -task cpu_alert
replay-live
replay-live
命令允许即时播放数据以验证任务行为。它可以针对 batch
或 query
记录执行。Kapacitor 既不保存也不记录数据库中的数据。
replay-live query
使用 query 参数,回放针对任务执行 InfluxDB 查询。查询应包括数据库、保留策略和指标字符串。
# Syntax
kapacitor replay-live query [-cluster <CLUSTER_URL>] [-no-wait] -query <QUERY> [-real-clock] [-rec-time] [-replay-id <REPLAY_ID>] -task <TASK_ID>
# Example
kapacitor replay-live query -task cpu_alert -query 'select cpu, usage_idle from "telegraf"."autogen"."cpu" where time > now() - 5m'
此命令需要通过 -query
参数提供的 InfluxDB 查询。它还需要由 -task
参数标识的任务。-replay-id
是可选的,但如果未提供,则会自动生成。可选的布尔参数 -no-wait
会将回放生成到单独的进程中并退出,使其在后台运行。可选的布尔参数 -real-clock
将切换根据其中包含的时间戳之间的时间间隔回放数据。可选的布尔参数 -rec-time
将切换为使用实际记录的时间而不是当前时间。默认行为是使用当前时间。
replay-live batch
使用 batch 参数,回放使用已存储到 InfluxDB 的批处理数据执行任务。它采用以下形式:
# Syntax
kapacitor replay-live batch [-no-wait] [ -past <TIME_WINDOW> | -start <START_TIME> -stop <STOP_TIME> ] [-real-clock] [-rec-time] [-replay-id <REPLAY_ID>] -task <TASK_ID>
# Example
kapacitor replay-live batch -start 2018-01-16T00:00:00Z -stop 2018-01-16T12:00:00Z -replay-id GoldRoosterColdBridge180116 -task batch_load_test
此命令需要一个时间值,用于从 now
开始的过去数据窗口,由参数 -past
定义,或者由参数 -start
和 -stop
定义的过去间隔。-replay-id
是可选的,如果未提供,则会生成。还需要带有 TASK_ID
的 -task
参数。可选的布尔参数 -no-wait
会将回放生成到单独的进程中并退出,使其在后台运行。可选的布尔参数 -real-clock
将切换根据其中包含的时间戳之间的时间间隔回放数据。可选的布尔参数 -rec-time
将切换为使用实际记录的时间而不是当前时间。默认行为是使用当前时间。
list recordings
list recordings
命令可用于列出现有记录和回放。
$ kapacitor list recordings
ID Type Status Size Date
0970bcb5-685c-48cc-9a92-741633633f1f stream finished 3.2 kB 15 Jan 18 16:37 CET
78d3a26e-ea1f-4c52-bd56-2016997313fe stream finished 23 B 15 Jan 18 15:33 CET
4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 stream finished 2.2 kB 15 Jan 18 15:25 CET
BlueJaySilverTree batch finished 1.0 kB 15 Jan 18 15:18 CET
7d30caff-e443-4d5f-a0f2-6a933ea35284 batch finished 998 B 15 Jan 18 15:17 CET
list replays
list replays
命令列出所有回放。
$ kapacitor list replays
ID Task Recording Status Clock Date
d861ee94-aec1-43b8-b362-5c3d9a036aff cpu_alert 4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 running real 16 Jan 18 11:02 CET
GoldRoosterColdBridge180116 batch_load_test finished fast 16 Jan 18 10:23 CET
2d9be22c-647a-425e-89fb-40543bdd3670 cpu_alert finished fast 16 Jan 18 10:12 CET
b972582b-5be9-4626-87b7-c3d9bfc67981 batch_load_test finished fast 15 Jan 18 17:26 CET
c060f960-6b02-49a7-9376-0ee55952a7f0 cpu_alert finished fast 15 Jan 18 17:25 CET
4a43565c-4678-4c98-94b7-e534efdff860 cpu_alert 4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 finished fast 15 Jan 18 16:52 CET
31f8ea34-455b-4eee-abf2-ed1eb60166a5 cpu_alert 4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 finished real 15 Jan 18 16:50 CET
bbe8567c-a642-4da9-83ef-2a7d32ad5eb1 cpu_alert 4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 finished fast 15 Jan 18 16:49 CET
delete recordings
delete recordings
命令删除一个或多个记录。
# Syntax
kapacitor delete recordings <Recording-ID | Pattern>
# Examples
kapacitor delete recordings d861ee94-aec1-43b8-b362-5c3d9a036aff
kapacitor delete recordings "test*"
ID
需要是记录的完整 ID,最好从 list recordings
命令的结果中复制和粘贴。
Pattern
可以是类似 grep 的模式,用于标识一组记录。例如,如果值 test0<N>
分配给多个 recording-id
,(例如 test01
、test02
、test03
),那么可以使用模式 "test*"
删除所有 test
记录。
此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list recordings
命令。
delete replays
delete replays
命令删除一个或多个回放。
# Syntax
kapacitor delete replays <Replay-ID | Pattern>
# Examples
kapacitor delete replays d861ee94-aec1-43b8-b362-5c3d9a036aff
kapacitor delete replays "jan-run*"
ID
需要是回放的完整 ID,最好从 list replays
命令的结果中复制和粘贴。
Pattern
可以是类似 grep 的模式,用于标识一组回放。例如,如果值 test0<N>
分配给多个 replay-id
,(例如 jan-run01
、jan-run02
、jan-run03
),那么可以使用模式 "jan-run*"
删除所有 run
回放。
此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list replays
命令。
主题和主题处理程序
主题是警报可以发布消息以及其他服务可以订阅以接收这些消息的主题类别。主题处理程序将主题绑定到服务,从而允许通过各种方式转发消息。
使用告警主题文档中介绍了如何使用主题和主题处理程序。
主题是通过 TICKscript 中 AlertNode 的 topic()
方法创建的。
define-topic-handler
define-topic-handler
命令根据主题处理程序脚本的内容定义或重新定义主题处理程序。
# Syntax
kapacitor define-topic-handler <PATH_TO_HANDLER_SCRIPT>
# Example
$ kapacitor define-topic-handler ./slack_cpu_handler.yaml
此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list topic-handlers
命令。
list topics
list topics
显示 Kapacitor 当前存储的所有主题。
$ kapacitor list topics
ID Level Collected
1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2 OK 0
32fdb276-4d60-42bc-8f5d-c093e97bd3d0:batch_cpu_alert:alert2 OK 0
666c444c-a33e-42b5-af4d-732311b0e148:batch_cpu_alert:alert2 CRITICAL 0
cpu OK 0
main:batch_load_test:alert2 OK 7
main:chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54:alert3 OK 1028
main:chronograf-v1-e77137c5-dcce-4fd5-a612-3cdaa5f98ef9:alert7 OK 0
main:cpu-alert-test:alert3 OK 0
list topic-handlers
list topic-handlers
命令显示 Kapacitor 存储的处理程序。
$ kapacitor list topic-handlers
Topic ID Kind
cpu slack slack
show-topic
使用 show-topic
命令查看主题的详细信息。
# Syntax
kapacitor show-topic [TOPIC_ID]
# Example
$ kapacitor show-topic 1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2
ID: 1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2
Level: OK
Collected: 0
Handlers: []
Events:
Event Level Message Date
cpu:nil OK cpu:nil is OK 13 Nov 17 13:34 CET
show-topic-handler
show-topic-handler
命令将主题处理程序的内容输出到控制台。
# Syntax
kapacitor show-topic-handler [TOPIC_ID] [HANDLER_ID]
# Example
$ kapacitor show-topic-handler cpu slack
ID: slack
Topic: cpu
Kind: slack
Match:
Options: {"channel":"#kapacitor"}
delete topics
使用 delete topics
命令删除一个或多个主题。
# Syntax
kapacitor delete topics <Topic-ID | Pattern>
# Examples
kapacitor delete topics 1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2
kapacitor delete topics "cluster*"
Pattern
可以是类似 grep 的模式,用于标识一组主题。例如,如果值 cluster0<N>
分配给多个 topic
,(例如 cluster01
、cluster02
、cluster03
),那么可以使用模式 "cluster*"
删除所有 cluster
主题。
此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list topics
命令。
delete topic-handlers
topic-handlers
命令删除主题处理程序。
# Syntax
kapacitor delete topic-handlers [TOPIC_ID] [HANDLER_ID]
# Example
kapacitor delete topic-handlers cpu slack
TOPIC_ID
和 HANDLER_ID
的值可以使用 list
命令确定。
此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list topics
命令。
任务和任务模板
任务和任务定义构成了 Kapacitor 的核心功能。入门指南中介绍了任务,并在 TICKscript 中详细探讨了任务。
任务模板使重用通用任务结构以创建一套类似任务变得容易。模板任务文档中介绍了它们。
define
define
命令用于从 TICKscript 创建新任务。它采用以下三种形式之一:
定义简单任务
# Syntax
kapacitor define <TASK_ID> -tick <PATH_TO_TICKSCRIPT> -type <stream|batch> [-no-reload] -dbrp <DATABASE>.<RETENTION_POLICY>
# Example
kapacitor define sandbox -tick sandbox.tick -type stream -dbrp "telegraf"."autogen"
这种形式的 define
命令需要在 define
标记后立即提供新的或现有的任务标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新任务。如果标识符已存在,则将更新现有任务。通过参数 tick
提供到 TICKscript 的必需路径。还需要任务的 -type
,以及由参数 -dbrp
标识的目标数据库和保留策略。可选的布尔参数 -no-reload
将阻止将任务重新加载到内存中。默认行为是重新加载更新的任务。
此命令不返回状态或附加消息。可能会返回一些与格式错误或无效 TICKscript 相关的错误消息。要验证结果,请使用 list tasks
命令。
从模板定义任务
# Syntax
kapacitor define <TASK_ID> -template <TEMPLATE_ID> -vars <PATH_TO_VARS_FILE> [-no-reload] -dbrp <DATABASE>.<RETENTION_POLICY>
# Example
kapacitor define cpu_idle -template generic_mean_alert -vars cpu_vars.json -dbrp "telegraf"."autogen"
这种形式的 define
命令需要在 define
标记后立即提供新的或现有的任务标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新任务。如果标识符已存在,则将更新现有任务。要使用的必需模板由 -template
参数标识。还需要由参数 -dbrp
标识的目标数据库和保留策略,以及由 -var
参数标识的包含变量定义的文件路径。可选的布尔参数 -no-reload
将阻止将任务重新加载到内存中。默认行为是重新加载更新的任务。
此任务不返回状态或附加消息。要验证结果,请使用 list tasks
命令。
从带有描述符文件的模板定义任务
# Syntax
kapacitor define <TASK_ID> -file <PATH_TO_TEMPLATE_FILE> [-no-reload]
# Example
kapacitor define mem_alert -file mem_alert_from_template.json
这种形式的 define
命令需要在 define
标记后立即提供新的或现有的任务标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新任务。如果标识符已存在,则将更新现有任务。需要提供定义模板、数据库和保留策略以及变量的文件路径,并通过 -file
参数提供。可选的布尔参数 -no-reload
将阻止将任务重新加载到内存中。默认行为是重新加载更新的任务。
此任务不返回状态或附加消息。要验证结果,请使用 list tasks
命令。
define-template
使用此命令将任务模板加载到 Kapacitor。它采用以下形式:
# Syntax
kapacitor define-template <TEMPLATE_ID> -tick <PATH_TO_TICKSCRIPT> -type <string|batch>
# Example
kapacitor define-template generic_mean_alert -tick template-task.tick -type stream
此命令需要在 define-template
标记后立即提供新的或现有模板标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新模板。如果标识符已存在,则将更新现有模板。还需要到定义模板的 TICKscript 的路径,并通过参数 -tick
提供。最后,还必须定义任务的 -type
。
此任务不返回状态或附加消息。要验证结果,请使用 list templates
命令。
enable
enable
命令启用一个或多个任务。首次创建任务时,它们处于 disabled
状态。
# Syntax
kapacitor enable <TASK_ID>
# Example
kapacitor enable cpu_alert
此命令不返回状态或附加消息。要验证结果,请使用 list tasks
命令。
disable
disable
命令禁用一个或多个活动任务。
# Syntax
kapacitor disable <TASK_ID>...
# Examples
kapacitor disable cpu_alert
kapacitor disable cpu_alert cpu_alert_topic sandbox
此命令不返回状态或附加消息。要验证结果,请使用 list tasks
命令。
reload
reload
命令禁用然后重新启用一个或多个任务。在排除任务故障时,停止并再次启动它很有用。
# Syntax
kapacitor reload <TASK_ID>
kapacitor reload cpu_alert
此命令不返回状态或附加消息。要验证结果,请使用 list tasks
命令。
如果在排除故障并更改任务,在重新加载之前,请使用更新的 TICKscript、模板或模板文件使用 define 命令重新定义。
list tasks
list tasks
命令显示 Kapacitor 当前存储的所有任务。
$ kapacitor list tasks
ID Type Status Executing Databases and Retention Policies
8405b862-e488-447d-a021-b1b7fe0d7194 stream disabled false ["telegraf"."autogen"]
batch_load_test batch enabled true ["telegraf"."autogen"]
chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54 stream enabled true ["telegraf"."autogen"]
cpu_alert stream enabled true ["telegraf"."autogen"]
cpu_idle stream disabled false ["telegraf"."autogen"]
sandbox stream disabled false ["blabla"."autogen"]
list templates
list templates
命令显示 Kapacitor 当前存储的所有模板。
$ kapacitor list templates
ID Type Vars
generic_mean_alert stream crit,field,groups,measurement,slack_channel,warn,where_filter,window
show
show
命令输出任务的详细信息。
# Syntax
kapacitor show [-replay <REPLAY_ID>] <TASK_ID>
# Example
kapacitor show cpu_alert
REPLAY_ID
是当前正在运行的回放的标识符。
显示任务输出示例
ID: cpu_alert
Template: template_id (included if task was created from a template)
Error:
Template:
Type: stream
Status: enabled
Executing: true
Created: 13 Nov 17 13:38 CET
Modified: 16 Jan 18 17:11 CET
LastEnabled: 16 Jan 18 17:11 CET
Databases Retention Policies: ["telegraf"."autogen"]
TICKscript:
stream
// Select just the cpu measurement from our example database.
|from()
.measurement('cpu')
|alert()
.crit(lambda: int("usage_idle") < 70)
// Whenever we get an alert write it to a file.
.log('/tmp/alerts.log')
DOT:
digraph cpu_alert {
graph [throughput="0.00 points/s"];
stream0 [avg_exec_time_ns="0s" errors="0" working_cardinality="0" ];
stream0 -> from1 [processed="2574"];
from1 [avg_exec_time_ns="1.92µs" errors="0" working_cardinality="0" ];
from1 -> alert2 [processed="2574"];
alert2 [alerts_triggered="147" avg_exec_time_ns="1.665189ms" crits_triggered="104" errors="0" infos_triggered="0" oks_triggered="43" warns_triggered="0" working_cardinality="1" ];
}
show-template
show-template
命令输出任务模板的详细信息。
# Syntax
kapacitor show-template <TEMPLATE_ID>
# Example
kapacitor show-template generic_mean_alert
show-template 输出示例
ID: generic_mean_alert
Error:
Type: stream
Created: 25 Oct 17 10:12 CEST
Modified: 16 Jan 18 16:52 CET
TICKscript:
// Which measurement to consume
var measurement string
// Optional where filter
var where_filter = lambda: TRUE
// Optional list of group by dimensions
var groups = [*]
// Which field to process
var field string
// Warning criteria, has access to 'mean' field
var warn lambda
// Critical criteria, has access to 'mean' field
var crit lambda
// How much data to window
var window = 5m
// The slack channel for alerts
var slack_channel = '#kapacitor'
stream
|from()
.measurement(measurement)
.where(where_filter)
.groupBy(groups)
|window()
.period(window)
.every(window)
|mean(field)
|alert()
.warn(warn)
.crit(crit)
.slack()
.channel(slack_channel)
Vars:
Name Type Default Value Description
crit lambda <required> Critical criteria, has access to 'mean' field
field string <required> Which field to process
groups list [*] Optional list of group by dimensions
measurement string <required> Which measurement to consume
slack_channel string #kapacitor The slack channel for alerts
warn lambda <required> Warning criteria, has access to 'mean' field
where_filter lambda TRUE Optional where filter
window duration 5m0s How much data to window
DOT:
digraph generic_mean_alert {
stream0 -> from1;
from1 -> window2;
window2 -> mean3;
mean3 -> alert4;
}
删除任务
delete tasks
命令移除一个或多个任务。
# Syntax
kapacitor delete tasks <Task-IDs | Pattern>
# Example
kapacitor delete tasks 8405b862-e488-447d-a021-b1b7fe0d7194
Pattern
可以是类似于 GREP 的模式,用于识别一组任务。例如,如果值 cpu0<N>
被分配给多个 task
,(例如 cpu01
、cpu02
、cpu03
),那么可以使用模式 "cpu*"
删除所有 cpu
测试。
此命令不返回状态或附加消息。它会静默地失败或成功。要验证结果,请使用 list tasks
命令。
删除模板
delete templates
命令移除一个或多个模板。
# Syntax
kapacitor delete templates <Template-IDs | Pattern>
# Example
kapacitor delete templates generic_mean_alert
Pattern
可以是类似于 GREP 的模式,用于识别一组任务模板。例如,如果值 generic0<N>
被分配给多个 template
,(例如 generic01
、generic02
、generic03
),那么可以使用模式 "generic*"
删除所有 generic
模板。
此命令不返回状态或附加消息。它会静默地失败或成功。要验证结果,请使用 list templates
命令。
Flux 任务
flux tasks
命令及其子命令管理 Kapacitor Flux 任务。
flux task create
flux task list
flux task update
flux task retry-failed
flux task log list
flux task run list
flux task run retry
flux task create
kapacitor flux task create
命令创建一个新的 Kapacitor Flux 任务。
kapacitor flux task create [flags] [flux script or '-' to read from stdin]
标志
标志 | 描述 | 输入类型 | |
---|---|---|---|
-f | --file | Flux 脚本文件路径 | string |
-h | --help | 显示命令帮助 | |
--json | 将输出格式化为 JSON |
有关使用示例,请参阅 创建 Kapacitor Flux 任务。
flux task list
kapacitor flux task list
命令列出 Kapacitor Flux 任务。
kapacitor flux task list [flags]
别名: find
, ls
标志
标志 | 描述 | 输入类型 | |
---|---|---|---|
-h | --help | 显示命令帮助 | |
-i | --id | 任务 ID | string |
--json | 将输出格式化为 JSON | ||
--limit | 要列出的任务数量(默认为 500) | integer | |
-n | --user-id | 任务所有者 ID | string |
有关使用示例,请参阅 列出 Kapacitor Flux 任务。
flux task update
kapacitor flux task update
命令更新 Kapacitor Flux 任务。
kapacitor flux task update [flags] [flux script or '-' for stdin]
标志
标志 | 描述 | 输入类型 | |
---|---|---|---|
-f | --file | Flux 脚本文件路径 | string |
-h | --help | 显示命令帮助 | |
-i | --id | (必需) 任务 ID | string |
--json | 将输出格式化为 JSON | ||
--status | 更新任务状态(active 或 inactive ) | string |
有关使用示例,请参阅 更新 Kapacitor Flux 任务。
flux task retry-failed
kapacitor flux task retry-failed
命令重试失败的 Kapacitor Flux 任务运行。
kapacitor flux task retry-failed [flags]
标志
标志 | 描述 | 输入类型 | |
---|---|---|---|
--after | 重试在此时间之后发生的运行(RFC3339 时间戳) | string | |
--before | 重试在此时间之前发生的运行(RFC3339 时间戳) | string | |
--dry-run | 输出有关将要重试的运行的信息 | ||
-h | --help | 显示命令帮助 | |
-i | --id | 任务 ID | string |
--json | 将输出格式化为 JSON | ||
--run-limit | 每个任务要重试的最大失败运行次数(默认为 100) | integer | |
--status | 更新任务状态(active 或 inactive ) | string | |
--task-limit | 要重试失败运行的最大任务数(默认为 100) | integer |
有关使用示例,请参阅 重试失败的 Kapacitor Flux 任务。
flux task log list
kapacitor flux task log list
命令输出 Kapacitor Flux 任务日志。
kapacitor flux task log list [flags]
标志
标志 | 描述 | 输入类型 | |
---|---|---|---|
-h | --help | 显示命令帮助 | |
--json | 将输出格式化为 JSON | ||
--run-id | 任务运行 ID | string | |
--task-id | (必需) 任务 ID | string |
有关使用示例,请参阅 查看 Kapacitor Flux 任务日志。
flux task run list
kapacitor flux task run list
命令列出 Kapacitor Flux 任务的运行。
kapacitor flux task run list [flags]
别名: find
, ls
标志
标志 | 描述 | 输入类型 | |
---|---|---|---|
--after | 列出在此时间之后发生的运行(RFC3339 时间戳) | string | |
--before | 列出在此时间之前发生的运行(RFC3339 时间戳) | string | |
-h | --help | 显示命令帮助 | |
--json | 将输出格式化为 JSON | ||
--limit | 要列出的任务运行次数(默认为 100) | integer | |
--run-id | 任务运行 ID | string | |
--task-id | (必需) 任务 ID | string |
有关使用示例,请参阅 管理 Kapacitor Flux 任务运行。
flux task run retry
kapacitor flux task run retry
命令重试 Kapacitor Flux 任务的运行。
kapacitor flux task run retry [flags]
标志
标志 | 描述 | 输入类型 | |
---|---|---|---|
-h | --help | 显示命令帮助 | |
--json | 将输出格式化为 JSON | ||
--run-id | (必需) 任务运行 ID | string | |
--task-id | (必需) 任务 ID | string |
有关使用示例,请参阅 管理 Kapacitor Flux 任务运行。
此页面是否对您有帮助?
感谢您的反馈!