ServiceNow 대상(커스텀 웹훅)
Panther의 커스텀 웹훅 옵션을 사용하여 ServiceNow 알러트 설정하기
개요
Panther 알러트에서 티켓을 생성하도록 ServiceNow를 구성하는 방법
사전 요구 사항
1단계: ServiceNow에서 Scripted REST API 생성
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) { // 서로 다른 필드를 준비합니다 var data = request.body.data; var title = data.title; var alert = JSON.stringify(data); var alertContext = JSON.stringify(data.alertContext); var severity = data.severity; var link = data.link; var runbook = data.runbook; var type = data.type; var alertId = data.alertId; var grIncident = new GlideRecord('incident'); grIncident.initialize(); grIncident.setValue('short_description', title); grIncident.setValue('description', alert ); grIncident.setValue('category', type); grIncident.setValue('subcategory', alertId); // 긴급도를 Panther 심각도로 매핑 if (severity == "CRITICAL" || severity == "HIGH") { grIncident.setValue('urgency','1'); grIncident.setValue('impact','1'); } else if (severity == "LOW" || severity == "MEDIUM") { grIncident.setValue('urgency','2'); } else { grIncident.setValue('urgency','3'); } //grIncident.insert(); var recResponse = grIncident.insert(handleResponse); function handleResponse(recResponse, answer) { // Answer는 생성된 레코드의 sys_id이거나 null입니다 alert('새로 생성된 sys_id는 - ' + answer + ' 존재합니다'); } var url = gs.getProperty('glide.servlet.uri'); // API의 응답을 구성합니다. 이 예제는 위에서 생성된 인시던트 ID를 반환합니다. var body = {}; body.sys_id = recResponse; body.link = url + "task.do?sys_id=" + recResponse; response.setBody(body); // 대상 통합을 생성하고 테스트할 때 Panther에서 보내는 예제 테스트 이벤트 //{"id":"Test.Alert","createdAt":"2022-04-26T03:17:32.099054303Z","severity":"INFO","type":"RULE","link":"https://domain.runpanther.net","title":"This is a Test Alert","name":"Test Alert","alertId":"Test.Alert","alertContext":{},"description":"This is a Test Alert","runbook":"Stuck? Check out our docs: https://docs.runpanther.io","tags":["test"],"version":"abcdefg"} })(request, response);
2단계: Panther에서 사용자 지정 웹훅 통합 생성
예시

마지막 업데이트
도움이 되었나요?








