如何使用告警自愈模块?

关键字 ibex-server

夜莺告警自愈功能需要配合 ibex 这个模块来使用,在告警触发的时候,自动去告警的机器执行某个脚本。 ibex-server调用关系如下图所示,所以使用告警自愈模块只需要再部署 ibex-server 即可。

20230524191231

因为夜莺需要通过调用 ibex 的 HTTP 接口来下发任务,所以首先要在夜莺里增加配置,告诉它 ibex-server 的 HTTP 地址,其次 Categraf 是通过周期性请求 ibex-server 的 RPC 接口来获取新任务以及上报已经执行任务的结果,所以也需要在 Categraf 的配置文件里添加 ibex-server 的 RPC 地址。

ibex-server 的安装可以参考使用 ibex 模块做告警自愈脚本的下发执行,它也能通过多实例组成集群方式。安装完后就可以在夜莺中进行配置,菜单位置:告警自愈-自愈配置:

  1. Address = "http://127.0.0.1:10090"
  2. BasicAuthUser = "ibex"
  3. BasicAuthPass = "ibex"
  4. Timeout = 3000

然后在 Categraf 的主配置文件中修改配置:

  1. [global]
  2. ...
  3. # 机器名,作为本机的唯一标识,会为时序数据自动附加一个 agent_hostname=$hostname 的标签
  4. # hostname 配置如果为空,自动取本机的机器名
  5. # hostname 配置如果不为空,就使用用户配置的内容作为hostname
  6. # 用户配置的hostname字符串中,可以包含变量,目前支持两个变量,
  7. # $hostname 和 $ip,如果字符串中出现这两个变量,就会自动替换
  8. # $hostname 自动替换为本机机器名,$ip 自动替换为本机IP
  9. hostname = ""
  10. ...
  11. # 是否启用告警自愈agent
  12. [ibex]
  13. enable = true
  14. ## ibex flush interval
  15. interval = "1000ms"
  16. ## n9e ibex server rpc address
  17. servers = ["127.0.0.1:20090"]
  18. ## temp script dir
  19. meta_dir = "./meta"

随后就可以启动 Categraf ,当日志中出现关键字[*agent.IbexAgent] started代表 ibex-agent 插件正常启动。最后我们就可以选择告警自愈-执行历史-创建临时任务选项,即可进行告警自愈的测试。

💡 注意告警自愈里 Host 值需要填写成要执行脚本机器中 Categraf 所对应的 hostname 值。通常,你可以到机器列表页面,筛选机器,然后点击机器标识那一列表头上的按钮来复制机器列表。