VMware 에서 일종의 테스팅 용도로 제공하는 툴들이 몇가지 있습니다. 어느정도 완성도가 올라오거나 하면, 그 툴들이 정식버전내의 기능으로 들어가는 경우들도 있죠.
이러한 툴들이 올라오는 사이트가 VMware Flings 입니다. 일종의 시험작들을 공개하는 사이트로 볼 수 있습니다.
여기에 올라오는 것중에 VEBA 라는 것이 있습니다. VMware Event Blocker Appliance 를 의미하는데요, 이름에서도 눈치 채시는 분들도 있겠습니다만, 간단히 이야기하면, 어디선가 발생하는 이벤트나 알람 등을 땡겨와서, 그 이벤트를 딴 곳으로 보내주는 역할을 합니다.
현재 가능한 기능 (Function 이라고 부릅니다) 은 다음 페이지에서 확인하실 수 있습니다.
http://vmweventbroker.io/examples
위에서 보시면 슬랙으로도 해당 이벤트를 보낼 수 있습니다. 슬랙쪽에서는 Incoming Webhook 을 사용해서 받습니다.
이 VEBA, ova 형태로 제공되는데요, 설치과정 자체는 일반 VM 과 크게 다를것은 없습니다. 근데 이 veba 과 연관된 github 문서들을 보면, 처음엔 무슨말인지 도대체 못알아듣겠더라구요. -.-
삽질을 거듭한 결과, 제가 알아낸 내용으로 정리해서 설명드리겠습니다. 이 veba 의 경우 내부에서 컨테이너가 실행되는 형태로 구성됩니다. 그리고 그것을 K8S(쿠버네티스) 를 통해서 deploy 하게 되는데요, 위의 example 페이지에 나와있는 기능들을 veba 내의 쿠버네티스 환경에 deploy 하는 형태로 동작합니다.
VEBA 의 문서상으로는, 로컬에서 테스트를 거친후에, veba 쪽에 배포하는 방식으로 설명되어있습니다. 이렇게 하기 위해서, 로컬에다가 git/docker/kubectl 을 설치하고, 테스트하고, veba 의 k8s 내에 kubectl 을 통해서 deploy 하는 것이죠. 첨엔 이게 무슨말인지 몰라서 대체 이걸 왜 해야 하나 싶더라구요. 그러다가 아 이것때문에 하는구만 하고 약간의 깨우침을 얻었습니다..
근데 veba 0.7x 버전에서는 UI 에서도 직접 할 수 있기 때문에, 꼭 위와 같이 로컬 테스팅을 하고 kubectl 을 쓸필요는 없게 되었습니다. 단, 펑션들을 위한 도커 이미지는 필요합니다. 따로 빌드를 하셔도 되고, 또는 기존의 Repository 에서 땡겨오셔도 됩니다. 다만 그래도 한번 해보시는게 이해가 더 빠르지 않을까 합니다. (깃허브의 예제파일에 docker repository 주소가 포함되어있긴 합니다. https://github.com/vmware-samples/vcenter-event-broker-appliance) – VEBA UI 를 vCenter 화면에 플러그인형태로 넣을려면 vCenter 가 7.0 버전이어야 합니다. 6.7 버전의 vCenter 에서는 UI 로는 펑션 구성이 불가능합니다.
VEBA 를 통해서는 vCenter 나, Horizon 또는 VMC 환경의 이벤트를 받아올 수 있고, 슬랙으로 보낼려면 그래도 veba 가 인터넷 연결이 되어야 겠죠. 또는 프록시를 거치던가요.
순서를 정리하면
- VEBA 를 배포하고
- Slack 의 워크스페이스 및 채널에 인커밍 웹훅 설정 및 URL 생성
- (2)번의 URL 을 가지고 secret file 을 생성하거나 또는 VEBA UI 상에서 시크릿 생성
- example 페이지에서 필요로 하는 펑션 선택 후 VEBA 내에 deploy
- 펑션 디플로이 후에 받아야할 이벤트를 추가하거나 제거
위와 같이 진행을 하면 이벤트 발생시 슬랙쪽으로도 알람이 발생하는 것을 확인해볼 수 있습니다.
아래꺼는 뭐가 잘못됬는지.. 알람 타입하고 object type 이 안나오긴 했어요.. 나중에 다시한번 확인해볼 예정이긴 합니다.vsphere-alarm 펑션이 좀 더 자세한 알람 내용을 알려준다고 되어있는데, 제가 테스트 해봤을때는 아직은 잘 안됩니다.
궁금하신 분은 한번 해보시고, 혹시 잘 안되거나, 도움이 필요하시면 댓글 남겨주세요. ^^