[AWS] procstat plugin란? 쉽게 정리 (feat. CloudWatch Agent)
CloudWatch Agent procstat plugin
procstat 플러그인
Procstat 플러그인은 CloudWatch Agent의 플러그인 중 하나이다.
Procstat 플러그인은 특정 프로세스의 리소스 사용량(예: CPU 사용량, 메모리 사용량, PID 등)을 더 세밀하게 추적하여 Process metrics 형태로 CloudWatch로 전송하는 데 사용된다.
⚠️ Procstat 플러그인은 Amazon ECS의 Fargate 런치 타입에서는 지원되지 않는다.
( EC2 인스턴스나 온프레미스 서버에서는 사용가능)
CloudWatch에서는 "procstat" 라는 이름을 포함된 procstat 플러그인의 메트릭스를 찾아낼 수 있다.
PID란?: https://jibinary.tistory.com/629
procstat 설정 방법
1. EC2 인스턴스에 CloudWatch Agent 설치
예시) Linux OS
sudo yum install amazon-cloudwatch-agent -y
2. Procstat 설정 추가
CloudWatch Agent 설정 파일(amazon-cloudwatch-agent.json)에 Procstat을 추가한다.
예시) /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
"metrics": {
"append_dimensions": {
"InstanceId": "${aws:InstanceId}"
},
"metrics_collected": {
"procstat": [
{
"pattern": "nginx", // 모니터링할 프로세스 이름 (예: nginx)
"measurement": [
"cpu_time_user",
"cpu_time_system",
"memory_rss"
],
"pid_file": "/var/run/nginx.pid" // PID 파일 경로 (선택 사항)
},
{
"pattern": "python", // 다른 프로세스 추가 예시
"measurement": [
"cpu_usage",
"memory_rss"
]
}
]
}
}
}
3. 설정 파일 CloudWatch Agent에 적용
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json \
-s
4. CloudWatch 콘솔에서 데이터 확인
AWS Management Console → CloudWatch → Metrics → Custom Namespaces 섹션의 procstat 메트릭
🤔 문제
회사는 매일 밤 여러 번 퍼포먼스에 문제가 발생하는 웹 애플리케이션을 운영하고 있습니다. root cause 분석을 통해 Amazon EC2 Linux 인스턴스에서 5분 동안 지속되는 CPU 사용량의 갑작스러운 증가가 발견되었습니다. SysOps 관리자는 CPU를 많이 사용하는 서비스나 프로세스의 프로세스 ID(PID)를 찾아야 합니다. 관리자는 가장 적은 노력으로 프로세스 사용 정보를 수집하려면 어떻게 해야 할까요?
- Amazon CloudWatch Agent의 procstat 플러그인을 구성하여 CPU 프로세스 메트릭을 캡처한다.
- AWS Lambda 함수를 구성하여 매분 PID를 캡처하고 알림을 전송한다.
- 매일 밤 .pem 키를 사용하여 EC2 인스턴스에 로그인한 후 top 명령어를 실행한다.
- 기본 Amazon CloudWatch CPU 사용량 메트릭을 사용하여 CloudWatch에서 PID를 캡처한다.
정답
정답. 1번