OpenSource/Zabbix

[Zabbix] Webhook을 이용한 Slack 연동

난쓰넌말 2024. 5. 28. 18:23
Zabbix 에서 발생하는 알림이벤트를 Slack 의 API 을 전달하는 방법을 설명합니다.

 

Slack App 추가

https://api.slack.com/apps 에 로그인 한 후에 새로운 app을 추가합니다. 
이때 워크스페이스는 가지고 있어야 합니다. 없으면 생성하고 시작하세요.

 

1. Create New APP  선택

2. Bot 추가 및 범위 지정

추가한 APP이 Slack 사용자 채널에서 활동범위 지정

아래 4개 아이템 추가 후 설치 ("Install to Workspace")


3. Bot User OAuth Token Key 보관 (뒤에서 사용)

추후라도   App  > Features > OAuth&Permissions 에서 확인 가능


4. 새로운 App 추가 확인

 

 

 Slack 에 App 추가

 

(선행) 기존 채널이 있으면 활용해도 되고, 알림 메시지 전용 채널을 생성해도 됩니다. 
채널 생성후 진행하세요.


1. 채널 설정 >  통합 > 앱 추가
위에서 생성한 App (zabbix_check)을 검색해서 추가합니다.

 

Slack에 Webhooks 설치

1. 채널 설정 > 통합 > 앱 추가
incoming-webhook 검색하여 설치
2. incoming webhook 설정

3. 저장하면 아래와 같습니다.

 

Webhook 테스트 

정상으로 설정되면 CMD 창에서 다음과 같이 실행시  채널에 메시지가 발송됩니다.
(예시) curl -s -d "payload={\"text\":\"buddy_test wow\"}" "웹hook URL"

 

Zabbix 에서 Media types 수정

1. Alters > Media types 에서 기존 slack 이름 변경 (slack_temp)

2. Import (첨부 media_slack.yaml 파일)

3. slack 수정

3

Zabbix 에서 Trigger Action 수정

Alerts > Action > Triggers actions 에서 Report problem to Zabbix administrator 수정

Zabbix 에서 User 수정

특정이슈 (Average, High, Disaster)  발생시에만 buddy에게 발송

최종 Test

모니터링 서버 중 서비스를 종료시 Zabbix 에 이벤트 발생하는지 확인하고 slack 에도 전달되는지 확인합니다.

slack으로 오류 발생하면 다음과 이미지와 같이 확인할 수 있습니다.

 

 

Slack API: Applications | Slack

Your Apps Don't see an app you're looking for? Sign in to another workspace.

api.slack.com