NETWORK & SEVER FACTORY

개인 공부 기록

Server/Monitoring

[ZABBIX] Slack으로 서버 상태 알림 받기

1nfra 2021. 2. 15. 11:39
728x90

오늘은 Webhook을 통해 Slack과 연동해서

 

웹서버 문제 발생 시 Slack으로 알림을 받을 수 있도록 시스템을 구축하도록 해보겠습니다.

 

먼저 준비물은 Slack Webhook 주소, Zabbix 서버, slack.sh 스크립트입니다.

 

먼저 Slack Webhook 주소를 받아야 합니다. 아래 사이트에 들어가 주세요.

 

https://my.slack.com/services/new/incoming-webhook

 

시작하기

팀과 함께 무료로 Slack 체험해보기 시작하려면 이메일 주소를 입력하세요.

slack.com

포스트 할 채널을 선택 후 수신 웹후크 통합 앱 추가 버튼을 눌러주세요.

 

그럼 저렇게 웹후크 URL이 나오는데 메모해주시면 되겠습니다.

 

이제 slack.sh 스크립트를 서버에 적용하는 작업을 해보겠습니다.

 

스크립트 출처 : https://github.com/ericoc/zabbix-slack-alertscript/blob/master/slack.sh

 

ericoc/zabbix-slack-alertscript

Zabbix AlertScript for Slack.com chat. Contribute to ericoc/zabbix-slack-alertscript development by creating an account on GitHub.

github.com

 

스크립트 맨 위에 url & name 은 자신의 Webhook 주소와 설정한 이름에 맞게 넣어주면 됩니다.

 

이제 스크립트를 zabbix 서버 안에 넣어줘야 하는데 zabbix 서버가 없다면 아래 글을 참고하세요.

 

alsrbdmsco0409.tistory.com/342

 

[CentOS] 1. zabbix 설치하기

오늘은 zabbix를 설치해보는 시간을 가져보도록 하겠습니다. zabbix는 먼저 시스템, 네트워크를 모니터링할 수 있는 오픈소스 툴입니다. 설치환경은 CentOS7에서 진행하겠습니다. 먼저 apache와 php를

alsrbdmsco0409.tistory.com

그다음 /usr/lib/zabbix/alertscripts/ 디렉터리에 slack.sh 파일을 만들어준 후 위 스크립트를 넣어줍니다.

 

그다음 slack.sh 파일의 권한을 수정해줍니다.

 

[root@zabbix ~]# vi /usr/lib/zabbix/alertscripts/slack.sh
[root@zabbix ~]# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/slack.sh
[root@zabbix ~]# chmod 755 /usr/lib/zabbix/alertscripts/slack.sh

저는 간단하게 메모장에서 수정 후 SSH로 넘겨줬습니다.

 

여기까지 왔으면 설정을 완료되었습니다. 이제 테스트를 해봅시다.

 

[root@zabbix ~]# bash /usr/lib/zabbix/alertscripts/slack.sh '#채널이름' 'Alert : test' 'SERVER TEST OK'

 

이렇게 slack으로 알림이 오면 테스트는 성공한 겁니다.

 

그 다음으로 Zabbix 설정을 해보도록 하겠습니다.

 

저는 웹서버 모니터링을 할 예정이므로 웹 시나리오를 작성해보도록 하겠습니다.

 

먼저 호스트를 등록해줘야 하는데 설정 - 호스트에 들어가 줍니다.

 

오른쪽 상단에 호스트 작성을 클릭해주세요.

 

호스트 명은 자신이 구별하기 쉬운 것으로 입력하시면 됩니다.

 

그룹을 선택하는 건 이미 만들어진 그룹에 넣거나 호스트 그룹을 만들어 적용시켜도 됩니다.

 

이렇게 입력하셨다면 호스트 옆에 템플릿을 눌러주세요.

 

내리다가 보면 Template OS Linux by Zabbix agent 가 있는데 체크 후 선택 및 추가를 눌러주세요.

 

그럼 이렇게 WEB이라는 호스트가 등록된 것을 볼 수 있습니다.

 

이제 이름 WEB에 웹을 눌러주세요. 그럼 아래와 같이 웹 시나리오 작성 창이 나옵니다.

 

웹 시나리오 작성을 하게 되면 이름에는 웹주소를 입력해주세요.

 

갱신 간격과 시도 횟수는 웹페이지 테스트를 몇 분에 몇 번 시도하는지 결정하는 옵션입니다.

 

이제 시나리오 옆에 스텝 창에 들어가 주세요.

 

위와 같이 설정 후 추가를 눌러주세요.

 

모니터링 - 웹에 들어가게 되면 이렇게 등록된 것을 볼 수 있습니다.

 

현재 상태에 아무것도 있지 않지만 아까 1분마다 갱신 옵션을 사용했기 때문에 잠시만 기다려주세요.

 

이렇게 정상이 뜬 것을 볼 수 있습니다.

 

이렇게 웹 시나리오를 작성했다면 이제 트리거를 작성해보도록 하겠습니다.

 

설정 - 호스트(트리거를 설정할 호스트) - 트리거에 들어가 주세요.

 

 

저는 VMware 호스트에서 트리거를 만들겠습니다. 각자 만든 호스트에서 진행하시면 됩니다.

 

 

 

오른쪽 상단에 트리거 작성을 눌러주세요.

 

위 사진과 같이 작성하시면 됩니다. 

 

이름에는 WEB 서버 다운 시 발생할 알람 이름을 적어주시면 됩니다.

 

심각도는 심각한 장애로 하겠습니다.

 

조건식에는 {host:web.test.fail[모니터링 할 웹주소].last(0)}>0 을 적어주세요.

 

host 자리에는 각자 등록한 호스트를 입력하시면 됩니다. (저의 경우 VMware) 그리고 웹주소를 적어주시면 됩니다.

 

예) {VMware:web.test.fail[www.google.com].last(0)}>0

 

다 적어주셨다면 추가를 눌러서 적용시켜주시면 됩니다.

 

트리거를 만들어준 후 이제 슬랙으로 알림이 가는 설정을 해야 합니다.

 

관리 - 유저에 들어가 줍니다.

 

Admin에 들어가 설정을 해봅시다.

 

연락 방법에 들어가서 종류에서는 위에 테스트 한 스크립트를 선택해주고

 

수신처는 알림 받을 메신저를 입력하면 됩니다.

 

그럼 이렇게 등록 추가된 것을 볼 수 있습니다.

 

이제 마지막 설정을 해야 합니다. 설정 - 액션에 들어가 액션 작성을 해줍니다.

 

먼저 이름은 Report to Slack으로 하겠습니다. 다음 오퍼레이션으로 넘어갑니다.

 

위와 같이 설정 후 추가를 눌러주세요. 

 

그럼 이렇게 오퍼레이션에 항목이 생긴 것을 볼 수 있습니다.

 

복구 시 실행내용에는 관계자 전원에게 통지로 설정해줍니다.

 

이제 추가를 눌러서 적용시켜주세요.

 

그럼 이렇게 액션이 추가가 되고 활성이 된 것을 볼 수 있습니다.

 

이제 서버를 다운시켜 트리거를 발생시킨 후 다시 리커버 알럿을 받아봅시다.

 

이렇게 슬랙으로 알람이 오는 것을 볼 수 있습니다.

 

오늘은 zabbix와 슬랙을 이용해 모니터링 시스템을 구축해봤습니다.

728x90

'Server > Monitoring' 카테고리의 다른 글

[ZABBIX] More than 75% used in the configuration cache 해결  (0) 2022.11.05
[ZABBIX] Agent 설치하기  (0) 2022.10.08
[ZABBIX] DB 백업 및 복원  (0) 2022.10.07
[ZABBIX] 폰트 깨짐 해결  (0) 2021.07.30
[ZABBIX] Zabbix 설치하기  (0) 2021.02.18