BCS 인스턴스 모니터링
카카오클라우드에서는 Monitoring Agent를 통해 프로젝트 내 VM의 컴퓨팅 리소스를 모니터링할 수 있습니다. 이번 가이드에서는 각 인스턴스에 Monitoring Agent를 설치하고 특정 인스턴스를 모니터링하는 예제를 제공합니다.
- 예상 소요 시간: 30분
- 사용자 환경
- 권장 운영 체제: MacOS, Ubuntu, CentOS
- Region: kr-central-1, kr-central-2
- 권장 운영 체제: MacOS, Ubuntu, CentOS
- 사전 준비 사항
시작하기 전에
이 튜토리얼은 3-Tier 기반의 웹 서비스환경에서 진행합니다. 실습에 필요한 환경을 준비하려면, 먼저 VM 기반의 웹 서비스 구성 튜토리얼의 단계를 따라 웹 서비스를 구현해 주세요. 이 과정에서는 웹, 애플리케이션, 데이터베이스 계층으로 구성된 환경을 단계적으로 설정하게 됩니다.
시작하기
이번 실습에서는 인스턴스 모니터링 환경을 설정하는 전 과정을 안내합니다. 모니터링 에이전트 설치, 모니터링 정보 확인, Alert Center 설정, Slack 연동, 알림 정책 생성까지 단계별로 진행하며 실시간 알림 시스템을 구축하는 방법을 이해할 수 있습니다.
Step 1. 모니터링 에이전트 설치하기
모니터링 에이전트는 메트릭, 로그 기반의 정책을 설정하여 카카오클라우드 내 인스턴스의 컴퓨팅 리소스 상태와 변화를 모니터링할 수 있습니다. 자세한 정보는 모니터링 에이전트 설치를 참고하시기 바랍니다.
-
로컬 환경에서 터미널 실행 후 다음 명령어를 실행하여 SSH 연결을 진행합니다.
chmod 400 ${PRIVATE_KEY}
ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP}주의키 파일 권한 문제로 bad permissions 오류가 발생할 수 있습니다. 이 경우 sudo 명령어를 추가하여 문제를 해결할 수 있습니다.
예) sudo ssh … -
내부 호스트로 들어오는 트래픽은 Bastion을 통해 전달됩니다. WEB, WAS 호스트가 Bastion에서 보낸 트래픽을 받을 수 있는지 카카오클라우드 콘솔 내 보안 그룹을 확인해야 합니다. 인바운드 규칙에 아래의 내용이 포함되어 있는지 확인하고 추가합니다.
인바운드 규칙 프로토콜 패킷 출발지(Source) 포트 번호 web/app inbound policy TCP {bastion private ip}/32
22 -
SSH 연결을 통해 각 호스트로 접근합니다.
# web1
ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP} -p 10000
# web2
ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP} -p 10001
# app1
ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP} -p 10002
# app2
ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP} -p 10003 -
호스트에 접근했으면 인스턴스 시간대 변경 및 모니터링 에이전트를 다운로드합니다.
- CentOS
- Ubuntu
# 인스턴스 시간대 변경
sudo timedatectl set-timezone Asia/Seoul
# 모니터링 에이전트 다운로드
sudo yum localinstall ${Object Storage 엔드포인트}/v1/52867b7dc99d45fb808b5bc874cb5b79/kic-monitoring-agent/package/kic_monitor_agent-1.0.0.x86_64.rpm# 인스턴스 시간대 변경
sudo timedatectl set-timezone Asia/Seoul
# 모니터링 에이전트 다운로드
wget ${Object Storage 엔드포인트}/v1/52867b7dc99d45fb808b5bc874cb5b79/kic-monitoring-agent/package/kic_monitor_agent_1.0.0_amd64.deb
sudo dpkg -i kic_monitor_agent_1.0.0_amd64.deb리전 Object Storage 엔드포인트 kr-central-1 https://objectstorage.kr-central-1.kakaocloud.com
kr-central-2 https://objectstorage.kr-central-2.kakaocloud.com
주의dpkg/lock 오류가 발생한다면 아래 Script의 명령어를 실행합니다.
# /var/lib/dpkg/lock 파일과 관련된 캐시 파일들을 삭제
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a
sudo apt update -
모니터링 에이전트의 설정파일을 수정합니다.
# 설정 파일에 액세스 키 정보 및 로그파일 경로 입력
cat <<EOF | sudo tee /etc/default/kic_monitor_agent
KIC_MONITOR_ENDPOINT_URL=${모니터링 엔드포인트}
KIC_MONITOR_AGENT_AUTH_APPLICATION_CREDENTIAL_ID="${액세스 키 ID}"
KIC_MONITOR_AGENT_AUTH_APPLICATION_CREDENTIAL_SECRET="${보안 액세스 키}"
KIC_LOG_FILE_PATH="{로그파일 경로}"
## 호스트가 직접 Public 망에 접속하지 못할 경우, HTTP Proxy 서버를 지정할 수 있습니다.
# HTTP_PROXY=http://proxy
# HTTPS_PROXY=https://proxy
# NO_PROXY=169.254.169.254
EOF리전 모니터링 엔드포인트 kr-central-1 https://lma.kr-central-1.kakaoi.io
kr-central-2 https://monitoring.kr-central-2.kakaocloud.com
-
모니터링 에이전트를 재시작하고, 실행 확인을 합니다.
# 에이전트 재시작
sudo systemctl restart kic_monitor_agent
# VM 부팅 시 자동 시작
sudo systemctl enable kic_monitor_agent
# 에이전트 실행 확인
sudo journalctl -u kic_monitor_agent -f
Step 2. 모니터링 정보 확인하기
인스턴스에 모니터링 에이전트를 설치하면, 해당 인스턴스의 컴퓨팅 리소스에 대한 모니터링 그래프를 확인할 수 있습니다.
-
카카오클라우드 콘솔 > Management > Monitoring을 선택합니다.
-
기본 대시보드 영역에서 [Beyond Compute Service]를 선택합니다.
-
모니터링할 인스턴스를 선택하고, 모니터링 그래프를 확인합니다.
Step 3. Alert Center에서 수신 채널 생성
카카오클라우드의 Alert Center에서는 컴퓨팅 리소스의 위험 레벨에 대한 알림 수신 채널을 생성할 수 있습니다.
-
카카오클라우드 콘솔 > Management > Alert Center > 수신 채널을 선택합니다.
-
[수신 채널 생성] 버튼을 클릭합니다.
-
수신 채널의 정보를 입력하고, 채널 유형을 선택 후, [생성] 버튼을 클릭합니다.
구분 설명 기본 채널 이메일/ 문자/ 카카오톡으로 해당 알림을 전송 슬랙/ 웹훅 원하는 슬랙 채널에서 해당 알림을 전송
Step 4. Webhook을 이용한 Slack 수신 채널 연동
-
사용할 Slack 애플리케이션의 앱(Apps) 탭에서 Incoming WebHooks 하단의 [추가] 버튼을 클릭합니다.
-
[Slack에 추가] 버튼을 누르고 알림을 수신받을 채널을 선택합니다. 채널 선택이 완료되면 [수신 웹 후크 통합 앱 추가] 버튼을 클릭합니다.
웹훅-슬랙 유형의 수신 채널 생성
-
생성된 웹 후크의 URL을 복사해둡니다.
-
카카오클라우드 콘솔 > Management > Alert Center > 수신 채널 > 수신 채널 생성 탭으로 이동 후, 복사해둔 엔드포인트 URL을 기입합니다.
-
생성된 수신 채널을 확인합니다.
Step 5. 알림 정책 생성하기
카카오클라우드의 Alert Center에서 컴퓨팅 리소스의 위험 레벨에 따른 알림 정책을 설정할 수 있습니다.
-
Alert Center > 수신 채널에서 [알림 정책 생성] 버튼을 클릭합니다.
-
필요한 알림 조건을 설정합니다.
-
설정한 알림을 수신할 채널을 선택합니다. 기존에 생성했던 채널을 선택하거나 신규 채널을 생성할 수 있습니다.
-
알림 정책의 이름을 설정하고 검토 후 [생성] 버튼을 클릭해 알림 정책을 생성합니다.
-
설정한 알림의 메트릭 조건에 해당될 때, 각 수신 채널에서 알림이 정상적으로 발송되는지 확인합니다.