오늘은 Webhook을 통해 Slack과 연동해서
웹서버 문제 발생 시 Slack으로 알림을 받을 수 있도록 시스템을 구축하도록 해보겠습니다.
먼저 준비물은 Slack Webhook 주소, Zabbix 서버, slack.sh 스크립트입니다.
먼저 Slack Webhook 주소를 받아야 합니다. 아래 사이트에 들어가 주세요.
https://my.slack.com/services/new/incoming-webhook
포스트 할 채널을 선택 후 수신 웹후크 통합 앱 추가 버튼을 눌러주세요.
그럼 저렇게 웹후크 URL이 나오는데 메모해주시면 되겠습니다.
이제 slack.sh 스크립트를 서버에 적용하는 작업을 해보겠습니다.
스크립트 출처 : https://github.com/ericoc/zabbix-slack-alertscript/blob/master/slack.sh
스크립트 맨 위에 url & name 은 자신의 Webhook 주소와 설정한 이름에 맞게 넣어주면 됩니다.
이제 스크립트를 zabbix 서버 안에 넣어줘야 하는데 zabbix 서버가 없다면 아래 글을 참고하세요.
alsrbdmsco0409.tistory.com/342
그다음 /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와 슬랙을 이용해 모니터링 시스템을 구축해봤습니다.
'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 |