GCP Compute Engine VM의 CPU나 메모리 사용량이 임계치를 넘거나, 특정 프로세스의 메트릭이 더 이상 수집되지 않을 때 이메일 알림을 받을 수 있다. 이 글에서는 Ops Agent 설치 상태를 확인하고, Cloud Monitoring에서 알림 채널과 정책을 설정한 뒤 실제 알림이 발생한 화면까지 살펴본다.
Google Cloud는 기능 업데이트에 따라 콘솔 UI의 메뉴명이나 화면 구성을 조금씩 변경할 수 있다. 현재 화면이 캡처와 다르면 메뉴의 정확한 위치보다 선택한 메트릭 유형, 리소스 필터, 임계치와 평가 시간을 기준으로 확인한다.
Ops Agent를 설치하기 전에 대상 VM 운영체제가 현재 지원 목록에 포함되어 있는지 확인한다.
1. VM에 Ops Agent 설치#
Ops Agent는 Compute Engine VM에서 로그와 메트릭을 수집해 Cloud Logging과 Cloud Monitoring으로 보낸다. 캡처에서는 Monitoring의 VM Instances 화면에서 대상 VM을 선택하고 에이전트 설치/업데이트를 실행한다.

설치 작업이 끝나면 VM 목록에서 에이전트 상태를 확인한다. 아래 화면에는 일부 VM에 에이전트가 설치된 상태가 표시되어 있다.

Ops Agent를 설치하려면 VM 운영체제가 지원 대상이어야 하며 Cloud Logging API와 Cloud Monitoring API도 활성화되어 있어야 한다. 기본 Compute Engine 서비스 계정에는 로그 작성자(roles/logging.logWriter)와 Monitoring 메트릭 작성자(roles/monitoring.metricWriter) 권한이 일반적으로 부여되어 있다. 사용자 지정 서비스 계정을 사용하거나 오래된 VM이라면 두 권한과 VM 액세스 범위를 확인한다. 자세한 설치 조건과 절차는 Ops Agent 설치 문서를 참고한다.
Linux VM에 명령줄로 설치하는 경우 공식 문서의 현재 기본 절차는 다음과 같다.
curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install위 명령은 지원되는 Linux 이미지에서 사용한다. Google Cloud 콘솔에는 Ops Agent와 기존 Monitoring·Logging 에이전트가 별도로 표시되므로, 설치 상태에서 에이전트 종류도 확인한다.
2. 이메일 알림 채널 설정#
알림 정책을 만들기 전에 알림을 받을 이메일 채널을 등록한다. Monitoring의 알림 화면에서 알림 채널 설정을 열고, 이메일 채널에 수신자와 표시 이름을 추가한다.

정책을 만들 때 이 채널을 선택하면 조건이 충족됐을 때 이메일 알림을 받을 수 있다. 운영 환경에서는 담당자 변경이나 메일 주소 변경 시 채널도 함께 점검한다. 알림 채널이 등록되어 있어도 정책에서 해당 채널을 선택하지 않으면 그 채널로 알림이 발송되지 않는다.
3. CPU 메트릭과 필터 확인#
Cloud Monitoring에는 CPU Load와 CPU utilization 등 이름이 비슷해 보이는 서로 다른 메트릭이 있다. CPU Load는 일정 시간 동안의 시스템 부하 평균이고, CPU utilization은 CPU가 각 상태에서 사용된 비율이다. 무엇을 감지할지에 따라 메트릭을 선택해야 한다.

여기서는 CPU utilization (OS reported) 메트릭을 선택하고 cpu_state=user 필터를 적용한다.

cpu_state=user를 적용하면 전체 CPU 사용률이 아니라 사용자 프로세스가 사용한 CPU 상태를 따로 본다. 커널 작업 등을 포함한 전체 CPU 사용량을 기준으로 알림을 만들려는 경우에는 이 필터가 적절한지 다시 확인해야 한다. Ops Agent의 CPU 메트릭은 VM 내부에서 수집되며, Compute Engine 하이퍼바이저가 제공하는 CPU 메트릭과 측정 기준이 다를 수 있다. Ops Agent 메트릭 설명
CPU 알림을 운영에 적용하기 전에 설정한 임계치와 평가 시간을 테스트해 실제 알림이 오는지 확인한다.
4. 메모리 사용률 70% 초과 알림#
메모리 조건에서는 Ops Agent의 agent.googleapis.com/memory/percent_used 메트릭을 사용하고, VM을 지정한 뒤 state=used로 필터링했다. 임계치는 70%로 설정했다.

정책의 임계치 조건이 충족되면 선택한 알림 채널로 통보된다. 이메일 알림에는 메모리 사용률 **75.456%**가 기록되어 있다. 설정한 임계치 70%를 넘은 상태다.

하나의 알림 정책에 CPU와 메모리 조건을 함께 넣을 수도 있다. 캡처된 설정처럼 Any condition is met을 선택하면 CPU 또는 메모리 중 하나라도 조건을 만족할 때 알림을 만든다. All conditions are met은 모든 조건이 충족되어야 하므로, 한 조건만 초과해도 대응해야 하는 모니터링에서는 의도한 설정인지 확인한다.
5. 프로세스 메트릭이 끊기면 알림 보내기#
프로세스 조건은 agent.googleapis.com/processes/cpu_time 메트릭을 사용한다. 이 메트릭은 프로세스별 CPU 시간을 수집하며, 캡처에서는 명령행, VM 이름, 사용자 프로세스 구분을 필터로 지정했다.

test_app은 CPU 부하 테스트를 위해 준비한 프로그램이다. 아래 C++ 샘플은 ./test_app -port 5000으로 실행하면 VM의 로컬 5000번 포트에서 요청을 기다리고, /cpu 요청을 받으면 기본 120초 동안 CPU 부하를 만든다. seconds 매개변수로 실행 시간을 지정할 수 있으며 1~120초로 제한했다. 프로그램은 VM에서 확인되는 논리 CPU 수만큼 작업 스레드를 실행한다.
Ops Agent의 CPU utilization (OS reported) 메트릭은 60초 간격으로 수집된다. 짧은 부하는 메트릭 수집 사이에 끝날 수 있어 샘플 기본 시간을 120초로 설정했다. 실제 알림 시점은 정책의 평가 시간과 수집 시점에도 영향을 받는다. CPU 메트릭 수집 주기
VM에 C++ 컴파일러가 있는지 g++ --version으로 확인한다. 없다면 운영체제에 맞는 패키지 관리자로 설치한다. Ubuntu·Debian 계열에서는 다음 명령을 사용한다.
sudo apt update
sudo apt install -y g++RHEL 계열에서는 다음과 같이 설치할 수 있다.
sudo dnf install -y gcc-c++브라우저에서 다운로드한 파일을 VM으로 복사하거나, VM에서 다음 명령으로 직접 내려받는다.
curl -L -o test_app.cpp https://blog.jinosoft.com/posts/gcp-compute-engine-vm-monitoring-alerts/test_app.cpp소스를 내려받은 뒤 빌드하고 실행한다.
g++ -std=c++17 -O2 -pthread test_app.cpp -o test_app
./test_app -port 5000다른 SSH 세션에서 로컬 요청을 보내 부하를 만든다. 실행 시간을 생략하면 120초 동안 부하를 주고, 응답도 작업이 끝난 뒤 반환된다.
curl "http://127.0.0.1:5000/cpu"이 샘플은 논리 CPU마다 작업 스레드를 실행해 VM의 CPU를 높게 사용한다. 120초 동안 VM 자원이 크게 사용될 수 있으므로 운영 중인 서버가 아닌 테스트 VM에서 실행한다.
기본 설정은 127.0.0.1에만 바인딩하므로 실습을 위해 GCP 방화벽에서 포트 5000을 외부에 공개할 필요가 없다. 요청을 받아 CPU 부하를 만드는 동작과 CPU 메트릭 조건은 연결되지만, 알림 정책은 포트 연결 여부를 직접 검사하지 않는다.
같은 프로그램을 프로세스 부재 알림에도 사용한다. 이 조건은 test_app의 agent.googleapis.com/processes/cpu_time 메트릭이 일정 시간 사라졌는지를 확인한다. 따라서 CPU 사용률 임계치 알림은 요청으로 부하를 줄 때, 프로세스 부재 알림은 테스트 프로세스를 종료했을 때 확인하는 서로 다른 조건이다. 샘플의 실행 명령은 캡처의 command_line 필터와 일치한다.
트리거 유형은 임계치 초과가 아니라 Metric absence로 설정하고, 메트릭이 5분 동안 들어오지 않으면 알림이 발생하도록 했다. 프로세스를 시작해 메트릭이 수집되는 것을 확인한 뒤 테스트 프로세스를 종료했다. 이후 이메일 알림에는 해당 프로세스의 CPU 메트릭이 5분 넘게 관측되지 않았다는 내용이 표시됐다.

이 방식은 프로세스 메트릭이 일정 시간 사라졌는지를 감지한다. 프로세스가 종료되는 즉시 통보하는 방식은 아니며, 메트릭을 한 번도 수집하지 못했거나 Ops Agent가 중단된 경우에도 데이터가 없을 수 있다. Cloud Monitoring의 메트릭 부재 조건은 정책 생성 후 해당 시계열의 데이터가 한 번 이상 수집된 이력이 있어야 정상적으로 부재를 판단할 수 있다. 또한 이 조건은 종료되거나 삭제된 VM 자체의 상태 확인 용도로 사용할 수 없다. 메트릭 부재 알림 조건
프로세스 메트릭은 60초 간격으로 수집되며, Monitoring 메트릭 수집량에 따라 비용이 발생할 수 있다. 2026년 10월 Google Cloud 문서는 프로세스 메트릭 비용을 일반 메트릭 예시 비용의 5%로 추산하는 방법을 안내한다. 실제 적용 전에 프로세스 메트릭 비용 안내와 최신 가격을 확인한다.
따라서 프로세스 알림을 운영에 적용할 때는 Metric absence의 평가 시간을 업무 요구에 맞게 정하고, Ops Agent와 메트릭 수집이 정상인지도 함께 감시해야 한다. 단순히 “프로세스가 살아 있다”는 상태 확인이 목적이라면, 이 메트릭이 애플리케이션 헬스체크를 대신한다고 보면 안 된다.
설정 결과와 적용 전 확인#
이 구성에서는 CPU utilization과 메모리 조건을 정책에 추가했다. 메모리 사용률이 70%를 넘어 75.456%에 도달했을 때 알림이 왔고, 테스트 프로세스를 종료한 뒤에는 Process CPU 메트릭 부재 알림이 5분이 지나 발생했다.
실제 적용 전에는 다음 항목을 확인한다.
- VM 운영체제가 현재 Ops Agent 지원 대상인지
- Ops Agent가 실행 중이고 Cloud Monitoring으로 메트릭을 보내는지
- CPU Load와 CPU utilization 중 어떤 값을 감시할지
- CPU 메트릭의
cpu_state필터가 의도한 사용량만 포함하는지 - 메모리 임계치와 정책 평가 시간이 서비스에 맞는지
- 프로세스 부재 알림이 메트릭 수집 중단과 애플리케이션 종료를 구분할 수 있도록 설계됐는지
- 알림 정책에 올바른 이메일 채널이 연결되어 있는지
CPU·메모리 임계치와 프로세스 메트릭 부재 조건은 서로 감지하는 상태가 다르다. 임계치 알림은 자원 사용량이 설정값을 넘었는지 확인하고, 메트릭 부재 알림은 지정한 시간 동안 프로세스 메트릭이 수집되지 않았는지 확인한다. 운영 환경에서는 알림 조건과 통보 채널을 각각 시험한 뒤 적용한다.