<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Настройка и тестирование интеграции ServiceNow с Integrations 2.0]]></title><description><![CDATA[<p dir="auto">[Введение]<br />
[Почему это важно?]<br />
[Предварительные условия и допущения]<br />
[Шаг 1. Настройка реестра приложений OAuth в ServiceNow]<br />
[Шаг 2: Настройка интеграций 2.0 в ThousandEyes]<br />
[Шаг 3: Настройка оповещений ThousandEyes для уведомления службы эксплуатации в ServiceNow]<br />
[Шаг 4: Добавление бизнес-правила в ServiceNow для автоматического устранения инцидента после снятия оповещения (в будущем вы будете благодарны себе за это)]<br />
[Тестирование]<br />
[Устранение неполадок ServiceNow]<br />
[Заключение]<br />
[Дополнительные ресурсы] Введение<br />
Одной из лучших особенностей платформы ThousandEyes является возможность интеграции и обмена оповещениями с множеством других программ. Оповещения ThousandEyes можно настроить так, чтобы они запускали инциденты ServiceNow и уведомляли заинтересованные стороны приложения и/или сети в режиме реального времени, когда сервис не работает.<br />
Интеграция с ServiceNow может быть реализована двумя способами:</p>
<ol>
<li>С помощью нашей классической<br />
<a href="https://docs.thousandeyes.com/product-documentation/integration-guides#version-1-classic" rel="nofollow ugc">интеграции 1.0</a></li>
<li>Создание соединения с помощью настраиваемых веб-хуков с помощью Integrations 2.0<br />
Ранее настраиваемые веб-хуки настраивались по-другому. Однако с введением Integrations 2.0 интеграция разбита на две части:<br />
коннекторы<br />
(обеспечивающие соединение с интеграцией) и<br />
операции<br />
(фактические действия, которые выполняются). Это позволяет выполнять несколько операций с использованием одного и того же коннектора.<br />
Например: предположим, я хочу отправить разные параметры в ServiceNow для оповещений, касающихся Network &amp; App Synthetics, Endpoint Experience и Devices.<br />
Используя Integrations 1.0, мне нужно было бы настроить как параметры, так и саму интеграцию для всех трех. Однако, используя Integrations 2.0, мне нужно было бы создать отдельные операции для каждого, но все три могли бы использовать<br />
один<br />
и тот же<br />
коннектор.<br />
Почему это важно?<br />
Если в вашей организации существуют требования по соответствию стандарту OAuth2.0, вы, несомненно, знакомы с необходимостью использования настраиваемых веб-хуков. В этом документе представлено пошаговое руководство по настройке этой интеграции.<br />
Примечание. Integrations 1.0 по-прежнему поддерживается и может использоваться, если у вас нет требований по соответствию, связанных с OAuth 2.0, или вы не хотите настраивать интеграцию с помощью нескольких операций с одним и тем же коннектором.<br />
Предварительные условия и допущения<br />
В этом документе предполагается, что у вас есть рабочий экземпляр ServiceNow и учетная запись ThousandEyes с правами администратора в обоих случаях, и вы уже настроили тесты и оповещения ThousandEyes.<br />
Шаг 1. Настройка реестра приложений OAuth в ServiceNow<br />
Войдите в свой экземпляр ServiceNow.<br />
В навигаторе на левой панели введите «Реестр приложений» и щелкните<br />
«Система OAuth<br />
» -&gt;<br />
«Реестр приложений<br />
».<br />
Нажмите кнопку<br />
«New»<br />
(Новый).<br />
Выберите<br />
«Создать конечную точку OAuth API для внешних клиентов<br />
».<br />
Введите следующие данные:<br />
![image-20251021-113614.png]<br />
Имя:<br />
любое описательное имя, соответствующее стандартам вашей организации. Мы использовали «<br />
ThousandEyes Webhook Client<br />
».<br />
Идентификатор клиента:<br />
он генерируется автоматически.<br />
Обязательно запишите его<br />
!<br />
Секретный ключ клиента:<br />
он также генерируется автоматически. Если инструмент не отображает его при создании конечной точки, щелкните имя конечной точки еще раз и обновите секретный ключ клиента после повторного отображения параметров.<br />
Немедленно запишите его, так как он будет отображаться только один раз.<br />
Если вы его потеряете, вам нужно будет сгенерировать его заново.<br />
URL перенаправления:<br />
<a href="https://app.thousandeyes.com/namespace/integrations/AuthCallbackPage.html" rel="nofollow ugc">https://app.thousandeyes.com/namespace/integrations/AuthCallbackPage.html</a><br />
Активен<br />
: это поле должно быть отмечено по умолчанию, но стоит проверить еще раз.<br />
Тип клиента<br />
: выберите<br />
«Интеграция как услуга»<br />
в раскрывающемся списке.<br />
Это создаст запись в<br />
реестре приложений<br />
.<br />
Примечание<br />
: в Интернете есть много документации, в которой рекомендуется тестировать функциональность, запуская вызов API к /oath_token.do<br />
с идентификатором клиента и секретным ключом клиента для тестирования. Мы не рекомендуем это делать, так как более новые версии ServiceNow, такие как Xanadu, не позволяют этого. Это связано с тем, что эти версии по умолчанию применяют PKCE ко всем новым клиентам OAuth.<br />
Шаг 2: Настройка Integrations 2.0 в ThousandEyes<br />
Войдите в ThousandEyes и перейдите в раздел<br />
«Управление»<br />
&gt;<br />
«Интеграции»<br />
&gt;<br />
«Интеграции 2.0».<br />
Там перейдите в<br />
раздел «Коннекторы»<br />
и нажмите<br />
«+Новый коннектор<br />
». Выберите<br />
«Общий коннектор»<br />
из доступных вариантов, и откроется окно с подробной информацией, как показано ниже:<br />
![image-20251021-142743.png]<br />
Введите требуемые данные:<br />
Имя:<br />
любое описательное имя, позволяющее отличить коннектор как принадлежащий ServiceNow.<br />
Цель:<br />
базовый URL-адрес вашего экземпляра ServiceNow.<br />
Предустановленная конфигурация:<br />
оставьте значение по умолчанию.<br />
Тип аутентификации:<br />
OAuth Code.<br />
URL аутентификации:<br />
https://<br />
&lt;your-instance&gt;<br />
.service-now.com/oauth_auth.do<br />
URL токена:<br />
https://<br />
&lt;your-instance&gt;<br />
.service-now.com/oauth_token.do<br />
Идентификатор клиента:<br />
Идентификатор клиента ServiceNow из шага 1 (мы просили вас его записать!).<br />
Секретный ключ клиента:<br />
автоматически сгенерированный секретный ключ клиента из шага 1. Мы скопировали его ранее.<br />
Токен:<br />
нажмите «<br />
Получить токен<br />
», чтобы его получить. Вы должны перейти на страницу, показанную ниже (скриншот).<br />
![image-20251021-143332.png]<br />
Примечание<br />
: в некоторых клиентских средах перед переходом на эту страницу может появиться дополнительное окно входа в систему. В этом случае войдите в систему, нажмите<br />
«Разрешить»<br />
, и токен будет получен.<br />
После получения токена нажмите «<br />
Сохранить и назначить операцию<br />
». Если операция прошла успешно, вы увидите сообщение «Соединитель<br />
&lt;ИМЯ&gt;<br />
успешно сохранен».<br />
Окно<br />
«Управление операциями<br />
» должно появиться автоматически, но если этого не произошло, вы можете перейти в него вручную, перейдя на вкладку<br />
«Операции<br />
».<br />
На этой странице нажмите<br />
«+Новая операция<br />
». В раскрывающемся списке выберите<br />
«Пользовательский веб-хук<br />
». Откроется окно с запросом на ввод данных в следующие поля:<br />
Путь<br />
: /api/now/v1/table/incident<br />
Пользовательские заголовки<br />
:<br />
+Новый заголовок<br />
-&gt;content-type:application/json<br />
Параметры запроса URL<br />
: оставьте пустым<br />
Тело<br />
:<br />
{ "short_description": "ThousandEyes Alert: '{{<a href="http://alert.rule.name" rel="nofollow ugc">alert.rule.name</a>}}' for test {{<a href="http://alert.test.name" rel="nofollow ugc">alert.test.name</a>}}", "description": "An alert was triggered for test '{{<a href="http://alert.test.name" rel="nofollow ugc">alert.test.name</a>}}.\nAlert Type: {{alert.test.testType}}\nSeverity: {{<a href="http://alert.severity.id" rel="nofollow ugc">alert.severity.id</a>}}\nView details in ThousandEyes: <a href="https://app.thousandeyes.com/alerts/list/?__a=%7B%7Balert.rule.account.id%7D" rel="nofollow ugc">https://app.thousandeyes.com/alerts/list/?__a={{alert.rule.account.id}</a>}", "impact": "2", "urgency": "2", "state": {{#if (eq <a href="http://type.id" rel="nofollow ugc">type.id</a> 2)}}1{{else}}6{{/if}}, "caller_id": "62826bf03710200044e0bfc8bcbe5df1", "correlation_id": "{{<a href="http://alert.id" rel="nofollow ugc">alert.id</a>}}", "correlation_display": "{{<a href="http://alert.id" rel="nofollow ugc">alert.id</a>}}", "close_code": "{{#if (eq <a href="http://type.id" rel="nofollow ugc">type.id</a> 1)}}Resolved by ThousandEyes Alert Clear{{/if}}", "close_notes": "{{#if (eq <a href="http://type.id" rel="nofollow ugc">type.id</a> 1)}}Alert cleared automatically by ThousandEyes integration.{{/if}}"<br />
}<br />
Примечание:<br />
вам не обязательно использовать строку caller_id. Однако имейте в виду, что если она установлена на Client ID из реестра приложений OAuth, инцидент в ServiceNow будет заполнять поле Caller соответствующим именем пользователя или адресом электронной почты, соответствующим указанному здесь caller_id.<br />
![image-20251025-091104 (1).png]<br />
Нажмите<br />
«Сохранить и назначить соединитель<br />
». Откроется страница<br />
«Управление соединителем<br />
». Выберите ранее созданный соединитель из раскрывающегося списка и нажмите<br />
«Сохранить<br />
».<br />
Перейдите на вкладку<br />
«Операции<br />
». Выберите созданную операцию и нажмите<br />
«Тест<br />
».<br />
Если тест выполнится правильно, вы увидите сообщение «Тестирование завершено успешно!».<br />
Если тест не выполняется правильно, вы увидите сообщение «В ожидании» или «Неудача».<br />
В этом случае убедитесь, что поля конфигурации настроены правильно, и повторите тест.<br />
Нажмите<br />
«Сохранить»<br />
еще раз.<br />
Если конфигурация работает как ожидалось, вы увидите, что статус коннектора отображается как «Подключено».<br />
Шаг 3. Настройте оповещения ThousandEyes для уведомления службы в ServiceNow<br />
В ThousandEyes перейдите в<br />
раздел «Управление»<br />
&gt;<br />
«Правила оповещений<br />
».<br />
Выберите оповещение, для которого вы хотите настроить уведомление, и нажмите на него.<br />
Перейдите на вкладку<br />
«Уведомления»,<br />
как показано ниже.<br />
В разделе<br />
«Интеграции»<br />
выберите созданную вами операцию (в нашем примере — SNOW).<br />
![susfranc_4-1764972724264.png]<br />
Нажмите<br />
«Сохранить изменения».<br />
Шаг 4.<br />
Добавьте бизнес-правило в ServiceNow, чтобы автоматически устранять инцидент при снятии оповещения (в будущем вы будете благодарны себе за это).<br />
Этот шаг гарантирует, что инциденты будут создаваться с полем<br />
«Состояние»<br />
установленным в<br />
«Новый»<br />
при срабатывании оповещения, а также в<br />
«Устранен»<br />
при срабатывании оповещения.<br />
В левой панели навигатора ServiceNow введите «Бизнес-правила».<br />
Перейдите в<br />
«Определение системы»<br />
&gt;<br />
«Бизнес-правила<br />
».<br />
Нажмите<br />
«Новое»<br />
в правом верхнем углу и присвойте имя бизнес-правилу. Мы рекомендуем использовать описательное название, например «Обработка оповещений ThousandEyes».<br />
Настройте следующие поля, как показано на рисунке:<br />
Таблица:<br />
Инцидент<br />
Дополнительно:<br />
отмечено<br />
Когда<br />
: До<br />
Вставка:<br />
отмечено<br />
Обновление:<br />
не отмечено<br />
Удаление:<br />
Не отмечено<br />
![image-20251024-221048.png]<br />
На вкладке<br />
«Дополнительно»<br />
оставьте<br />
поле «Условие»<br />
пустым и добавьте следующий скрипт<br />
(function executeBR(current, previous /<em>null on insert</em>/) { <a href="http://gs.info" rel="nofollow ugc">gs.info</a>('Alert correlation_id: ' + current.correlation_id + ', state: ' + current.state); if (current.state == 1) { // Trigger alert: always allow creation <a href="http://gs.info" rel="nofollow ugc">gs.info</a>('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) { <a href="http://gs.info" rel="nofollow ugc">gs.info</a>('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; <a href="http://gs.info" rel="nofollow ugc">gs.info</a>('Incident ' + gr.number + ' resolved automatically.'); // Prevent creating a new incident current.setAbortAction(true); <a href="http://gs.info" rel="nofollow ugc">gs.info</a>('New incident creation aborted for clear alert.'); } else { // No existing unresolved incident found → skip creating a resolved incident current.setAbortAction(true); <a href="http://gs.info" rel="nofollow ugc">gs.info</a>('Clear alert received but no unresolved incident exists → abort creation.'); } })(current, previous);<br />
Примечание<br />
. Этот скрипт проверяет текущее состояние оповещения и, если это новое оповещение, которое сработало, как указано в <a href="http://type.id" rel="nofollow ugc">type.id</a> от ThousandEyes, установленном в 1, создается новый инцидент, в противном случае, если <a href="http://type.id" rel="nofollow ugc">type.id</a> равен 2, что указывает на то, что предыдущее оповещение теперь снято, он будет искать идентификатор корреляции, чтобы определить правильный инцидент и пометить его как «Решено».<br />
Нажмите<br />
«Обновить»<br />
в правом верхнем углу, чтобы обновить бизнес-правило.<br />
Тестирование<br />
Сработайте оповещение в ThousandEyes<br />
: создайте оповещение, которое сработает при следующем запуске теста, например, HTTP-код ответа 200 для тестов, которые работают нормально. Установите его в положение<br />
«Вручную»<br />
и выберите, чтобы оно срабатывало, если по крайней мере 1 агент затронут 1 раз из 1 подряд. На вкладке<br />
«Уведомления»<br />
оповещения убедитесь, что вы сопоставили оповещение с только что созданной интеграцией.<br />
Перейдите в ServiceNow. Нажмите<br />
«Все»<br />
и выполните поиск по слову «Инцидент». Выберите<br />
«Открытые инциденты»<br />
и проверьте, отображается ли сработавшее оповещение.<br />
Если инциденты были созданы как ожидалось, вы увидите таблицу, похожую на приведенную ниже:<br />
![susfranc_6-1764973147606.png]<br />
Проверьте передаваемые данные, щелкнув один из инцидентов, чтобы получить дополнительную информацию. Пример показан ниже:<br />
![susfranc_7-1764973147616.png]<br />
Устранение неполадок ServiceNow<br />
Если инциденты не создаются, перейдите в<br />
«Системные журналы»<br />
&gt;<br />
«Все»<br />
и найдите журналы, связанные с вашим веб-хуком.<br />
Если вы хотите увидеть, что отправляет ThousandEyes, перейдите в<br />
раздел «Определение системы<br />
» &gt;<br />
«Бизнес-правила<br />
» и добавьте правило, нажав<br />
«Новое»<br />
в правом верхнем углу. Кроме того, вы можете обновить скрипт в бизнес-правиле, созданном в шаге 4, найдя название правила в разделе<br />
«Бизнес-правила<br />
».<br />
Если вы решите добавить новое правило, добавьте следующие данные.<br />
Таблица:<br />
Инцидент<br />
Когда:<br />
До<br />
Вставить:<br />
Проверено<br />
Условие:<br />
Оставьте пустым<br />
Дополнительно:<br />
отмечено<br />
На вкладке «<br />
Дополнительно<br />
» оставьте<br />
поле «Условие»<br />
пустым и добавьте следующее в поле<br />
«Скрипт»:<br />
(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);<br />
Перейдите в<br />
«Системные журналы»<br />
&gt;<br />
«Записи журнала скриптов»,<br />
как показано ниже, чтобы увидеть сообщения, зарегистрированные в ThousandEyes.<br />
![susfranc_8-1764973242609.png]<br />
Вывод<br />
Если вы смогли убедиться, что ваши оповещения срабатывают правильно, поздравляем! Вы успешно интегрировали ThousandEyes и ServiceNow.<br />
Дополнительные ресурсы<br />
<a href="https://www.servicenow.com/docs/" rel="nofollow ugc">Документация</a><br />
<a href="https://docs.thousandeyes.com/product-documentation/integration-guides#version-1-classic" rel="nofollow ugc">ThousandEyes</a><br />
<a href="https://docs.thousandeyes.com/product-documentation/integration-guides#version-1-classic" rel="nofollow ugc">Доку</a><br />
<a href="https://www.servicenow.com/docs/" rel="nofollow ugc">ментация ServiceNow</a><br />
[Нужна дополнительная помощь? Обратитесь в службу поддержки ThousandEyes!]&lt;/your-instance&gt;&lt;/your-instance&gt;</li>
</ol>
<p dir="auto"><img src="/forum/uploads/files/cisco/ae3e5ef8d263987baad808a49c162bc59b641b3a.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/1d2dd86039650c6ac62c4c8019874927a28f2d9b.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/57a05f1877c41533d0d1797c932903a022fd7df9.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/3005b14c58f3e9360fb0ae19ea254b9bb5318a44.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/51807f6050764f2c328e0aa998677a0dc329942f.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/0df11e40b3db645a1bd3abc5d2451c28ede2956f.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/55b0a2e20a3befb90598db0245ea2eb35635c13e.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/6d885d65fcb28c5f892f16d25f24048a2c3a80db.png" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/forum/uploads/files/cisco/de10f33b22aa02a0de2bd5afe52c02290837205f.png" alt="" class=" img-fluid img-markdown" /></p>
]]></description><link>https://sla247.ru/forum/topic/1610/настройка-и-тестирование-интеграции-servicenow-с-integrations-20</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 04:20:18 GMT</lastBuildDate><atom:link href="https://sla247.ru/forum/topic/1610.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Feb 2026 20:48:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Настройка и тестирование интеграции ServiceNow с Integrations 2.0 on Tue, 24 Feb 2026 20:48:10 GMT]]></title><description><![CDATA[<p dir="auto">Отличная техническая статья, спасибо!</p>
]]></description><link>https://sla247.ru/forum/post/12102</link><guid isPermaLink="true">https://sla247.ru/forum/post/12102</guid><dc:creator><![CDATA[dkoupeno]]></dc:creator><pubDate>Tue, 24 Feb 2026 20:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to Настройка и тестирование интеграции ServiceNow с Integrations 2.0 on Tue, 24 Feb 2026 20:48:09 GMT]]></title><description><![CDATA[<p dir="auto">Отличный контент, Сушила!</p>
]]></description><link>https://sla247.ru/forum/post/12101</link><guid isPermaLink="true">https://sla247.ru/forum/post/12101</guid><dc:creator><![CDATA[ahernan4]]></dc:creator><pubDate>Tue, 24 Feb 2026 20:48:09 GMT</pubDate></item></channel></rss>