- PVSM.RU - https://www.pvsm.ru -
Привет! Сегодня я хочу рассказать вам о своём новом детище — AlertCLI (https://github.com/romashqua/alertcli.git [1]). Это CLI-утилита для работы с Alertmanager, которая превращает ваши страдания от мониторинга в... ну, скажем так, в менее мучительные страдания. Потому что давайте признаем: когда в 3 часа ночи звонит PagerDuty, хочется не решать проблемы, а решить того, кто их создал.
Все мы любим Alertmanager. Ну как любим... Терпим. Потому что альтернатив особо нет. Но почему для простого просмотра алертов нужно:
Открыть браузер
Найти вкладку (которая у вас уже открыта, но вы её потеряли среди 200 других)
Дождаться загрузки (пока вы молились, чтобы Prometheus не упал)
Прокликивать интерфейс, который последний раз видел UX-дизайнера в 2016 году
AlertCLI решает эту проблему так же элегантно, как кувалда решает вопрос с гвоздём.))))))
# Клонируем (не переживайте, это не клонирование в стиле "Острова доктора Моро")
git clone https://github.com/romashqua/alertcli.git
cd alertcli
# Собираем (предупреждение: процесс может вызвать ностальгию по "Hello World")
go build -o alertctl
# Устанавливаем (sudo — это как "пожалуйста", но для компьютера)
sudo mv alertctl /usr/local/bin/
Альтернативно — можно скачать готовый бинарник и пропустить этап "а почему у меня не компилируется?".
# Все алерты (включая те, что вы старательно игнорируете)
alertctl alerts list -A
# Только silenced (чтобы вспомнить, что вы уже "пофиксили" эти проблемы)
alertctl alerts list -s
# Только critical (когда хотите по-настоящему испугаться)
alertctl alerts list -l critical
# Создаём silence (или "временно отключаем мониторинг", как говорят в отчётах)
alertctl silences create
--comment "Planned maintenance"
--duration 8h # Чисто теоретически, должно хватить
--alertname "MemoryLeak" # Который мы "обязательно пофиксим в следующем спринте"
--instance "legacy-server-01" # Которому уже 10 лет, но "оно же работает"
# Для bash (тех, кто всё ещё живёт в 2005)
echo 'source <(alertctl completion bash)' >> ~/.bashrc
# Для zsh (модные ребята)
echo 'source <(alertctl completion zsh)' >> ~/.zshrc
# Для fish (экстремалы)
alertctl completion fish > ~/.config/fish/completions/alertctl.fish
Раньше:
Открываем Alertmanager
Прокручиваем 500 алертов
Находим тот самый MemoryLeak
Осознаём, что это production
Паникуем
Теперь:
alertctl alerts list -l critical | grep MemoryLeak
Паника остаётся, но наступает на 4 шага быстрее!
Раньше:
Создаём silence через веб-интерфейс
Тратим 5 минут на поиск нужной кнопки
Ошибаемся с таймингом
Получаем алерт ночью
Теперь:
alertctl silences create --alertname "FlakyTest" --duration 168h # Неделя — это разумно, да?
В: Это точно работает?
О: Работает лучше, чем моё утреннее кофе.
В: А что, если у меня старая версия Alertmanager?
О: AlertCLI поддерживает API v1 и v2. Если у вас что-то древнее — может, пора апгрейдить?
В: Почему я должен использовать это, а не веб-интерфейс?
О: Ну, во-первых, это круто. Во-вторых, попробуйте вызвать веб-интерфейс из скрипта. В-третьих, вы же читаете Хабр, вы не можете не любить CLI!
AlertCLI — это как ssh для Alertmanager:
Быстро
Удобно
Позволяет делать всё, не вставая из терминала
Иногда пугает новичков
Попробуйте и, возможно, вы наконец-то перестанете ненавидеть мониторинг. Ну или хотя бы ненавидеть его чуть меньше.
P.S. Если найдёте баги — это фичи. Если фичи — это было запланировано. Если ничего не работает — ну, вы знаете, где Issues на GitHub.
Так же любые помидоры кидайте смело, делал тулзу для себя и планирую до конца года порадовать вас, и себя более крупным проектом, которого ру сегмент для опенсурса еще не видал :-)
ДОБРА БОБРА, СТАБИЛЬНОГО ПРОДА <3
Автор: Romashqua
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/424056
Ссылки в тексте:
[1] https://github.com/romashqua/alertcli.git: https://github.com/romashqua/alertcli.git
[2] Источник: https://habr.com/ru/articles/923762/?utm_source=habrahabr&utm_medium=rss&utm_campaign=923762
Нажмите здесь для печати.