사용자 정의 스크립트
개요
알림 전송을 위한 기존 미디어 유형이 만족스럽지 않다면 대안이 있습니다. 알림을 원하는 방식으로 처리하는 스크립트를 만들 수 있습니다.
사용자 정의 알림 스크립트는 Zabbix server에서 실행됩니다. 이 스크립트는 server 설정 파일의 AlertScriptsPath 매개변수에 지정된 디렉터리에 있어야 합니다.
다음은 사용자 정의 알림 스크립트의 예시입니다.
#!/bin/bash
to=$1
subject=$2
body=$3
host=$4
value=$5
cat <<EOF | mail -s "$subject" "$to"
$body
Host: $host
Value: $value
EOF
Zabbix는 실행된 명령과 스크립트의 종료 코드를 확인합니다. 0과 다른 종료 코드는 모두 명령 실행 오류로 간주됩니다. 이 경우 Zabbix는 실패한 실행을 재시도합니다.
스크립트에 대해 환경 변수는 보존되거나 생성되지 않으므로, 명시적으로 처리해야 합니다.
설정
사용자 정의 알림 스크립트를 미디어 유형으로 설정하려면 다음을 수행하세요.
- Alerts → Media types로 이동합니다.
- Create media type을 클릭합니다.
Media type 탭에는 일반적인 미디어 유형 속성이 포함되어 있습니다.

필수 입력 항목에는 빨간색 별표가 표시됩니다.
다음 매개변수는 스크립트 미디어 유형에 특화되어 있습니다.
| 매개변수 | 설명 |
|---|---|
| Script name | AlertScriptsPath server 설정 매개변수에 지정된 디렉터리에 위치한 스크립트 파일 이름(예: notification.sh)을 입력합니다. |
| Script parameters | 정의된 순서대로 명령줄 인수로 스크립트에 전달될 선택적 스크립트 매개변수를 추가합니다. 스크립트 매개변수는 {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} 매크로와 알림에서 지원되는 모든 매크로, 그리고 사용자 매크로를 지원합니다. |
기본 메시지 및 알림 처리 옵션 설정 방법에 대한 자세한 내용은 공통 미디어 유형 매개변수를 참고하세요.
알림 스크립트가 기본 메시지를 사용하지 않더라도, 이 미디어 유형에서 사용하는 작업 유형의 메시지 템플릿은 반드시 정의되어 있어야 합니다. 그렇지 않으면 알림이 전송되지 않습니다.
둘 이상의 스크립트 미디어 유형이 설정된 경우, 이러한 스크립트는 alerter 프로세스에 의해 병렬로 처리될 수 있습니다.
alerter 프로세스의 총 개수는 server 설정 파일의 StartAlerters 매개변수로 제한됩니다.
테스트
설정된 스크립트 미디어 유형을 테스트하려면 다음을 수행하세요.
-
미디어 유형 목록에서 해당 스크립트를 찾습니다.
-
목록의 마지막 열에 있는 Test를 클릭하면 팝업 창에 테스트 폼이 열립니다. 테스트 폼에는 스크립트 미디어 유형에 설정된 것과 동일한 개수의 매개변수가 표시됩니다.
-
필요한 경우 스크립트 매개변수 값을 편집합니다. 편집은 테스트 과정에만 영향을 주며, 실제 값은 변경되지 않습니다.
-
Test를 클릭합니다.

설정된 스크립트 미디어 유형을 테스트할 때 {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} 및 사용자 매크로는 값으로 해석되지만, 이벤트와 관련된 매크로(예: {HOST.HOST}, {ITEM.LASTVALUE} 등)는 테스트 중에는 세부 정보를 가져올 관련 이벤트가 없으므로 해석되지 않습니다. {ALERT.SUBJECT} 및 {ALERT.MESSAGE} 매크로 내부의 매크로 역시 해석되지 않습니다. 예를 들어 {ALERT.SUBJECT}의 값이 "Problem: {EVENT.NAME}"으로 구성되어 있다면 {EVENT.NAME} 매크로는 해석되지 않습니다.
사용자 미디어
미디어 유형 설정이 끝나면 Users → Users 섹션으로 이동하여 사용자 프로필에 이 미디어 유형을 할당하도록 편집합니다. 모든 미디어 유형에 공통적인 사용자 미디어 설정 단계는 Media types 페이지에 설명되어 있습니다.
사용자 미디어를 정의할 때 Send to 필드는 비워둘 수 없습니다. 이 필드가 알림 스크립트에서 사용되지 않는 경우, 유효성 검사 요구 사항을 통과할 수 있도록 지원되는 문자 조합을 입력하세요.