Exec 事件处理程序
Exec 事件处理程序用于执行外部程序。事件数据会通过 STDIN 传递给该进程。
选项
可以在 处理程序文件 中或在 TICKscript 中使用 .exec() 时设置以下 Exec 事件处理程序选项。
| 名称 | 类型 | 描述 |
|---|---|---|
| prog | string | 要执行的程序路径。 |
| args | 字符串列表 | 程序参数列表。 |
示例:处理程序文件
id: handler-id
topic: topic-name
kind: exec
options:
prog: /path/to/executable
args:
- 'executable arguments'示例:TICKscript
|alert()
// ...
.exec('/path/to/executable', 'executable arguments')使用 Exec 事件处理程序
Exec 事件处理程序既可以在 TICKscript 中使用,也可以在处理程序文件中使用,以便根据告警逻辑执行外部程序。
注意: Exec 程序是以
kapacitor用户身份运行的,该用户通常仅能访问默认的系统$PATH。如果使用的可执行文件不在$PATH中,请传递该可执行文件的绝对路径。
从 TICKscript 执行外部程序
以下 TICKscript 使用 .exec() 事件处理程序,在空闲 CPU 使用率低于 10% 时执行 sound-the-alarm.py Python 脚本。
exec-cpu-alert.tick
stream
|from()
.measurement('cpu')
|alert()
.crit(lambda: "usage_idle" < 10)
.exec('/usr/bin/python', 'sound-the-alarm.py')从已定义的处理程序中执行外部程序
以下设置会将告警发送到 cpu 主题,消息内容为“Hey, check your CPU”。添加了一个订阅 cpu 主题的 Exec 处理程序,每当发布告警消息时,它就会执行 sound-the-alarm.py Python 脚本。
创建将警报消息发布到主题的 TICKscript。当空闲 CPU 使用率低于 10% 时,下面的 TICKscript 将警报消息发送到 cpu 主题。
cpu_alert.tick
stream
|from()
.measurement('cpu')
|alert()
.crit(lambda: "usage_idle" < 10)
.message('Hey, check your CPU')
.topic('cpu')添加并启用 TICKscript
kapacitor define cpu_alert -tick cpu_alert.tick
kapacitor enable cpu_alert创建一个订阅 cpu 主题并使用 Exec 事件处理程序来执行 sound-the-alarm.py Python 脚本的处理程序文件。
exec_cpu_handler.yaml
id: exec-cpu-alert
topic: cpu
kind: exec
options:
prog: '/usr/bin/python'
args:
- 'sound-the-alarm.py'添加处理器
kapacitor define-topic-handler exec_cpu_handler.yaml此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Kapacitor 和本文档提供反馈和错误报告。要获取支持,请使用以下资源: