如何使用告警自愈模块?
关键字 ibex-server
夜莺告警自愈功能需要配合 ibex 这个模块来使用,在告警触发的时候,自动去告警的机器执行某个脚本。 ibex-server调用关系如下图所示,所以使用告警自愈模块只需要再部署 ibex-server 即可。
因为夜莺需要通过调用 ibex 的 HTTP 接口来下发任务,所以首先要在夜莺里增加配置,告诉它 ibex-server 的 HTTP 地址,其次 Categraf 是通过周期性请求 ibex-server 的 RPC 接口来获取新任务以及上报已经执行任务的结果,所以也需要在 Categraf 的配置文件里添加 ibex-server 的 RPC 地址。
ibex-server 的安装可以参考使用 ibex 模块做告警自愈脚本的下发执行,它也能通过多实例组成集群方式。安装完后就可以在夜莺中进行配置,菜单位置:告警自愈-自愈配置:
Address = "http://127.0.0.1:10090"
BasicAuthUser = "ibex"
BasicAuthPass = "ibex"
Timeout = 3000
然后在 Categraf 的主配置文件中修改配置:
[global]
...
# 机器名,作为本机的唯一标识,会为时序数据自动附加一个 agent_hostname=$hostname 的标签
# hostname 配置如果为空,自动取本机的机器名
# hostname 配置如果不为空,就使用用户配置的内容作为hostname
# 用户配置的hostname字符串中,可以包含变量,目前支持两个变量,
# $hostname 和 $ip,如果字符串中出现这两个变量,就会自动替换
# $hostname 自动替换为本机机器名,$ip 自动替换为本机IP
hostname = ""
...
# 是否启用告警自愈agent
[ibex]
enable = true
## ibex flush interval
interval = "1000ms"
## n9e ibex server rpc address
servers = ["127.0.0.1:20090"]
## temp script dir
meta_dir = "./meta"
随后就可以启动 Categraf ,当日志中出现关键字[*agent.IbexAgent] started
代表 ibex-agent 插件正常启动。最后我们就可以选择告警自愈-执行历史-创建临时任务选项,即可进行告警自愈的测试。
💡 注意告警自愈里 Host 值需要填写成要执行脚本机器中 Categraf 所对应的 hostname 值。通常,你可以到机器列表页面,筛选机器,然后点击机器标识那一列表头上的按钮来复制机器列表。