Telegram monitoring and integration with Zabbix 5.0
ZABBIX 에서 텔레그램을 이용한 알람 설정
이전 포스팅에서도 얘기했지만 저는 현재 Slack 을 이용한 알람만 받고 있습니다. 몇몇 분들이 Telegram 을 이용해 알람을 받는 방법에 대해 포스팅 요청이 있어 테스트를 진행해 보았습니다.
이전 버전의 Telegram 알람 연동 방법은 Zabbix Notifications with graphs in Telegram 포스팅을 참고해 주시면 됩니다.
텔레그램 설정
1. Bot 생성을 위해 Telegram 에서 BotFather 를 검색후 START 를 해줍니다.
2. 채팅창에 /newbot
명령어를 실행해줍니다.
3. 생성할 Bot 의 이름을 설정하라고 합니다. 저는 ZBX-Monitoring 으로 설정했습니다.
4. Bot 의 사용자 이름을 설정하라고 합니다. Bot 의 사용자 이름은 반드시 뒤에 Bot 또는 bot 이 되어야 합니다. 저는 O3GZBXBot 으로 설정했습니다. 설정이 완료되면 아래 그림처럼 Bot 의 API 키가 나옵니다.
5. Telegram 에서는 API 연동시 ID 값을 이용하여 송신을 합니다. ID 값을 얻기 위해 검색창에서 IDBot 을 검색 후 START 를 해줍니다.
6. 채팅창에 /getid
명령어를 실행하여 ID 값을 얻을 수 잇습니다. Group 채팅방을 만들고 알람을 Group 으로만 받을 분들은 5번과 6번 과정을 건너 뛰셔도 됩니다.
7. 생성한 Bot 을 시작해주셔야 알람이 정상적으로 발송됩니다. 이 과정을 하지 않으면 알람이 절대 발송되지 않습니다. 검색창에 4번에서 생성한 Bot 사용자 이름을 검색하고 START 해주면 됩니다.
8. Group 채팅방을 이용하여 알람을 받기 위해 Group 을 생성합니다. Group 이름은 ZBX-MonGroup 으로 설정하였습니다.
9. Group 멤버는 4번에서 생성한 Bot 과 ID 값을 얻기위한 IDBot 두개를 반드시 추가해야 합니다. Bot 사용자는 7번에서는 처럼 Bot 사용자 이름으로 검색하면 됩니다.
10. 생성된 Group 채팅창에서 /getgroupid@myidbot
명령어를 실행하면 Group 채팅방의 ID 값을 얻을 수 있습니다. Group 의 ID 값은 마이너스(-) 기호까지 포함입니다.
자빅스 설정
11. 이제 Zabbix 의 프론트엔드로 넘어가서 미디어 타입에 설정을 해야 합니다. 이 후 과정들은 이전 포스팅인 Slack monitoring and integration with Zabbix 5.0 과 크게 다르지 않습니다. Administration -> Media types -> Telegram 순으로 선택합니다.
12. 아래 그림과 같이 ParseMode 와 Token 만 설정하시면 됩니다. ParseMode 에는 Markdown, MarkdownV2, HTML 3가지가 있습니다. 3가지의 차이점은 텔레그램 API 페이지에서 확인가능하며, TEST 화면에서 바꿔가면서 직접 테스트가 가능합니다. Token 은 4번 과정에서 마지막에 나온 API 키를 입력해 주시면 됩니다.
13. 아래 그림은 테스트 화면입니다. To 에 사용자 ID 값 혹은 Group 채팅방의 ID 값을 입력하고 Token 에는 API 키를 입력해 주면 됩니다. 이곳에서 ParseMode 를 변경하면서 테스트 가능합니다.
14. 이제 알람을 받을 사용자의 Media 에 Telegram 을 추가해주면 됩니다. Administration -> Users -> 사용자 -> Media 순으로 선택 후 아래 그림과 같이 수정 혹은 추가를 해줍니다.
15. 간단하게 Trigger Action 을 추가하여 실제 알람 전송 테스트를 해보도록 하겠습니다. Configuration -> Actions 순으로 선택을 하면 Report problems to Zabbix administrators 라는 disabled 되어잇는 액션이 하나 있습니다. 이것을 enabled 시키고서 활용해 보도록 하겠습니다.
아래 그림과 같이 해당 액션을 클릭 후 Operations 를 편집하여 Send only to 에서 Telegram 을 선택하고 업데이트 해줍니다.
16. 알람이 정상적으로 발송되는지 확인을 위해 Zabbix Server 호스트를 선택 후 Memcached 템플릿을 추가해 보았습니다. 당연히 Memcached 설치가 되어 있지 않기 때문에 아래 그림과 같이 Memcached Service Down 알람이 발생해야 합니다.
확인
17. 아래 그림은 Telegram 으로 알람이 날라온 화면입니다.
Zabbix 5.0 에서 Telegram 을 이용한 알람 설정 방법에 대해서 진행해 보았습니다. 이전 버전에서 사용한 외부스크립트를 이용한 알람 방법에는 그래프까지 출력해주기 때문에 보기가 좋았지만 Zabbix 에 통합된 알람에서는 그래프가 나오지 않는게 매우 아쉽습니다.
개인적으로 전체적인 비주얼은 Telegram 보다는 Slack 이 훨씬 깔끔하게 출력 되는 것 같아 앞으로도 계속 Slack 을 이용할 것 같습니다.