Сенсу удалить чек с клиентов

Я создал тестовую проверку и теперь хочу ее удалить. Кажется, это не уходит от клиентов. Я использую 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 в редис

Другие вопросы по тегам