Як надсилати сповіщення HostTracker у Slack
Сповіщення Slack від HostTracker - це звичайний HTTP-вебхук контакту: вставте URL-адресу Slack Incoming Webhook, і HostTracker публікуватиме повідомлення в цей канал щоразу, коли будь-який із ваших моніторів змінює стан. Окремого типу сповіщень "Slack" на бекенді не існує. Функція Slack Incoming Webhooks приймає саме такий запит, який робить HTTP-контакт. Уся інтеграція - це одна URL-адреса, без жодного застосунку для встановлення на боці HostTracker і без бота для авторизації в Slack.
Як працює інтеграція
Коли ви додаєте новий контакт у HostTracker і обираєте Slack у списку типів контакту, ви не створюєте якийсь інший вид контакту за лаштунками. Він зберігається як HTTP-контакт, і HostTracker розпізнає його як призначення Slack, бо адреса, яку ви вставили, починається з https://hooks.slack.com/. Саме ця деталь перемикає формат повідомлення з загального JSON-навантаження на сумісне зі Slack повідомлення, тому налаштування вимагає лише URL-адреси й нічого більше.
Налаштуйте сповіщення Slack крок за кроком
- У Slack відкрийте api.slack.com/apps і оберіть Create New App, тоді From scratch. Дайте йому ім'я на кшталт "HostTracker alerts" і оберіть робочий простір, куди мають потрапляти сповіщення.
- У налаштуваннях застосунку відкрийте Incoming Webhooks і увімкніть цю функцію.
- Натисніть Add New Webhook to Workspace, оберіть канал, що має отримувати сповіщення HostTracker, і натисніть Allow.
- Slack згенерує URL-адресу вебхука, що починається з
https://hooks.slack.com/services/. Скопіюйте її. - У HostTracker додайте новий контакт, оберіть Slack у списку типів контакту, а тоді вставте URL-адресу вебхука в поле адреси.
- Збережіть контакт, тоді скористайтеся Send test, щоб підтвердити, що тестове повідомлення прийшло в канал, перш ніж покладатися на нього.
Якщо у вас уже є вебхук, створений через старий, тепер застарілий потік каталогу застосунків Slack, його URL-адреса й далі працює як є; вставте її так само. Абсолютно новий вебхук доведеться проводити через застосунковий потік вище, бо Slack припинив підтримку класичного для нових налаштувань.
Як виглядає сповіщення в каналі
Кожне сповіщення потрапляє як коротке текстове повідомлення, а не форматована картка. Сповіщення Down називає сайт, час і опис збою, наприклад тайм-аут з'єднання чи код помилки HTTP. Сповіщення Up називає сайт, час відновлення і те, скільки часу він був недоступний. Нагадування про тривалу недоступність повторює тривалість збою й помилку, тож ви бачите, чи щось змінилося, не відкриваючи HostTracker.
Якщо кілька ваших моніторів провалюються в короткому вікні часу, HostTracker може об'єднати їх в одне повідомлення замість того, щоб публікувати одне за одним. Це опція "Group events" на контакті. Більш просунуті користувачі також можуть замінити повідомлення за замовчуванням власним шаблоном, поки він лишається валідним JSON вебхука Slack із полем text.
Вибір, які події доходять до каналу
Контакт Slack, як і будь-який інший контакт, підписується на конкретні монітори й конкретні типи подій, а не на весь ваш акаунт. Є три події на вибір: Down (сайт щойно ліг), Up (сайт відновився) і Repeat (нагадування, що він усе ще недоступний). Поширений патерн - спрямовувати Down і Up у спільний командний канал, щоб усі бачили початок і кінець інциденту, і лишати Repeat вимкненим, якщо нагадування були б шумом, або увімкненим для каналу, присвяченого інциденту, що потребує постійної уваги, поки його не виправлять.
Діагностика
Кілька речей ламають інтеграцію зі Slack без жодних видимих ознак, бо Slack не передає HostTracker помилку, яку той міг би показати всередині застосунку:
- Відкликаний чи видалений вебхук. Якщо застосунок Slack видалили або вебхук перегенерували, стара URL-адреса перестає приймати публікації. HostTracker продовжує надсилати на неї, а доставка провалюється, без жодного повідомлення всередині HostTracker про те, що канал замовк. Запускайте Send test знову щоразу, коли хтось чіпає налаштування застосунку Slack, чи періодично як звичку.
- Неправильний канал. Incoming Webhook прив'язаний до каналу, який ви обрали під час створення, і не може бути перенаправлений пізніше. Якщо сповіщення потрапляють не туди, створіть у Slack новий вебхук для потрібного каналу і вставте нову URL-адресу в контакт.
- Заархівований канал. Slack перестає приймати публікації вебхука, щойно канал призначення заархівовано. Розархівуйте його, або створіть новий вебхук, спрямований на інший, активний канал, і оновіть контакт.
- Немає прав на додавання застосунків. Деякі робочі простори Slack обмежують, хто може встановлювати нові застосунки чи схвалювати доступ до вебхуків. Якщо крок 1 чи крок 3 вище затемнений чи заблокований, попросіть адміністратора робочого простору або створити вебхук за вас, або надати вам права керувати застосунками.
Жодна з цих ситуацій не показується як помилка всередині самого HostTracker. Контакт і далі виглядає збереженим і активним, бо HostTracker не має способу дізнатися, що Slack відхилив доставку на своєму боці. Send test після будь-якої зміни на боці Slack - єдиний надійний спосіб підтвердити, що канал усе ще отримує сповіщення.
Пов'язане читання
Slack працює найкраще як один канал у ширшому налаштуванні сповіщень, а не єдиний. Повний перелік каналів і те, як побудувати простий ланцюжок ескалації, дивіться в посібнику як отримувати сповіщення від HostTracker. Про те, що HostTracker перевіряє, перш ніж вирішити, що ваш сайт недоступний, читайте на сторінках можливості HostTracker і розподілений моніторинг доступності.
- Усі посібники з моніторингу - хаб для кожного типу перевірки, що може публікувати в Slack.
- Сайт недоступний для всіх чи лише для мене - що робити насамперед, коли повідомлення Down потрапляє в канал.
- Можливості HostTracker
- Розподілений моніторинг доступності
- Як отримувати сповіщення від HostTracker