Настройка и тестирование интеграции ServiceNow с Integrations 2.0
-
[Введение]
[Почему это важно?]
[Предварительные условия и допущения]
[Шаг 1. Настройка реестра приложений OAuth в ServiceNow]
[Шаг 2: Настройка интеграций 2.0 в ThousandEyes]
[Шаг 3: Настройка оповещений ThousandEyes для уведомления службы эксплуатации в ServiceNow]
[Шаг 4: Добавление бизнес-правила в ServiceNow для автоматического устранения инцидента после снятия оповещения (в будущем вы будете благодарны себе за это)]
[Тестирование]
[Устранение неполадок ServiceNow]
[Заключение]
[Дополнительные ресурсы] Введение
Одной из лучших особенностей платформы ThousandEyes является возможность интеграции и обмена оповещениями с множеством других программ. Оповещения ThousandEyes можно настроить так, чтобы они запускали инциденты ServiceNow и уведомляли заинтересованные стороны приложения и/или сети в режиме реального времени, когда сервис не работает.
Интеграция с ServiceNow может быть реализована двумя способами:- С помощью нашей классической
интеграции 1.0 - Создание соединения с помощью настраиваемых веб-хуков с помощью Integrations 2.0
Ранее настраиваемые веб-хуки настраивались по-другому. Однако с введением Integrations 2.0 интеграция разбита на две части:
коннекторы
(обеспечивающие соединение с интеграцией) и
операции
(фактические действия, которые выполняются). Это позволяет выполнять несколько операций с использованием одного и того же коннектора.
Например: предположим, я хочу отправить разные параметры в ServiceNow для оповещений, касающихся Network & App Synthetics, Endpoint Experience и Devices.
Используя Integrations 1.0, мне нужно было бы настроить как параметры, так и саму интеграцию для всех трех. Однако, используя Integrations 2.0, мне нужно было бы создать отдельные операции для каждого, но все три могли бы использовать
один
и тот же
коннектор.
Почему это важно?
Если в вашей организации существуют требования по соответствию стандарту OAuth2.0, вы, несомненно, знакомы с необходимостью использования настраиваемых веб-хуков. В этом документе представлено пошаговое руководство по настройке этой интеграции.
Примечание. Integrations 1.0 по-прежнему поддерживается и может использоваться, если у вас нет требований по соответствию, связанных с OAuth 2.0, или вы не хотите настраивать интеграцию с помощью нескольких операций с одним и тем же коннектором.
Предварительные условия и допущения
В этом документе предполагается, что у вас есть рабочий экземпляр ServiceNow и учетная запись ThousandEyes с правами администратора в обоих случаях, и вы уже настроили тесты и оповещения ThousandEyes.
Шаг 1. Настройка реестра приложений OAuth в ServiceNow
Войдите в свой экземпляр ServiceNow.
В навигаторе на левой панели введите «Реестр приложений» и щелкните
«Система OAuth
» ->
«Реестр приложений
».
Нажмите кнопку
«New»
(Новый).
Выберите
«Создать конечную точку OAuth API для внешних клиентов
».
Введите следующие данные:
![image-20251021-113614.png]
Имя:
любое описательное имя, соответствующее стандартам вашей организации. Мы использовали «
ThousandEyes Webhook Client
».
Идентификатор клиента:
он генерируется автоматически.
Обязательно запишите его
!
Секретный ключ клиента:
он также генерируется автоматически. Если инструмент не отображает его при создании конечной точки, щелкните имя конечной точки еще раз и обновите секретный ключ клиента после повторного отображения параметров.
Немедленно запишите его, так как он будет отображаться только один раз.
Если вы его потеряете, вам нужно будет сгенерировать его заново.
URL перенаправления:
https://app.thousandeyes.com/namespace/integrations/AuthCallbackPage.html
Активен
: это поле должно быть отмечено по умолчанию, но стоит проверить еще раз.
Тип клиента
: выберите
«Интеграция как услуга»
в раскрывающемся списке.
Это создаст запись в
реестре приложений
.
Примечание
: в Интернете есть много документации, в которой рекомендуется тестировать функциональность, запуская вызов API к /oath_token.do
с идентификатором клиента и секретным ключом клиента для тестирования. Мы не рекомендуем это делать, так как более новые версии ServiceNow, такие как Xanadu, не позволяют этого. Это связано с тем, что эти версии по умолчанию применяют PKCE ко всем новым клиентам OAuth.
Шаг 2: Настройка Integrations 2.0 в ThousandEyes
Войдите в ThousandEyes и перейдите в раздел
«Управление»
>
«Интеграции»
>
«Интеграции 2.0».
Там перейдите в
раздел «Коннекторы»
и нажмите
«+Новый коннектор
». Выберите
«Общий коннектор»
из доступных вариантов, и откроется окно с подробной информацией, как показано ниже:
![image-20251021-142743.png]
Введите требуемые данные:
Имя:
любое описательное имя, позволяющее отличить коннектор как принадлежащий ServiceNow.
Цель:
базовый URL-адрес вашего экземпляра ServiceNow.
Предустановленная конфигурация:
оставьте значение по умолчанию.
Тип аутентификации:
OAuth Code.
URL аутентификации:
https://
<your-instance>
.service-now.com/oauth_auth.do
URL токена:
https://
<your-instance>
.service-now.com/oauth_token.do
Идентификатор клиента:
Идентификатор клиента ServiceNow из шага 1 (мы просили вас его записать!).
Секретный ключ клиента:
автоматически сгенерированный секретный ключ клиента из шага 1. Мы скопировали его ранее.
Токен:
нажмите «
Получить токен
», чтобы его получить. Вы должны перейти на страницу, показанную ниже (скриншот).
![image-20251021-143332.png]
Примечание
: в некоторых клиентских средах перед переходом на эту страницу может появиться дополнительное окно входа в систему. В этом случае войдите в систему, нажмите
«Разрешить»
, и токен будет получен.
После получения токена нажмите «
Сохранить и назначить операцию
». Если операция прошла успешно, вы увидите сообщение «Соединитель
<ИМЯ>
успешно сохранен».
Окно
«Управление операциями
» должно появиться автоматически, но если этого не произошло, вы можете перейти в него вручную, перейдя на вкладку
«Операции
».
На этой странице нажмите
«+Новая операция
». В раскрывающемся списке выберите
«Пользовательский веб-хук
». Откроется окно с запросом на ввод данных в следующие поля:
Путь
: /api/now/v1/table/incident
Пользовательские заголовки
:
+Новый заголовок
->content-type:application/json
Параметры запроса URL
: оставьте пустым
Тело
:
{ "short_description": "ThousandEyes Alert: '{{alert.rule.name}}' for test {{alert.test.name}}", "description": "An alert was triggered for test '{{alert.test.name}}.\nAlert Type: {{alert.test.testType}}\nSeverity: {{alert.severity.id}}\nView details in ThousandEyes: https://app.thousandeyes.com/alerts/list/?__a={{alert.rule.account.id}}", "impact": "2", "urgency": "2", "state": {{#if (eq type.id 2)}}1{{else}}6{{/if}}, "caller_id": "62826bf03710200044e0bfc8bcbe5df1", "correlation_id": "{{alert.id}}", "correlation_display": "{{alert.id}}", "close_code": "{{#if (eq type.id 1)}}Resolved by ThousandEyes Alert Clear{{/if}}", "close_notes": "{{#if (eq type.id 1)}}Alert cleared automatically by ThousandEyes integration.{{/if}}"
}
Примечание:
вам не обязательно использовать строку caller_id. Однако имейте в виду, что если она установлена на Client ID из реестра приложений OAuth, инцидент в ServiceNow будет заполнять поле Caller соответствующим именем пользователя или адресом электронной почты, соответствующим указанному здесь caller_id.
![image-20251025-091104 (1).png]
Нажмите
«Сохранить и назначить соединитель
». Откроется страница
«Управление соединителем
». Выберите ранее созданный соединитель из раскрывающегося списка и нажмите
«Сохранить
».
Перейдите на вкладку
«Операции
». Выберите созданную операцию и нажмите
«Тест
».
Если тест выполнится правильно, вы увидите сообщение «Тестирование завершено успешно!».
Если тест не выполняется правильно, вы увидите сообщение «В ожидании» или «Неудача».
В этом случае убедитесь, что поля конфигурации настроены правильно, и повторите тест.
Нажмите
«Сохранить»
еще раз.
Если конфигурация работает как ожидалось, вы увидите, что статус коннектора отображается как «Подключено».
Шаг 3. Настройте оповещения ThousandEyes для уведомления службы в ServiceNow
В ThousandEyes перейдите в
раздел «Управление»
>
«Правила оповещений
».
Выберите оповещение, для которого вы хотите настроить уведомление, и нажмите на него.
Перейдите на вкладку
«Уведомления»,
как показано ниже.
В разделе
«Интеграции»
выберите созданную вами операцию (в нашем примере — SNOW).
![susfranc_4-1764972724264.png]
Нажмите
«Сохранить изменения».
Шаг 4.
Добавьте бизнес-правило в ServiceNow, чтобы автоматически устранять инцидент при снятии оповещения (в будущем вы будете благодарны себе за это).
Этот шаг гарантирует, что инциденты будут создаваться с полем
«Состояние»
установленным в
«Новый»
при срабатывании оповещения, а также в
«Устранен»
при срабатывании оповещения.
В левой панели навигатора ServiceNow введите «Бизнес-правила».
Перейдите в
«Определение системы»
>
«Бизнес-правила
».
Нажмите
«Новое»
в правом верхнем углу и присвойте имя бизнес-правилу. Мы рекомендуем использовать описательное название, например «Обработка оповещений ThousandEyes».
Настройте следующие поля, как показано на рисунке:
Таблица:
Инцидент
Дополнительно:
отмечено
Когда
: До
Вставка:
отмечено
Обновление:
не отмечено
Удаление:
Не отмечено
![image-20251024-221048.png]
На вкладке
«Дополнительно»
оставьте
поле «Условие»
пустым и добавьте следующий скрипт
(function executeBR(current, previous /null on insert/) { gs.info('Alert correlation_id: ' + current.correlation_id + ', state: ' + current.state); if (current.state == 1) { // Trigger alert: always allow creation gs.info('Trigger alert received → creating new incident.'); return; } // Clear alert: search for existing unresolved incident var gr = new GlideRecord('incident'); gr.addQuery('correlation_id', current.correlation_id); gr.addQuery('state', '!=', 6,7); // only unresolved incidents gr.addQuery('caller_id', current.caller_id); // add if you want to clear incidents created by the ThousandEyes user only gr.query; if (gr.next) { gs.info('Existing unresolved incident found: ' + gr.number + ', state: ' + gr.state); // Resolve the existing incident gr.state = 6; gr.close_code = 'Solved (Permanently)'; gr.close_notes = 'Automatically resolved by ThousandEyes alert clear.'; gr.update; gs.info('Incident ' + gr.number + ' resolved automatically.'); // Prevent creating a new incident current.setAbortAction(true); gs.info('New incident creation aborted for clear alert.'); } else { // No existing unresolved incident found → skip creating a resolved incident current.setAbortAction(true); gs.info('Clear alert received but no unresolved incident exists → abort creation.'); } })(current, previous);
Примечание
. Этот скрипт проверяет текущее состояние оповещения и, если это новое оповещение, которое сработало, как указано в type.id от ThousandEyes, установленном в 1, создается новый инцидент, в противном случае, если type.id равен 2, что указывает на то, что предыдущее оповещение теперь снято, он будет искать идентификатор корреляции, чтобы определить правильный инцидент и пометить его как «Решено».
Нажмите
«Обновить»
в правом верхнем углу, чтобы обновить бизнес-правило.
Тестирование
Сработайте оповещение в ThousandEyes
: создайте оповещение, которое сработает при следующем запуске теста, например, HTTP-код ответа 200 для тестов, которые работают нормально. Установите его в положение
«Вручную»
и выберите, чтобы оно срабатывало, если по крайней мере 1 агент затронут 1 раз из 1 подряд. На вкладке
«Уведомления»
оповещения убедитесь, что вы сопоставили оповещение с только что созданной интеграцией.
Перейдите в ServiceNow. Нажмите
«Все»
и выполните поиск по слову «Инцидент». Выберите
«Открытые инциденты»
и проверьте, отображается ли сработавшее оповещение.
Если инциденты были созданы как ожидалось, вы увидите таблицу, похожую на приведенную ниже:
![susfranc_6-1764973147606.png]
Проверьте передаваемые данные, щелкнув один из инцидентов, чтобы получить дополнительную информацию. Пример показан ниже:
![susfranc_7-1764973147616.png]
Устранение неполадок ServiceNow
Если инциденты не создаются, перейдите в
«Системные журналы»
>
«Все»
и найдите журналы, связанные с вашим веб-хуком.
Если вы хотите увидеть, что отправляет ThousandEyes, перейдите в
раздел «Определение системы
» >
«Бизнес-правила
» и добавьте правило, нажав
«Новое»
в правом верхнем углу. Кроме того, вы можете обновить скрипт в бизнес-правиле, созданном в шаге 4, найдя название правила в разделе
«Бизнес-правила
».
Если вы решите добавить новое правило, добавьте следующие данные.
Таблица:
Инцидент
Когда:
До
Вставить:
Проверено
Условие:
Оставьте пустым
Дополнительно:
отмечено
На вкладке «
Дополнительно
» оставьте
поле «Условие»
пустым и добавьте следующее в поле
«Скрипт»:
(function executeRule(current, previous) { try { gs.log("TE Business Rule fired for incident: " + current.number); gs.log("Full incident record: " + JSON.stringify({ short_description: current.short_description, description: current.description, source: current.source, event_class: current.event_class, resource: current.resource, node: current.node, metric_name: current.metric_name, u_source: current.u_source, u_event_class: current.u_event_class, u_resource: current.u_resource, u_node: current.u_node, u_metric_name: current.u_metric_name, u_type: current.u_type, u_severity: current.u_severity, u_additional_info: current.u_additional_info })); } catch (e) { gs.error("TE Logging Business Rule error: " + e.message); } })(current, previous);
Перейдите в
«Системные журналы»
>
«Записи журнала скриптов»,
как показано ниже, чтобы увидеть сообщения, зарегистрированные в ThousandEyes.
![susfranc_8-1764973242609.png]
Вывод
Если вы смогли убедиться, что ваши оповещения срабатывают правильно, поздравляем! Вы успешно интегрировали ThousandEyes и ServiceNow.
Дополнительные ресурсы
Документация
ThousandEyes
Доку
ментация ServiceNow
[Нужна дополнительная помощь? Обратитесь в службу поддержки ThousandEyes!]</your-instance></your-instance>









- С помощью нашей классической
-
Отличный контент, Сушила!
-
Отличная техническая статья, спасибо!
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти