사용자 정의 스크립트

Zabbix v7.4번역일: 2026-09-09원본 보기

개요

알림 전송을 위한 기존 미디어 유형이 만족스럽지 않다면 대안이 있습니다. 알림을 원하는 방식으로 처리하는 스크립트를 만들 수 있습니다.

사용자 정의 알림 스크립트는 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는 실패한 실행을 재시도합니다.

스크립트에 대해 환경 변수는 보존되거나 생성되지 않으므로, 명시적으로 처리해야 합니다.

설정

사용자 정의 알림 스크립트를 미디어 유형으로 설정하려면 다음을 수행하세요.

  1. Alerts → Media types로 이동합니다.
  2. Create media type을 클릭합니다.

Media type 탭에는 일반적인 미디어 유형 속성이 포함되어 있습니다.

필수 입력 항목에는 빨간색 별표가 표시됩니다.

다음 매개변수는 스크립트 미디어 유형에 특화되어 있습니다.

매개변수 설명
Script name AlertScriptsPath server 설정 매개변수에 지정된 디렉터리에 위치한 스크립트 파일 이름(예: notification.sh)을 입력합니다.
Script parameters 정의된 순서대로 명령줄 인수로 스크립트에 전달될 선택적 스크립트 매개변수를 추가합니다.

스크립트 매개변수는 {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} 매크로와 알림에서 지원되는 모든 매크로, 그리고 사용자 매크로를 지원합니다.

기본 메시지 및 알림 처리 옵션 설정 방법에 대한 자세한 내용은 공통 미디어 유형 매개변수를 참고하세요.

알림 스크립트가 기본 메시지를 사용하지 않더라도, 이 미디어 유형에서 사용하는 작업 유형의 메시지 템플릿은 반드시 정의되어 있어야 합니다. 그렇지 않으면 알림이 전송되지 않습니다.

둘 이상의 스크립트 미디어 유형이 설정된 경우, 이러한 스크립트는 alerter 프로세스에 의해 병렬로 처리될 수 있습니다. alerter 프로세스의 총 개수는 server 설정 파일의 StartAlerters 매개변수로 제한됩니다.

테스트

설정된 스크립트 미디어 유형을 테스트하려면 다음을 수행하세요.

  1. 미디어 유형 목록에서 해당 스크립트를 찾습니다.

  2. 목록의 마지막 열에 있는 Test를 클릭하면 팝업 창에 테스트 폼이 열립니다. 테스트 폼에는 스크립트 미디어 유형에 설정된 것과 동일한 개수의 매개변수가 표시됩니다.

  3. 필요한 경우 스크립트 매개변수 값을 편집합니다. 편집은 테스트 과정에만 영향을 주며, 실제 값은 변경되지 않습니다.

  4. 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 필드는 비워둘 수 없습니다. 이 필드가 알림 스크립트에서 사용되지 않는 경우, 유효성 검사 요구 사항을 통과할 수 있도록 지원되는 문자 조합을 입력하세요.