从客户删除支票

我创build了一个testing检查,现在我想删除它。 它似乎没有离开客户。 我使用uchima作为前端,检查不再列在

/检查

但是,如果我查看一个客户,它仍然有检查。

我发现删除检查的唯一方法是删除节点,让它重新添加自己。 我有300个客户,我宁愿不这样做。

所以最近遇到了一个问题,我们通过可靠的方式部署了一些sensu检查,他们用不正确的名字重新创build现有的检查。 在uchiwa界面中,除了看起来不好以外,没有任何问题。 我遵循上面的步骤,但他们一定是从过时的版本的sensu。 以下是我所做的删除这些检查的修改步骤。

  • login到Redis CLI redis-cli
  • 执行keys *server_name*列出所有与相关服务器有关的检查
  • 键入smembers result:server_name
  • srem result:server_name check_to_remove
  • del history:server_name:check_to_remove result:server_name:check_to_remove

这应该完全从Redis中删除支票,然后从Sensu中删除。

所以原来你不能。 你必须在redis中发布flushall

如果有人想到这一点,并且希望在不刷新整个Redis DB的情况下执行相同的操作,则可以执行以下操作:

  • 从命令行login到redis(redis-cli)
  • 执行“键*”列出所有的键
  • find要删除的服务器/检查组合的历史logging键和执行键

示例:客户端:SomeServer,请检查:check_nginx

要运行的命令:

 del execution:SomeServer:check_nginx del history:SomeServer:check_nginx 

由于敏0.21.0有一个DELETE /results/:client/:check API应该在这里帮助。 在此处查看文档: https : //sensuapp.org/docs/0.29/api/results-api.html#resultsclientcheck-delete

这也可以从uchiwa完成: https ://docs.uchiwa.io/reference/clients/#request-to-delete-check-result-data

一个flushall是解决一个单一的检查极端矫枉过正。

要解决单个检查,您可以发出“解决”API调用,或单击解决button。

在我的服务器上,我有一个cron作业,用所有事件进行迭代,并解决所有上次检查> 1周前的问题,以防止删除的检查堵塞仪表板。

我想在上面加上JonH的答案:

你可以通过redis-clifind所有的密钥和检查:

 keys *:*:name_of_check 

然后通过(例如)

 del history:hostname:name_of_check 

这将使search具有旧检查的节点更容易sorting,因为上面的代码将只打印服务器和特定的检查,而不是打印所有密钥的密钥*。

希望这可以帮助!