Elastic Observability 를 이용한 Azure 모니터링

2020년 6월 24일에 Elastic 과 MS Azure 가 함께 진행한 온라인 밋업의 준비와 본 내용에 대한 포스트 입니다. Elastic Observability 를 이용해서 Azure 클라우드를 모니터링 하는 방법을 알아봅니다.

Posted by Jongmin Kim (김종민) on 2020-06-16

COVID-19 때문에 커뮤니티 밋업을 온라인으로 진행하고 있습니다. 2020년 6월에는 Elastic Observability 를 이용해서 Azure 클라우드의 정보를 수집하고 시각화 하는 내용으로 진행을 하려고 합니다. 밋업 시간 동안 모든 작업을 진행하기가 어려워서 Azure 클라우드와 Elastic 클라우드의 클러스터와 가상 머신들을 생성하는 작업은 사전에 진행 해 놓으려고 합니다.

아래는 사전 작업 영상과, 작업에 사용된 Azure Cli 명령어 입니다.

# Azure 로그인
az login

# 대한민국 중부에 리소스 그룹 o11y-az 생성
az group create --name o11y-az --location koreacentral

# 리소스 그룹에 네트워크 보안 그룹 o11y-az-sec 생성
az network nsg create --resource-group o11y-az \
--name o11y-az-sec --location koreacentral

# 네트워크 보안 그룹에 포트 ssh:22, http:80 포트를 외부로부터 접속 가능하도록 설정
az network nsg rule create --resource-group o11y-az --nsg-name o11y-az-sec \
--name ssh --access Allow --protocol Tcp --direction Inbound --priority 100 \
--source-address-prefix Internet --source-port-range "*" \
--destination-address-prefix "*" --destination-port-range 22

az network nsg rule create --resource-group o11y-az --nsg-name o11y-az-sec \
--name http --access Allow --protocol Tcp --direction Inbound --priority 200 \
--source-address-prefix Internet --source-port-range "*" \
--destination-address-prefix "*" --destination-port-range 80

# 리소스 그룹에 가상 네트워크 o11y-az-vn 생성
az network vnet create --resource-group o11y-az --name o11y-az-vn \
--address-prefix 10.0.0.0/16 --subnet-name default

# 가상 네트워크에 네트워크 보안 그룹 적용
az network vnet subnet update --resource-group o11y-az \
--vnet-name o11y-az-vn \
--name default --network-security-group o11y-az-sec

# 리소스 그룹에 가상 머신 o11y-az-vm 생성 후 생성된 가상 네트워크에 연결
# 이미지 : UbuntuServer:18.04-LTS / 디스크 : 50GB
az vm create --resource-group o11y-az \
--name o11y-az-vm --image Canonical:UbuntuServer:18.04-LTS:latest \
--size Standard_D2s_v3 --data-disk-sizes-gb 50 \
--public-ip-address-allocation static \
--vnet-name o11y-az-vn --subnet default --nsg o11y-az-sec --generate-ssh-keys --verbose

위 명령대로 실행하고 나면 Azure 포털에 다음과 같이 o11y-az 리소스 그룹과 필요한 자원들이 생성됩니다.

당연한 이야기지만 리소스 그룹과 자원 이름들은 임의로 설정이 가능합니다. 리소스 그룹만 삭제하면 포함된 모든 자원들이 삭제되기 때문에 테스트 후 초기화 하기 편합니다.
계속 해서 영상을 참고해서 가상 머신에 접속하고 nginx 를 설치합니다.

# 가상 머신에 연결
ssh -i <private key path> user_id@<ip address>

# nginx 설치
sudo apt-get update
sudo apt-get install nginx
sudo service nginx restart

Metricbeat 과 Filebeat 은 아래 링크에서 다운로드 한 뒤 Kibana 에 있는 안내대로 설치하면 됩니다.
https://www.elastic.co/downloads/beats/metricbeat
https://www.elastic.co/downloads/beats/filebeat

ps:영상에 사용된 Elastic Cloud 클러스터와 Azure 리소스는 영상 녹화 후 모두 삭제 했습니다. 🤓

2020-06-24 에 진행한 온라인 밋업의 본 영상입니다.

최영락 님의 첫번째 발표 영상입니다.

  • 제목 : MS Azure 클라우드에서 Elastic 시작하기 (부제: Azure 와 만난 Elastic)
  • 발표 자료: https://aka.ms/azureelastic

제가 발표한 두번째 파트 입니다.

  • 제목 : Elastic Observability 를 이용한 Azure 모니터링
  • 발표 자료: 링크