procstat 플러그 인을 사용하여 프로세스 지표 수집
procstat 플러그인을 사용하면 개별 프로세스에서 지표를 수집할 수 있습니다. 이 플러그인은 Linux 서버와 지원되는 Windows Server 버전을 실행하는 서버에서 지원됩니다. 이 섹션에서는 procstat용 CloudWatch 에이전트를 구성하는 방법과 CloudWatch 에이전트가 가져오는 지표를 보는 방법을 설명합니다. procstat가 수집하는 지표도 나열되어 있습니다.
참고
Amazon ECS 환경의 Fargate 시작 유형에는 procstat
플러그인이 지원되지 않습니다.
Procstat용 CloudWatch 에이전트 구성
procstat 플러그 인을 사용하려면 CloudWatch 에이전트 구성 파일의 metrics_collected
섹션에 procstat
섹션을 추가합니다. 모니터링할 프로세스를 지정하는 방법은 세 가지가 있습니다. 이러한 메서드는 하나만 사용할 수 있지만 해당 메서드를 사용해 모니터링할 프로세스를 여러 개 지정할 수 있습니다.
-
pid_file
: 프로세스를 통해 생성된 프로세스 식별 번호(PID)의 이름으로 프로세스를 선택합니다. -
exe
: 정규식 일치 규칙을 사용하여 프로세스 이름이 지정한 문자열과 일치하는 프로세스를 선택합니다. 일치는 “포함”일치입니다. 즉, 일치시킬 용어로agent
를 지정하면cloudwatchagent
와 같은 이름의 프로세스는 해당 용어와 일치합니다. 자세한 내용은 구문을 참조하세요. -
pattern
: 프로세스를 시작하는 데 사용된 명령줄로 프로세스를 선택합니다. 정규식 일치 규칙을 사용하여 명령줄이 지정한 문자열과 일치하는 프로세스가 모두 선택됩니다. 명령과 함께 사용된 파라미터 및 옵션을 포함하여 전체 명령줄을 확인합니다.일치는 “포함”일치입니다. 즉, 일치시킬 용어로
-c
를 지정하면-config
와 같은 파라미터가 있는 프로세스는 해당 용어와 일치합니다. -
drop_original_metrics
– 선택 사항입니다.metrics
섹션의aggregation_dimensions
필드를 사용하여 지표를 집계된 결과로 롤업하는 경우 기본적으로 에이전트는 집계된 지표와 측정기준의 각 값에 대해 구분된 원래 지표를 모두 전송합니다. 원본 지표를 CloudWatch로 전송하지 않으려면 지표 목록과 함께 이 파라미터를 지정할 수 있습니다. 이 파라미터와 함께 지정된 지표에는 CloudWatch에 보고되는 측정기준별 지표가 없습니다. 대신 집계된 지표만 보고됩니다. 이렇게 하면 에이전트가 수집하는 지표의 수가 줄어들어 비용이 절감됩니다.
위 섹션 중 두 개 이상을 포함했더라도 CloudWatch 에이전트는 이러한 방법 중 하나만 사용합니다. 섹션을 두 개 이상 지정한 경우 CloudWatch 에이전트는 pid_file
섹션을 사용합니다(있는 경우). 없는 경우에는 exe
섹션을 사용합니다.
Linux 서버의 경우 exe
또는 pattern
섹션에서 지정한 문자열은 정규식으로 평가됩니다. Windows Server를 실행하는 서버에서 이러한 문자열은 WMI 쿼리로 평가됩니다. 예를 들어 pattern: "%apache%"
가 됩니다. 자세한 내용은 LIKE 연산자
어떤 방법을 사용하든 간에 지표 수집 빈도(초)를 지정하는 선택적 metrics_collection_interval
파라미터를 포함할 수 있습니다. 이 파라미터를 생략하면 기본값인 60초가 사용됩니다.
다음 단윈의 예제에서 procstat
섹션은 에이전트 구성 파일의 metrics_collected
섹션에 포함된 유일한 섹션입니다. 실제 구성 파일에서는 metrics_collected
에 다른 섹션을 포함할 수도 있습니다. 자세한 내용은 수동으로 CloudWatch 에이전트 구성 파일 생성 또는 편집 단원을 참조하십시오.
pid_file을 사용하여 구성
다음 예제 procstat
섹션에서는 PID 파일 example1.pid
및 example2.pid
를 생성하는 프로세스를 모니터링합니다. 각 프로세스에서는 여러 지표가 수집됩니다. example2.pid
를 생성하는 프로세스에서 수집되는 지표는 10초마다 수집되고, example1.pid
프로세스에서 수집되는 지표는 60초마다 수집됩니다(기본값).
{ "metrics": { "metrics_collected": { "procstat": [ { "pid_file": "/var/run/example1.pid", "measurement": [ "cpu_usage", "memory_rss" ] }, { "pid_file": "/var/run/example2.pid", "measurement": [ "read_bytes", "read_count", "write_bytes" ], "metrics_collection_interval": 10 } ] } } }
exe를 사용하여 구성
다음 예제 procstat
섹션은 문자열 agent
또는 plugin
과 이름이 일치하는 모든 프로세스를 모니터링합니다. 각 프로세스에서 동일한 지표가 수집됩니다.
{ "metrics": { "metrics_collected": { "procstat": [ { "exe": "agent", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] }, { "exe": "plugin", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] } ] } } }
pattern을 사용하여 구성
다음 예제 procstat
섹션은 문자열 config
또는 -c
와 명령줄이 일치하는 모든 프로세스를 모니터링합니다. 각 프로세스에서 동일한 지표가 수집됩니다.
{ "metrics": { "metrics_collected": { "procstat": [ { "pattern": "config", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] }, { "pattern": "-c", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] } ] } } }
procstat가 수집하는 지표
다음 표에는 procstat
플러그인을 사용하여 수집할 수 있는 지표가 나열되어 있습니다.
CloudWatch 에이전트는 다음 지표 이름의 시작 부분에 procstat
를 추가합니다. Linux 서버 또는 Windows Server를 실행하는 서버에서 수집되었는지 여부에 따라 구문이 다릅니다. 예를 들어, cpu_time
지표는 Linux에서 수집된 경우 procstat_cpu_time
으로 표시되고, Windows Server에서 수집된 경우에는 procstat cpu_time
으로 표시됩니다.
메트릭 이름 | 제공 위치 | 설명 |
---|---|---|
|
Linux |
프로세스가 CPU를 사용하는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 단위: 수 |
|
Linux |
프로세스가 게스트 모드에 있는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux |
Nice 게스트에서 프로세스가 실행되는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux |
프로세스가 유휴 모드에 있는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux |
프로세스가 I/O 작업이 완료될 때까지 대기하는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux |
프로세스가 서비스 중단되는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux |
프로세스가 양호 모드에 있는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux |
프로세스가 소프트웨어 인터럽트를 제공하는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux |
가상화된 환경에서 실행할 때 다른 운영 체제에서 실행하는 데 소요되는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux, Windows Server |
프로세스가 도용 시간에 있는 시간입니다. 도용 시간은 가상화 환경에서 다른 운영 체제에서 사용된 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 없음 |
|
Linux, Windows Server, macOS |
프로세스가 시스템 모드에 있는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 유형: Float 단위: 수 |
|
Linux, Windows Server, macOS |
프로세스가 사용자 모드에 있는 시간입니다. 이 지표는 수백 초 단위로 측정됩니다. 단위: 수 |
|
Linux, Windows Server, macOS |
어떠한 용량에서든 프로세스가 활성화되어 있는 시간(백분율)입니다. 단위: 백분율 |
|
Linux, macOS |
프로세스가 데이터에 사용하는 메모리의 양입니다. 단위: 바이트 |
|
Linux, macOS |
프로세스가 잠근 메모리의 양입니다. 단위: 바이트 |
|
Linux, Windows Server, macOS |
프로세스에서 사용 중인 실제 메모리의 크기(실제 상주 메모리)입니다. 단위: 바이트 |
|
Linux, macOS |
프로세스에서 사용 중인 스택 메모리의 양입니다. 단위: 바이트 |
|
Linux, macOS |
프로세스에서 사용 중인 스왑 메모리의 양입니다. 단위: 바이트 |
|
Linux, Windows Server, macOS |
프로세스에서 사용 중인 가상 메모리의 양입니다. 단위: 바이트 |
|
Linux |
이 프로세스가 열어둔 파일 설명자의 수입니다. 단위: 없음 |
|
Linux, Windows, macOS |
이 프로세스의 스레드 수입니다. 단위: 없음 |
|
Linux, Windows Server, macOS |
프로세스 식별자(ID)입니다. 단위: 없음 |
|
Linux, Windows Server, macOS |
프로세스와 관련된 프로세스 ID의 수입니다. 이 지표의 전체 이름은 Linux 서버 및 macOS 컴퓨터에서 단위: 없음 |
|
Linux, Windows Server |
프로세스가 디스크에서 읽은 바이트 수입니다. 단위: 바이트 |
|
Linux, Windows Server |
프로세스가 디스크에 기록한 바이트 수입니다. 단위: 바이트 |
|
Linux, Windows Server |
프로세스에서 실행한 디스크 읽기 작업의 수입니다. 단위: 없음 |
|
Linux |
이 프로세스에 설정할 수 있는 실시간 우선 순위에 대한 엄격한 제한입니다. 단위: 없음 |
|
Linux |
이 프로세스에 설정할 수 있는 실시간 우선 순위에 대한 가벼운 제한입니다. 단위: 없음 |
|
Linux |
이 프로세스에서 대기열에 넣을 수 있는 최대 신호 수에 대한 엄격한 제한입니다. 단위: 없음 |
|
Linux |
이 프로세스에서 대기열에 넣을 수 있는 최대 신호 수에 대한 가벼운 제한입니다. 단위: 없음 |
|
Linux |
이 프로세스에서 설정할 수 있는 최대 nice 우선 순위에 대한 엄격한 제한입니다. 단위: 없음 |
|
Linux |
이 프로세스에서 설정할 수 있는 최대 nice 우선 순위에 대한 가벼운 제한입니다. 단위: 없음 |
|
Linux |
이 프로세스가 열 수 있는 최대 파일 설명자 수에 대한 엄격한 제한입니다. 단위: 없음 |
|
Linux |
이 프로세스가 열 수 있는 최대 파일 설명자 수에 대한 가벼운 제한입니다. 단위: 없음 |
|
Linux, Windows Server |
프로세스에서 실행한 디스크 쓰기 작업의 수입니다. 단위: 없음 |
|
Linux |
프로세스의 컨텍스트가 강제로 전환된 횟수입니다. 단위: 없음 |
|
Linux |
프로세스의 컨텍스트가 자의적으로 전환된 횟수입니다. 단위: 없음 |
|
Linux |
프로세스에 대한 실시간 우선 순위의 현재 사용량입니다. 단위: 없음 |
|
Linux |
프로세스에 대한 nice priority의 현재 사용입니다. 단위: 없음 |
|
Linux |
프로세스에서 처리하도록 대기 중인 신호 수입니다. 단위: 없음 |
|
Linux |
프로세스에 대한 하드 CPU 시간 리소스 제한입니다. 단위: 없음 |
|
Linux |
프로세스에 대한 소프트 CPU 시간 리소스 제한입니다. 단위: 없음 |
|
Linux |
프로세스에 대한 하드 파일 잠금 리소스 제한입니다. 단위: 없음 |
|
Linux |
프로세스에 대한 소프트 파일 잠금 리소스 제한입니다. 단위: 없음 |
|
Linux |
데이터에 사용되는 메모리와 관련해 프로세스에 대한 하드 리소스 제한입니다. 단위: 바이트 |
|
Linux |
데이터에 사용되는 메모리와 관련해 프로세스에 대한 소프트 리소스 제한입니다. 단위: 바이트 |
|
Linux |
잠긴 메모리와 관련해 프로세스에 대한 하드 리소스 제한입니다. 단위: 바이트 |
|
Linux |
잠긴 메모리와 관련해 프로세스에 대한 소프트 리소스 제한입니다. 단위: 바이트 |
|
Linux |
물리적 메모리와 관련해 프로세스에 대한 하드 리소스 제한입니다. 단위: 바이트 |
|
Linux |
물리적 메모리와 관련해 프로세스에 대한 소프트 리소스 제한입니다. 단위: 바이트 |
|
Linux |
프로세스 스택에 대한 하드 리소스 제한입니다. 단위: 바이트 |
|
Linux |
프로세스 스택에 대한 소프트 리소스 제한입니다. 단위: 바이트 |
|
Linux |
가상 메모리와 관련해 프로세스에 대한 하드 리소스 제한입니다. 단위: 바이트 |
|
Linux |
가상 메모리와 관련해 프로세스에 대한 소프트 리소스 제한입니다. 단위: 바이트 |
CloudWatch 에이전트가 가져온 프로세스 지표 보기
프로세스 지표를 CloudWatch로 가져온 후 이러한 지표를 시계열 그래프로 보고, 해당 지표를 감시하여 지표가 지정된 임곗값을 위반하는 경우 이를 알릴 수 있는 경보를 생성할 수 있습니다. 다음 절차에서는 프로세스 지표를 시계열 그래프로 보는 방법을 보여 줍니다. 경보 설정에 대한 자세한 내용은 Amazon CloudWatch 경보 사용 단원을 참조하세요.
CloudWatch 콘솔에서 프로세스 지표를 보려면
-
https://console.aws.amazon.com/cloudwatch/
에서 CloudWatch 콘솔을 엽니다. -
탐색 창에서 지표를 선택합니다.
-
에이전트가 수집한 지표의 네임스페이스를 선택합니다. 기본적으로 이 네임스페이스는 CWAgent이지만, CloudWatch 에이전트 구성 파일에서 다른 네임스페이스를 지정했을 수 있습니다.
-
지표 측정기준(예: 인스턴스별 지표)을 선택합니다.
-
모든 지표 탭에 네임스페이스의 해당 측정기준에 대한 모든 지표가 표시됩니다. 다음을 수행할 수 있습니다.
-
측정치를 그래프로 표시하려면 측정치 옆에 있는 확인란을 선택합니다. 모든 지표를 선택하려면 테이블의 머리글 행에 있는 확인란을 선택합니다.
-
테이블을 정렬하려면 열 머리글을 사용합니다.
-
리소스로 필터링하려면 리소스 ID를 선택한 후 검색에 추가를 선택합니다.
-
지표로 필터링하려면 지표 이름을 선택한 후 검색에 추가를 선택합니다.
-
(선택 사항) 이 그래프를 CloudWatch 대시보드에 추가하려면 [작업(Actions)], [대시보드에 추가(Add to dashboard)]를 선택합니다.