Эта статья была спонсирована VictorOps . Спасибо за поддержку спонсоров, которые делают возможным SitePoint!
Когда у вас есть живое приложение с реальными пользователями, проблемы не отображаются в соответствии с вашим расписанием. Вам нужен способ управлять и решать внезапно возникающие проблемы, и этот процесс должен быть максимально простым и безболезненным. Именно здесь вступает VictorOps . Он позволяет вам управлять тем, кто отвечает за исправление проблем в реальном времени, обеспечивает связь между командой при возникновении этих проблем и интегрирует с остальными системами, чтобы упростить обнаружение проблем.
В этой статье мы рассмотрим, как вы можете использовать VictorOps в качестве конечной точки REST для интеграции его с другими сервисами. В частности, мы сосредоточимся на интеграции SalesForce. Для этой интеграции вам понадобится учетная запись VictorOps .
Интеграция и конечная точка REST
Прежде всего, что мы имеем в виду, когда говорим, что VictorOps дает вам «конечную точку REST»? Идея состоит в том, что VictorOps позволяет вам получать доступ к ресурсам, используя RESTful API через HTTP. В чем смысл, спросите вы? Ну, обычно очень легко делать HTTP-запросы, и мы можем использовать конечную точку REST для быстрой настройки интеграции с другими сервисами. Например, многие компании используют Nagios для мониторинга служб в развертывании. Мы можем интегрировать VictorOps с Nagios с помощью плагина, который просто принимает оповещения и передает их в конечную точку REST VictorOps. Широта услуг, которые вы можете интегрировать с помощью конечной точки REST, невероятна; пока у вас есть небольшой код, который может запускать некоторые HTTP-запросы к alert.victorops.com, вы можете осуществить интеграцию.
Давайте посмотрим, как настроить одну из этих интеграций. Многие команды используют Salesforce в качестве средства коммуникации. Мы хотим, чтобы люди, которые используют Salesforce (которая обычно включает в себя людей, не занимающихся техническими вопросами), могли общаться с людьми, работающими с серверами своей компании. Поэтому, когда дела создаются в Salesforce, мы должны получать оповещения через VictorOps. Это позволяет вам иметь одно место (VictorOps), где вы можете видеть проблемы ИТ в вашей инфраструктуре. Давайте посмотрим, как настроить эту интеграцию.
Интеграция с Salesforce
У Salesforce есть способ подключить небольшие кусочки кода, которые решают, что делать, когда происходят определенные вещи, называемые «триггерами». Эти маленькие кусочки кода написаны на языке « Apex » (который более или менее специфичен для Salesforce), синтаксис которого очень похож на Java. К счастью, вам не нужно тратить свое время на изучение написания Apex, чтобы заставить интеграцию Salesforce работать, поскольку добрые люди в VictorOps имеют репозиторий, содержащий необходимые фрагменты кода .
По соображениям безопасности мы должны сообщить Salesforce, что наш код будет отправлять запросы к конечной точке REST VictorOps. Для этого нам нужно добавить « http://alert.victorops.com/ » в качестве удаленного сайта, выбрав «Элементы управления безопасностью => Параметры удаленного сайта => Новый удаленный сайт» на панели мониторинга Salesforce. После этого вы должны увидеть это на странице «Все удаленные сайты»:
Прежде чем мы сможем поговорить о коде Apex с VictorOps, нам нужно вставить наш API и направить ключи от VictorOps в код Apex. Сначала получите копию кода из этого репозитория . Затем нам нужны правильные ключи от VictorOps. Из панели мониторинга VictorOps мы переходим в «Настройки => Конечная точка REST интеграции». После включения интеграции вы увидите следующий URL:
Часть URL красного цвета — это ваш «ключ API». Теперь мы создадим ключ маршрутизации. Ваш ключ маршрутизации позволяет направлять определенные оповещения определенным группам людей в вашей организации VictorOps. Чтобы настроить его, снова перейдите в «Настройки» на панели мониторинга VictorOps, нажмите «Интеграции» и выберите «Инцидентная маршрутизация». Добавьте правило с ключом маршрутизации (например, «salesforce_integration»). В этот момент вы, вероятно, будете направлять этот ключ маршрутизации на «всех»:
Теперь в коде Apex вы должны найти файл с именем «VictorOpsTimeLine Apex Class», в котором есть немного текста, который выглядит следующим образом:
http://alert.victorops.com/integrations/generic/20131114/alert/$YOUR_API_KEY_HERE/$ROUTING_KEY_HERE
Отредактируйте его, чтобы добавить свой API и ключи маршрутизации.
Далее мы добавим код Apex в Salesforce. Перейдите в «Setup => Apex Classes» в Salesforce, а затем просто загрузите файлы в этом хранилище, которые заканчиваются на «Class». Например, тогда как «VO Alert Test Class» идет в классах. Вы должны в конечном итоге:
Нам также нужно настроить триггеры. Для этого перейдите в консоль разработчика через «Setup => Apex Classes => Developer Console». Нажмите «File => New => Apex Trigger». Имя должно соответствовать имени файла триггера (их два), а sObject должен иметь значение «Case» (поскольку мы хотим, чтобы этот триггер срабатывал при создании или разрешении кейсов).
Затем просто вставьте код триггера и сохраните.
Чтобы наконец развернуть этот код в производственной среде (в отличие от изолированной программной среды для разработчиков, в которой вы работали до сих пор), вам потребуется развернуть набор изменений из изолированной программной среды в производственной организации.
Чтобы проверить интеграцию, вы можете создать новый случай в Salesforce, и вы должны увидеть его в виде оповещения в VictorOps следующим образом:
Другие интеграции
Мы обрисовали в общих чертах интеграцию Salesforce с использованием конечной точки REST, но процедуры интеграции других платформ удивительно похожи, поскольку VictorOps может взаимодействовать со многими различными платформами через конечную точку REST. Например, Sensu — это хороший способ мониторинга вашей системы на основе набора проверок, и вы можете использовать конечную точку REST, чтобы ее оповещения отображались на VictorOps, чтобы вы могли работать с ними скоординированным образом.
Фактически, развернуть собственную интеграцию довольно просто, поскольку у VictorOps есть очень хорошая документация о том, как вы можете получать оповещения в систему. С помощью API, простой HTTP-библиотеки и пары часов вы можете получать информацию практически из любой службы в оповещениях на панели мониторинга VictorOps.
Предоставляя такую простую интеграцию, VictorOps позволяет вам решать сложные проблемы гораздо более эффективно и своевременно, поскольку вам не нужно проверять миллион источников информации, чтобы выяснить, где и когда проблемы обнаруживаются.
Дальнейший просмотр и чтение
Это подводит нас к концу этого урока, но если у вас есть какие-то другие умные идеи для интеграции VictorOps, не стесняйтесь предлагать их в комментариях. Более подробно по теме, вот список полезных ресурсов, которые вы можете проверить: