Slack monitoring and integration with Zabbix 5.0
ZABBIX 에서 Slack 을 이용한 알람 설정
Zabbix 에 Telegram 을 연동하여 사용하는 분들이 많이 있습니다. 저는 현재 Slack 을 이용하여 알람을 받고 있습니다. 이전 버전까지만 해도 외부 스크립트를 이용하여 알람 설정을 해야 했지만 5.0 버전부터는 Zabbix Media Types 에 Slack 알람 기능이 통합되었습니다. Slack 외에도 Telegram, MS Teams 등 많은 미디어 타입들이 통합되었습니다.
이 포스팅에서는 제가 주로 사용하고 있는 Slack 을 연동하여 Zabbix 5.0 에서 알람을 받는 방법에 대해 작성해 보도록 하겠습니다.
슬랙 설정
1. slack apps 을 추가하기 위해 slack apps 사이트로 이동 후 Create an App 을 선택합니다. 기존에 다른 앱이 있다면 Create New App 으로 표시됩니다.
2. App Name 을 적고 알람을 받을 워크스페이스를 선택해 줍니다. 저는 TEST_on_Zabbix 라는 이름으로 App 을 생성하였습니다.
3. Bot 생성을 위해 Bots 를 선택해 줍니다.
4. Bot 권한을 추가해 주어야 설치가 완료되기 때문에 Review Scopes to Add 를 선택하여 줍니다.
5. Bot 권한은 chat:write, chat:write.customize 두개만 있으면 충분합니다. 다른 권한이 필요하신 분은 다른 권한도 추가해 주시면 됩니다.
6. Bot 권한 추가가 완료되었으면 App 설치 해줍니다.
7. 간단한 요약과 함께 다시한번 확인하는 창이 나옵니다. 특별한 경우가 아니라면 Allow 해줍니다.
8. Bot 토큰이 생성되었습니다. 해당 토큰을 Zabbix 5.0 프론트엔드의 Media Types 에 추가해주어야 하므로 복사합니다.
9. 이제 Slack 으로 들어가셔서 Zabbix 의 알람을 받을 채널에 Apps 을 추가해 줍니다. 저는 system_team 이라는 채널에 App 추가를 해보도록 하겠습니다.
10. App 리스트를 보면 위에서 생성한 TEST_on_Zabbix 이 보입니다. 해당 App 을 Add 해줍니다.
자빅스 설정
11. Slack 의 설정은 모두 완료되었습니다. 이제 Zabbix 프론트엔드에 접속해서 Administration -> Media types -> Slack 순으로 선택합니다.
12. 다른 설정은 건들이지 않으셔도 됩니다. bot_token 에 아까 복사한 토큰값을 넣어줍니다.
13. 기본 메세지 템플릿을 등록해 주어야 합니다. Message Templates 탭에서 원하시는 기본 메세지 템플릿을 추가해줍니다.
14. Macro 에서 Zabbix URL 매크로를 등록해주어야 합니다. General 설정에서 아래 그림과 같이 {$ZABBIX.URL}
Macro 를 등록해 줍니다.
15. 이제 알람을 받을 사용자의 Media 에 Slack 을 추가해주면 됩니다. Administration -> Users -> 사용자 -> Media 순으로 선택 후 아래 그림과 같이 수정 혹은 추가를 해줍니다.
16. 거의 모든 작업이 완료되었습니다. 간단하게 Trigger Actions 추가를 하여 알람이 정상적으로 발송되는지 확인해 보도록 하겠습니다.
Configuration -> Actions 순으로 선택을 하면 Report problems to Zabbix administrators 라는 disabled 되어잇는 액션이 하나 있습니다. 이것을 enabled 시키고서 활용해 보도록 하겠습니다.
아래 그림과 같이 해당 액션을 클릭 후 Operations 를 편집하여 Send only to 에서 Slack 을 선택하고 업데이트 해줍니다.
17. 알람이 정상적으로 발송되는지 확인을 위해 Zabbix Server 호스트를 선택 후 Memcached 템플릿을 추가해 보았습니다. 당연히 Memcached 설치가 되어 있지 않기 때문에 아래 그림과 같이 Memcached Service Down 알람이 발생해야 합니다.
확인
18. 아래 그림은 슬랙으로 알람이 날라온 화면입니다.