이 통합에 대하여:
Zabbix를 Freshservice와 통합하여 네트워크, 서버, 가상 머신 및 클라우드 서비스 등 다양한 IT 구성 요소에서 보낸 경고를 분류하고 적시에 조치를 취하여 중단을 방지할 수 있습니다.
Freshservice에서의 구성:
1단계:
관리자 패널로 이동하여 IT 운영 관리로 스크롤한 후 모니터링 도구를 선택합니다.
계정에 여러 작업 공간이 있는 경우 관리자 > {작업 공간 이름} > IT 운영 관리> 모니터링 도구로 이동합니다.
2단계:
현재 모니터링 도구 목록 페이지에 있습니다. 새 통합을 추가하려면 모니터링 도구 추가를 선택합니다.
3단계
사전 구성된 통합 목록, 웹훅을 사용한 사용자 정의 통합 게이트웨이 및 경고를 위한 이메일 채널 사용 옵션이 표시됩니다. Zabbix를 선택합니다.
4단계
Zabbix용 Endpoint URL 및 인증 키를 얻으려면 통합 설정를 따르세요.
Zabbix에서의 구성:
1단계: Zabbix에서 미디어 유형 생성
중요한 이벤트에 대한 경고 메커니즘을 설정하려면 Zabbix에서 미디어 유형을 생성합니다.
미디어 유형:
미디어는 Zabbix에서 알림 및 경고를 보내는 데 사용되는 전송 채널입니다. Zabbix가 Freshservice AMS와 통합되려면 웹훅 통합 미디어 유형을 생성해야 합니다.
웹훅을 미디어 유형으로 구성하려면
관리 → 미디어 유형으로 이동합니다
미디어 유형 생성을 클릭합니다. 미디어 유형 탭에는 이 미디어 유형에 특정한 다양한 속성이 포함되어 있습니다:
미디어 유형의 이름을 입력합니다.
미디어 유형으로 웹훅을 선택합니다.
다음 매개변수를 추가하고 Freshservice에서 복사한 값으로 url 및 auth_key 매개변수 값을 대체합니다
event_name - {EVENT.NAME}
event_opdata - {EVENT.OPDATA}
event_status - {EVENT.STATUS}
hostname - {HOST.NAME}
host_ip - {HOST.IP}
item_key - {ITEM.KEY}
item_name - {ITEM.NAME}
message - {ALERT.MESSAGE}
severity - {EVENT.SEVERITY}
subject - {ALERT.SUBJECT}
action_id - {ACTION.ID}
action_name - {ACTION.NAME}
event_date - {EVENT.DATE}
event_time - {EVENT.TIME}
tags - {EVENT.TAGS}
url - <Freshservice 통합 페이지에서 URL 복사>
auth_key - <Freshservice 통합 페이지에서 auth_key 복사>
Zabbix 버전 4.4 및 5.4를 사용하는 경우 다음 스크립트를 복사하여 스크립트 필드에 붙여넣습니다
try {
Zabbix.Log(4, 'webhook script value=' + value);
var result = {
'tags': {
'endpoint': 'FS_AMS'
}
};
params = JSON.parse(value);
var tags_array = [];
if (params.tags != "" && params.tags != "{EVENT.TAGS}") {
tags = params.tags.split(",");
for(i = 0; i < tags.length; i++) {
tags_array.push(tags[i].trim());
}
}
req = new CurlHttpRequest();
fields = {
"message": params.message,
"subject": params.subject,
"item_key": params.item_key,
"host_ip": params.host_ip,
"event_name": params.event_name,
"hostname": params.hostname,
"event_opdata": params.event_opdata,
"severity": params.severity,
"item_name": params.item_name,
"event_status": params.event_status,
"action_id": params.action_id,
"action_name": params.action_name,
"event_date": params.event_date,
"event_time": params.event_time,
"event_age": params.event_age,
"tags": tags_array
};
if(params.event_status == "RESOLVED") {
fields.severity = "ok";
}
resp = '';
req.AddHeader('Content-Type: application/json');
req.AddHeader('Authorization: ' + params.auth_key);
resp = req.Post(params.url, JSON.stringify(fields));
if (req.Status() != 202) {
throw 'Response code: ' + req.Status();
}
else {
results = JSON.stringify({"response_body": resp });
Zabbix.Log(4, results);
}
return results;
}
catch(error) {
Zabbix.Log(4, 'FS AMS Notification failed: ' + JSON.stringify({ "fields": fields }));
Zabbix.Log(4, 'FS AMS alert creation failed : ' + error);
results = JSON.stringify({"error": error});
return results;
}- Zabbix 버전 6.4 이상을 사용하는 경우 다음 스크립트를 복사하여 스크립트 필드에 붙여넣습니다
try {
Zabbix.Log(4, 'webhook script value=' + value);
var result = {
'tags': {
'endpoint': 'FS_AMS'
}
};
params = JSON.parse(value);
var tags_array = [];
if (params.tags != "" && params.tags != "{EVENT.TAGS}") {
tags = params.tags.split(",");
for (i = 0; i < tags.length; i++) {
tags_array.push(tags[i].trim());
}
}
req = new HttpRequest();
fields = {
"message": params.message,
"subject": params.subject,
"item_key": params.item_key,
"host_ip": params.host_ip,
"event_name": params.event_name,
"hostname": params.hostname,
"event_opdata": params.event_opdata,
"severity": params.severity,
"item_name": params.item_name,
"event_status": params.event_status,
"action_id": params.action_id,
"action_name": params.action_name,
"event_date": params.event_date,
"event_time": params.event_time,
"event_age": params.event_age,
"tags": tags_array
};
if (params.event_status == "RESOLVED") {
fields.severity = "ok";
}
resp = '';
req.addHeader('Content-Type: application/json');
req.addHeader('Authorization: ' + params.auth_key);
resp = req.post(params.url, JSON.stringify(fields));
if (req.getStatus() != 202) {
throw 'Response code: ' + req.Status();
} else {
results = JSON.stringify({
"response_body": resp
});
Zabbix.Log(4, results);
}
return results;
} catch (error) {
Zabbix.Log(4, 'FS AMS Notification failed: ' + JSON.stringify({
"fields": fields
}));
Zabbix.Log(4, 'FS AMS alert creation failed : ' + error);
results = JSON.stringify({
"error": error
});
return results;
}- “이벤트 메뉴 항목 포함” 옵션을 선택할 필요가 없습니다
활성화 필드를 확인하고 설정을 저장합니다.
미디어 유형 목록에서 Freshservice에 대해 생성한 미디어 유형에 대해 "테스트"를 클릭합니다. 모든 것이 올바르게 구성된 경우 Freshservice에 테스트 경고가 전송되며 이를 경고 목록 페이지에서 확인할 수 있습니다.
미디어 유형은 특정 전송 주소를 정의하여 사용자에게 연결되어야 합니다. 이를 위해,
관리 → 사용자로 이동합니다
미디어 유형을 연결할 사용자를 클릭합니다
미디어 탭으로 이동하여 유형 드롭다운 목록에서 새로 생성된 미디어 유형을 선택합니다
‘보낼 대상’ 옵션을 설정합니다
‘활성화 시’ 옵션을 설정합니다. 예: 24/7 알림을 받으려면 값을 1-7,00:00-24:00으로 설정합니다
‘심각도 사용’ 옵션을 설정합니다
활성화를 확인합니다.
추가를 클릭하고 사용자 미디어 정보를 업데이트합니다.
2단계: 액션 생성
- Zabbix 홈페이지에서 구성 -> 액션 -> 액션 생성을 탐색합니다.
- 액션 아래에서 이름과 액션을 트리거할 조건을 추가하는 등의 속성을 입력합니다.
- 작업 탭을 클릭하고 수행할 작업을 선택합니다.
- 사용자에게 보내기에서 추가를 클릭하고 관리자와 게스트를 선택한 후 추가를 클릭합니다.
- 복구 작업 및 업데이트 작업에서 기본 제목과 메시지를 확인하고 추가를 클릭하여 액션을 추가합니다.
- 이렇게 하면 구성된 트리거에서 Freshservice로 경고가 전송됩니다








