Сенсу удалить чек с клиентов
Я создал тестовую проверку и теперь хочу ее удалить. Кажется, это не уходит от клиентов. Я использую Uchima в качестве внешнего интерфейса, и чек больше не указан в
/ проверки
Но если я смотрю клиента, он все еще имеет чек.
Единственный способ удалить чек, который я нашел, - это удалить узел и позволить ему заново добавить себя. У меня 300 клиентов, и я бы предпочел этого не делать.
7 ответов
Недавно мы столкнулись с проблемой, когда мы развернули некоторые проверки sensu через ansible, и они воссоздали существующие проверки с неправильными именами. Не было бы ничего плохого в том, чтобы позволить этому идти, кроме того, что это выглядит плохо в интерфейсе 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.
Последняя Учива может сделать это сама http://docs.uchiwa.io/en/latest/features/deleting-check-results/
Если кто-то придет к этому и захочет сделать то же самое БЕЗ сброса всей базы данных Redis, вы можете сделать следующее:
- Войдите в redis (redis-cli из командной строки)
- Выполните "keys *", чтобы получить список всех ключей
- Найдите ключ истории и ключ выполнения для комбинации сервер / проверка, которую вы хотите удалить.
Пример: Клиент: 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.
И это также можно сделать из Учивы: https://docs.uchiwa.io/reference/clients/
Флешалл является чрезмерным излишним, чтобы решить одну проверку.
Чтобы разрешить одну проверку, вы можете выполнить вызов API "решить" или нажать кнопку разрешения.
На моих серверах у меня есть задание cron, которое перебирает все события с помощью sensu-cli и разрешает все последние проверки> 1 неделю назад, чтобы предотвратить засорение панели мониторинга удаленными проверками.
Я хочу добавить ответ JonH выше:
Вы можете найти все ключи и чеки через redis-cli:
keys *:*:name_of_check
а затем пройти и (например)
del history:hostname:name_of_check
это упростит поиск узлов, имеющих старую проверку, так как код, приведенный выше, будет распечатывать только серверы и специальную проверку, а не ключи *, которые будут распечатывать все ключи.
Надеюсь это поможет!
Оказывается, вы не можете. Вы должны оформить flushall
в редис