Zabbix 에서 Slack 알림 연동하기: Webhook 설정부터 액션 자동화까지 완벽 가이드

“복잡한 Zabbix 운영을 더 효율적으로 만들고 싶다면,
블로그의 핵심 내용을 집대성한 『Zabbix 엔터프라이즈 최적화 핸드북(PDF)』을 확인해보세요.”

https://jikimy.gumroad.com/l/zabbix-master


개요

Zabbix는 자체 알림 기능만으로는 실시간 모니터링 대응이 어렵다.
Slack Webhook을 이용하면 장애 발생 및 복구 알림을 실시간으로 받아볼 수 있다.

이 글은 Zabbix 7.4 + Slack Webhook 환경에서 알림을 완벽히 연동하기 위한 전체 절차를 정리한 실무 가이드다.
아래 순서대로 설정하면 운영 환경에서도 즉시 사용할 수 있다.


1. 사전 점검

1.1 아웃바운드 허용

Zabbix 서버가 hooks.slack.com:443 으로 나갈 수 있어야 한다.
방화벽이나 프록시 환경에서는 해당 도메인/포트를 예외 허용해야 한다.

1.2 Slack 채널 및 Webhook 생성

  • Slack에서 모니터링 전용 채널을 새로 생성한다.
  • 채널 설정 → “Add App” → “Incoming Webhooks” 선택 → Webhook URL 발급.

1.3 Webhook 유효성 테스트

Zabbix 서버에서 아래 명령으로 Webhook 정상 여부를 확인한다.

아래 명령어에서 webhook URL 부분을 Slack에서 생성한 Webhook 주소로 교체해 실행한다.

# curl -X POST \
  -H 'Content-type: application/json' \
  --data '{"text":"Zabbix → Slack 연결 테스트"}' \ 'webhook url'   -> 실제 사용하는 webhook url 적용

메시지가 Slack 채널에 도착하면 Webhook 연결은 정상이다.


2. Zabbix URL 전역 매크로 추가

Zabbix Web UI → 관리 → 매크로 → 새 매크로 추가

MacroValue
{$ZABBIX.URL}https://<귀사 Zabbix 도메인>
예시http://zbx.example.com/zabbix

3. Slack 미디어 타입 설정

3.1 Webhook URL 파라미터 추가

Zabbix Web UI → 경고 → 미디어 타입 → Slack 선택 후 활성화 및 클릭

webhook_url 파라미터를 추가한다.

3.2 필요 없는 파라미터 삭제

아래 항목만 남기고 나머지는 모두 삭제한다.

이름
alert_message{ALERT.MESSAGE}
alert_subject{ALERT.SUBJECT}
webhook_url(Slack Webhook URL)
zabbix_url{$ZABBIX.URL}

3.3 스크립트 교체

아래 스크립트를 붙여 넣고 저장한다.

// Slack Webhook sender (minimal)
try {
  var p = JSON.parse(value);
  var payload = {
    "text": "*" + (p.alert_subject || "Zabbix") + "*\n" + (p.alert_message || "")
  };
  var req = new HttpRequest();
  req.addHeader('Content-Type', 'application/json');
  var resp = req.post(p.webhook_url, JSON.stringify(payload));
  if (req.getStatus() != 200) {
    throw 'Slack webhook response: ' + req.getStatus() + ' ' + resp;
  }
  return 'Message sent successfully to Slack.';
} catch (e) {
  throw 'Failed to send Slack message: ' + e;
}

4. 사용자에 Slack 미디어 할당

Zabbix Web UI → 유저 → Admin → 연락 방법

  1. 연락 방법 추가 클릭
  2. 종류: Slack
  3. 수신처: 더미(dummy) 값 입력 (예: slack)
  4. 기본값(Default) 유지
  5. 심각도는 “경고 이상” 권장
  6. 추가 → 갱신

5. 액션(Action) 생성

5.1 트리거 액션 편집

경로: 경고 → 액션 → 트리거 액션 → Report problems to Zabbix administrators

5.2 조건 추가

  • 종류: 트리거 심각도
  • 오퍼레이터: 이상
  • 심각도: 경고
  • 활성 체크 후 추가

5.3 오퍼레이션 설정

  1. 오퍼레이션 스텝 1 → 편집
  2. 사용자 그룹: Zabbix administrators
  3. Send to media type: Slack
  4. 사용자 정의 메시지 체크
  5. 제목과 메시지 입력:

장애 알림 메시지

- 장애발생 : {EVENT.NAME}

--------------------------------------
발생시간 : {EVENT.DATE} {EVENT.TIME}
심각도 : {EVENT.SEVERITY}
호스트 : {HOST.NAME1}
아이템 : {ITEM.NAME1}
현재값 : {ITEM.LASTVALUE1}

이벤트ID : {EVENT.ID}
바로가기 : {$ZABBIX.URL}/tr_events.php?eventid={EVENT.ID}

5.4 복구 알림 추가

  1. 사용자 그룹: Zabbix administrators
  2. Send to media type: Slack
  3. 사용자 정의 메시지 체크
  4. 제목과 메시지 입력:

복구 알림 메시지

- 해결됨 : {EVENT.NAME}

--------------------------------------
해결시간 : {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
심각도 : {EVENT.SEVERITY}
호스트 : {HOST.NAME1}

이벤트ID : {EVENT.ID}
바로가기 : {$ZABBIX.URL}/tr_events.php?eventid={EVENT.ID}

6. 모든 변경 사항 저장 및 적용

모든 액션 설정 완료 후 “갱신” 클릭.
테스트 트리거를 발생시켜 Slack 채널로 알림이 정상 수신되는지 확인한다.


✅ 최종 점검 체크리스트

항목확인
서버 아웃바운드 허용 (hooks.slack.com:443)
Slack Webhook 테스트 성공
{$ZABBIX.URL} 매크로 추가
Slack 미디어 타입 활성화 및 스크립트 교체
사용자에 Slack 미디어 등록
액션(장애/복구) 정상 작동

결론:
이 과정을 완료하면 Zabbix 이벤트 발생 시 Slack 채널로 자동 알림이 전송된다.
별도의 외부 모듈 없이 Webhook과 Zabbix 기본 기능만으로 구현 가능하며,
운영 환경에서도 안전하게 사용할 수 있다.

🛠 마지막 수정일: 2025.12.09

ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. 본문 및 이미지를 무단 복제·배포할 수 없습니다. 공유 시 반드시 원문 링크를 명시해 주세요.
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. All rights reserved. Unauthorized copying or redistribution of the text and images is prohibited. When sharing, please include the original source link.

💡 도움이 필요하신가요?
Zabbix, Kubernetes, 그리고 다양한 오픈소스 인프라 환경에 대한 구축, 운영, 최적화, 장애 분석, 광고 및 협업 제안이 필요하다면 언제든 편하게 연락 주세요.

📧 Contact: jikimy75@gmail.com
💼 Service: 구축 대행 | 성능 튜닝 | 장애 분석 컨설팅

📖 E-BooK [PDF] 전자책 (Gumroad): Zabbix 엔터프라이즈 최적화 핸드북
블로그에서 다룬 Zabbix 관련 글들을 기반으로 실무 중심의 지침서로 재구성했습니다. 운영 환경에서 바로 적용할 수 있는 최적화·트러블슈팅 노하우까지 모두 포함되어 있습니다.


💡 Need Professional Support?
If you need deployment, optimization, or troubleshooting support for Zabbix, Kubernetes, or any other open-source infrastructure in your production environment, or if you are interested in sponsorships, ads, or technical collaboration, feel free to contact me anytime.

📧 Email: jikimy75@gmail.com
💼 Services: Deployment Support | Performance Tuning | Incident Analysis Consulting

📖 PDF eBook (Gumroad): Zabbix Enterprise Optimization Handbook
A single, production-ready PDF that compiles my in-depth Zabbix and Kubernetes monitoring guides.