Мониторинг подключения для Slack и PagerDuty
Мы используем PRTG для мониторинга ряда внутренних ресурсов, и мы настроили его для оповещения нас по каналу Slack и / или через PagerDuty (в зависимости от серьезности) с использованием их соответствующих API. Учитывая, что Slack и PagerDuty являются для нас внешними, мы также хотели бы отслеживать, может ли наш экземпляр PRTG получить к ним доступ - в основном, в форме самоконтроля или кто следит за сторожами?
До сих пор единственный надежный метод, который мы нашли для Slack, - это отправлять реальное сообщение на частный "тестирующий" канал Slack, например (детали URL Slack отредактированы):
POST https://hooks.slack.com/services/XXX/YYY/ZZZ
Content-Type: application/json
{ "text": " ", "channel": "#prtg-webhook-test" }
Аналогично, API событий PagerDuty представляется только POST, и допустимые действия ограничены для запуска, подтверждения и разрешения:
POST https://events.pagerduty.com/v2/enqueue
Content-Type: application/json
Есть ли хороший способ проверить HTTPS-соединение без публикации фактического сообщения Slack / создания фактического оповещения PagerDuty? Я не смог найти ничего в документации ни для сервиса, ни для креативного способа создать соответствующий датчик в PRTG.
2 ответа
Для Slack вы, скорее всего, захотите позвонить в API, а не в webhook.
Я бы порекомендовал использовать auth.test, так как это один из немногих методов, который не имеет ограничения скорости.
Кроме того, для всей службы Slack вы можете увидеть текущий статус на этой официальной веб-странице.
Для чистого подключения вы можете выполнить POST для Events API с пустой полезной нагрузкой, и вы получите сообщение об ошибке:
curl --location --request POST 'https://events.pd-staging.com/v2/enqueue' \
--header 'Content-Type: application/json' \
--data-raw '{}'
{
"status": "invalid event",
"message": "Event object is invalid",
"errors": [
"'event_action' is missing or blank",
"'routing_key' must be provided in the body, or provided in the headers using 'x-routing-key'"
]
}
Если вы также хотите проверить свой ключ маршрутизации, вы можете отправить событие подтверждения с фиктивным
dedup_key
:
curl --location --request POST 'https://events.pd-staging.com/v2/enqueue' \
--header 'Content-Type: application/json' \
--header 'Cookie: uid=rBGA1lymclmSzRCsAwO3Ag==' \
--data-raw '{
"routing_key": "<your_routing_key>",
"event_action": "acknowledge",
"dedup_key": "something_that_will_never_match_an_open_incident"
}'
{
"status": "success",
"message": "Event processed",
"dedup_key": "something_that_will_never_match_an_open_incident"
}
Обратите внимание, что это нигде не отображается в пользовательском интерфейсе PagerDuty, но в любом случае это может быть то, что вам нужно.