我创建了一个测试检查,现在我想删除它。它似乎并没有从客户端中消失。我使用 uchima 作为前端,并且该检查不再列在
/检查
但如果我查看客户端,它仍然有检查。
我发现删除检查的唯一方法是删除节点并让它重新添加。我有 300 个客户端,我不想这样做。
答案1
最近遇到了一个问题,我们通过 ansible 部署了一些 sensu 检查,他们用错误的名称重新创建了现有的检查。放弃这个问题没有什么问题,只是它在 uchiwa 界面上看起来很糟糕。我按照上述步骤操作,但它们一定是来自过时的 sensu 版本。以下是我为删除这些检查而修改的步骤。
- 登录 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 中删除。
答案2
最新的 Uchiwa 可以自己做到这一点http://docs.uchiwa.io/en/latest/features/deleting-check-results/
答案3
如果有人遇到这种情况并想执行相同操作而不刷新整个 Redis DB,您可以执行以下操作:
- 登录 redis(命令行中使用 redis-cli)
- 执行“keys *”列出所有键
- 找到要删除的服务器/检查组合的历史记录密钥和执行密钥
例如:客户端:SomeServer,检查:check_nginx
要运行的命令:
del execution:SomeServer:check_nginx
del history:SomeServer:check_nginx
答案4
事实证明你不能。你必须flushall
在 redis 中发出