수동으로 CloudWatch 에이전트 구성 파일 생성 또는 편집 - Amazon CloudWatch

수동으로 CloudWatch 에이전트 구성 파일 생성 또는 편집

CloudWatch 에이전트 구성 파일은 agent, metrics, logs의 세 섹션이 있는 JSON 파일입니다.

  • agent 섹션에는 에이전트의 전체 구성에 대한 필드가 포함되어 있습니다. 마법사를 사용하는 경우 agent 섹션이 생성되지 않습니다.

  • metrics 섹션은 수집하여 CloudWatch에 게시할 사용자 지정 지표를 지정합니다. 에이전트를 사용하여 로그만 수집하는 경우 파일에서 metrics 섹션을 생략할 수 있습니다.

  • logs 섹션은 CloudWatch Logs에 게시되는 로그 파일을 지정합니다. 서버에서 Windows Server가 실행되는 경우 Windows 이벤트 로그에 따른 이벤트가 포함될 수 있습니다.

다음 섹션에서는 이 JSON 파일의 구조 및 필드에 대해 설명합니다. 이 구성 파일에 대한 스키마 정의도 볼 수 있습니다. 스키마 정의는 Linux 서버의 installation-directory/doc/amazon-cloudwatch-agent-schema.json, Windows Server를 실행하는 서버의 installation-directory/amazon-cloudwatch-agent-schema.json에 있습니다.

에이전트 구성 파일을 수동으로 생성하거나 편집할 경우 이름을 지정할 수 있습니다. 문제를 간단하게 해결할 수 있도록 이름을 Linux 서버에서는 /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json로 지정하고, Windows 서버를 실행하는 서버에서는 $Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json로 지정하는 것이 좋습니다. 파일을 생성한 후에는 해당 파일을 에이전트를 설치하려고 하는 다른 서버에 복사할 수 있습니다.

CloudWatch 에이전트 구성 파일: 에이전트 섹션

agent 섹션은 다음 필드를 포함할 수 있습니다. 마법사는 agent 섹션을 생성하지 않습니다. 대신, 이를 생략하고 이 섹션의 모든 필드에 대해 기본값을 사용합니다.

  • metrics_collection_interval – 선택 사항입니다. 이 구성 파일에 지정되어 있는 모든 지표가 수집될 빈도를 지정합니다. 특정 유형의 지표에 대해 이 값을 재정의할 수 있습니다.

    이 값은 초 단위로 지정됩니다. 예를 들어, 10을 지정하면 10초마다 지표가 수집되도록 설정되며, 300으로 설정하면 5분마다 지표가 수집되도록 지정됩니다.

    이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 고분해능 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

    기본값은 60입니다.

  • region – Amazon EC2 인스턴스를 모니터링할 때 CloudWatch 엔드포인트에 사용할 리전을 지정합니다. 수집되는 지표는 이 리전(예: us-west-1)에 전송됩니다. 이 필드를 생략하면 에이전트가 지표를 Amazon EC2 인스턴스가 있는 리전에 전송합니다.

    온프레미스 서버를 모니터링하는 경우 이 필드가 사용되지 않으며, 에이전트는 AWS 구성 파일의 AmazonCloudWatchAgent 프로필에서 리전을 읽습니다.

  • credentials – 지표 및 로그를 다른 AWS 계정에 전송할 때 사용할 IAM 역할을 지정합니다. 지정된 경우 이 필드는 1개의 파라미터 role_arn를 포함합니다.

    • role_arn – 지표 및 로그를 다른 AWS 계정에 전송할 때 인증에 사용할 IAM 역할의 Amazon 리소스 이름(ARN)을 지정합니다. 자세한 내용은 다른 계정에 지표 및 로그 전송 단원을 참조하세요.

  • debug – 선택 사항입니다. 디버그 로그 메시지와 함께 CloudWatch 에이전트를 실행하도록 지정합니다. 기본값은 false입니다.

  • aws_sdk_log_level – 선택 사항입니다. 버전 1.247350.0 이상의 CloudWatch 에이전트에서만 지원됩니다.

    에이전트가 AWSSDK 엔드포인트에 대한 로깅을 수행하도록 이 필드를 지정할 수 있습니다. 이 필드의 값은 다음 옵션 중 하나 이상을 포함할 수 있습니다. |문자를 사용하여 여러 옵션을 구분합니다.

    • LogDebug

    • LogDebugWithSigning

    • LogDebugWithHTTPBody

    • LogDebugRequestRetries

    • LogDebugWithEventStreamBody

    이러한 옵션에 대한 자세한 정보는 LogLevelType 단원을 참조하십시오.

  • logfile – CloudWatch 에이전트가 로그 메시지를 작성할 위치를 지정합니다. 비어 있는 문자열을 지정하면 로그가 stderr에 저장됩니다. 이 옵션을 지정하지 않으면 다음과 같이 기본 위치가 사용됩니다.

    • Linux: /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

    • Windows Server: c:\\ProgramData\\Amazon\\CloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log

    CloudWatch 에이전트는 생성한 로그 파일을 자동으로 교체합니다. 로그 파일의 크기가 100MB에 도달하면 교체됩니다. 에이전트는 교체된 로그 파일을 최대 7일 동안 보존하며 교체된 백업 로그 파일을 최대 5개까지 보존합니다. 백업 로그 파일의 파일 이름에는 타임스탬프가 추가됩니다. 이 타임스탬프는 파일이 교체된 날짜와 시간을 표시합니다(예: amazon-cloudwatch-agent-2018-06-08T21-01-50.247.log.gz).

  • omit_hostname – 선택 사항입니다. 기본적으로 호스트 이름은 metrics 섹션의 append_dimensions 필드를 사용하는 경우 외에는 에이전트가 수집하는 지표의 측정기준으로 게시됩니다. append_dimensions를 사용하지 않는 경우에도 호스트 이름이 차원으로 게시되지 않도록 하려면 omit_hostname true로 설정합니다. 기본값은 false입니다.

  • run_as_user – 선택 사항입니다. CloudWatch 에이전트를 실행하는 데 사용할 사용자를 지정합니다. 이 파라미터를 지정하지 않으면 루트 사용자가 사용됩니다. 이 옵션은 Linux 서버에서만 유효합니다.

    이 옵션을 지정하면 CloudWatch 에이전트를 시작하기 전에 사용자가 존재해야 합니다. 자세한 내용은 다른 사용자로 CloudWatch 에이전트 실행 단원을 참조하세요.

  • user_agent – 선택 사항입니다. CloudWatch 백엔드에 대한 API 호출을 수행할 때 CloudWatch 에이전트가 사용하는 user-agent 문자열을 지정합니다. 기본값은 에이전트 버전, 에이전트를 컴파일하는 데 사용된 Go 프로그래밍 언어의 버전, 런타임 운영 체제 및 아키텍처, 구축 시간, 사용 설정된 플러그 인으로 구성된 문자열입니다.

다음은 agent 섹션의 예입니다.

"agent": { "metrics_collection_interval": 60, "region": "us-west-1", "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "debug": false, "run_as_user": "cwagent" }

CloudWatch 에이전트 구성 파일: 지표 섹션

Linux 또는 Windows Server가 실행되는 서버의 경우 metrics 섹션에 다음 필드가 있습니다.

  • namespace – 선택 사항입니다. 에이전트에 의해 수집되는 지표에 대해 사용할 네임스페이스입니다. 기본값은 CWAgent입니다. 최대 길이는 255자입니다. 다음은 그 한 예입니다.

    { "metrics": { "namespace": "Development/Product1Metrics", ...... }, }
  • append_dimensions – 선택 사항입니다. 에이전트가 수집한 모든 지표에 Amazon EC2 지표 측정기준을 추가합니다. 이로 인해 에이전트가 호스트 이름을 측정기준으로 게시하지는 않습니다.

    다음 목록은 append_dimensions에 대해 지원되는 키-값 페어만 보여 줍니다. 다른 키-값 페어는 무시됩니다.

    • "ImageID":"${aws:ImageId}"는 인스턴스의 AMI ID를 ImageID 측정기준의 값으로 설정합니다.

    • "InstanceId":"${aws:InstanceId}"는 인스턴스의 인스턴스 ID를 InstanceID 측정기준의 값으로 설정합니다.

    • "InstanceType":"${aws:InstanceType}"는 인스턴스의 인스턴스 유형을 InstanceType 측정기준의 값으로 설정합니다.

    • "AutoScalingGroupName":"${aws:AutoScalingGroupName}"는 인스턴스의 Auto Scaling 그룹 이름을 AutoScalingGroupName 측정기준의 값으로 설정합니다.

    임의 키-값 페어를 사용하여 지표에 측정기준을 추가하려면 특정 지표 유형에 대해 필드의 append_dimensions 파라미터를 사용해야 합니다.

    Amazon EC2 메타데이터에 따라 달라지는 값을 지정하고 프록시를 사용하는 경우 서버가 Amazon EC2의 엔드포인트에 액세스할 수 있는지 확인해야 합니다. 이러한 엔드포인트에 대한 자세한 내용은 Amazon Web Services 일반 참조Amazon Elastic Compute Cloud(Amazon EC2)를 참조하세요.

  • aggregation_dimensions – 선택 사항입니다. 수집된 지표가 집계될 측정기준을 지정합니다. 예를 들어 AutoScalingGroupName 측정기준의 지표를 롤업하는 경우 각 Auto Scaling 그룹의 모든 인스턴스에서 지표가 집계되어 전체적으로 표시될 수 있습니다.

    하나 또는 여러 측정기준에 따라 지표를 롤업할 수 있습니다. 예를 들어, [["InstanceId"], ["InstanceType"], ["InstanceId","InstanceType"]]을 지정하면 인스턴스 ID 단일, 인스턴스 유형 단일 및 두 측정기준의 조합에 대해 지표를 집계할 수 있습니다.

    []를 지정하면 모든 측정기준을 무시하고 모든 지표를 하나의 모음에 롤업할 수도 있습니다.

  • endpoint_override – 에이전트가 지표를 전송하는 엔드포인트로 사용할 FIPS 엔드포인트 또는 프라이빗 링크를 지정합니다. 이 필드를 지정하고 프라이빗 링크를 설정하면 지표를 Amazon VPC 엔드포인트에 전송할 수 있습니다. 자세한 내용은 Amazon VPC란? 단원을 참조하세요.

    endpoint_override의 값은 URL인 문자열이어야 합니다.

    예를 들어, 구성 파일의 지표 섹션에서 다음 부분은 지표를 전송할 때 에이전트가 VPC 엔드포인트를 사용하도록 설정합니다.

    { "metrics": { "endpoint_override": "vpce-XXXXXXXXXXXXXXXXXXXXXXXXX.monitoring.us-east-1.vpce.amazonaws.com", ...... }, }
  • metrics_collected - 필수입니다. StatsD 또는 collectd를 통해 수집된 사용자 지정 지표를 포함하여 수집할 지표를 지정합니다. 이 단원에는 여러 하위 섹션이 포함되어 있습니다.

    metrics_collected 섹션의 내용은 이 구성 파일이 Linux를 실행하는 서버용인지 아니면 Windows Server를 실행하는 서버용인지에 따라 달라집니다.

  • force_flush_interval – 지표가 서버로 전송되기 전에 메모리 버퍼에 남아 있는 최대 시간(초)을 지정합니다. 이 설정과 상관없이 버퍼 내 지표의 크기가 40KB에 도달하거나 지표 개수가 20개가 되면 지표가 즉시 서버로 전송됩니다.

    기본값은 60입니다.

  • credentials – 지표를 다른 계정에 전송할 때 사용할 IAM 역할을 지정합니다. 지정된 경우 이 필드는 1개의 파라미터 role_arn를 포함합니다.

    • role_arn – 지표를 다른 계정에 전송할 때 인증에 사용할 IAM 역할의 ARN을 지정합니다. 자세한 내용은 다른 계정에 지표 및 로그 전송 단원을 참조하세요. 여기에 지정한 경우 이 값은 구성 파일의 agent 섹션에 지정되어 있는 role_arn을 재정의합니다(있는 경우).

Linux 섹션

Linux가 실행되는 서버에서는 구성 파일의 metrics_collected 섹션에 다음 필드도 포함될 수 있습니다.

이러한 필드 중 다수에는 해당 리소스에 대해 수집하고 싶은 지표나 나열된 measurement 섹션이 포함되어 있습니다. 이러한 measurement 섹션은 swap_used 같이 완전한 척도 이름을 지정하거나, 리소스 유형에 추가되는 척도 이름의 일부만 지정할 수 있습니다. 예를 들어 diskio 섹션의 measurement 섹션에 reads를 지정하면 diskio_reads 지표가 수집될 수 있습니다.

  • collectd – 선택 사항입니다. collectd 프로토콜을 사용하여 사용자 지정 지표를 검색하려 한다는 것을 지정합니다. collectd 소프트웨어를 사용하여 지표를 CloudWatch 에이전트에 전송합니다. collectd에 사용할 수 있는 구성 옵션에 대한 자세한 내용은 collectd를 사용하여 사용자 지정 지표 검색 단원을 참조하세요.

  • ethtool – 선택 사항입니다. ethtool 플러그 인을 사용하여 네트워크 지표를 검색하도록 지정합니다. 이 플러그 인은 표준 ethtool 유틸리티가 수집한 지표와 Amazon EC2 인스턴스의 네트워크 성능 지표를 모두 가져올 수 있습니다. ethtool에 사용할 수 있는 구성 옵션에 대한 자세한 내용은 네트워크 성능 지표 수집 단원을 참조하세요.

  • cpu – 선택 사항입니다. CPU 지표가 수집되도록 지정합니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 수집할 CPU 지표에 대해 resourcestotalcpu 필드 중 하나 이상을 포함해야 합니다. 이 섹션은 다음 필드를 포함할 수 있습니다.

    • resources – 선택 사항입니다. CPU당 지표가 수집되도록 하려면 이 필드의 값을 *로 지정해야 합니다. 허용되는 유일한 값은 *입니다.

    • totalcpu – 선택 사항입니다. 모든 CPU 코어에서 집계되는 CPU 지표를 보고할지 여부를 지정합니다. 기본값은 true입니다.

    • measurement – 수집할 cpu 지표의 배열을 지정합니다. 가능한 값은 time_active, time_guest, time_guest_nice, time_idle, time_iowait, time_irq, time_nice, time_softirq, time_steal, time_system, time_user, usage_active, usage_guest, usage_guest_nice, usage_idle, usage_iowait, usage_irq, usage_nice, usage_softirq, usage_steal, usage_system, usage_user입니다. cpu를 포함하는 경우 이 필드는 필수입니다.

      기본적으로 cpu_usage_* 지표의 단위는 Percent이며, cpu_time_* 지표에는 단위가 없습니다.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(NoneNone)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. CPU 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다. 예를 들어, 10을 지정하면 10초마다 지표가 수집되도록 설정되며, 300으로 설정하면 5분마다 지표가 수집되도록 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 고분해능 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

    • append_dimensions – 선택 사항입니다. CPU 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트가 수집하는 모든 유형의 지표에 대해 사용되는 글로벌 append_dimensions 필드에 지정되어 있는 측정기준 외에 이 측정기준도 사용됩니다.

  • disk – 선택 사항입니다. 디스크 지표가 수집됨을 나타냅니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 이 섹션에는 다음의 2개 필드만큼만 포함할 수 있습니다.

    • resources – 선택 사항입니다. 디스크 탑재 지점에 대한 배열을 지정합니다. 이 필드는 CloudWatch가 나열된 탑재 지점에서만 지표를 수집하도록 제한합니다. 값으로 *를 지정하면 모든 탑재 지점에서 지표를 수집할 수 있습니다. 기본값은 모든 탑재 지점에서 지표를 수집하는 것입니다.

    • measurement – 수집할 디스크 지표의 배열을 지정합니다. 가능한 값은 free, total, used, used_percent, inodes_free, inodes_used, inodes_total입니다. disk를 포함하는 경우 이 필드는 필수입니다.

      참고

      disk 지표에는 Partition의 측정기준이 있는데, 이는 생성된 사용자 지정 지표의 수가 인스턴스와 연결된 파티션의 수에 따라 달라짐을 뜻합니다. 보유한 디스크 파티션의 수는 사용 중인 AMI 및 서버에 연결하는 Amazon EBS 볼륨의 수에 따라 달라집니다.

      disk 지표에 대한 기본 단위를 보려면 Linux 및 macOS 인스턴스의 CloudWatch 에이전트가 수집하는 지표 섹션을 참조하십시오.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(NoneNone)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • ignore_file_system_types – 디스크 지표를 수집할 때 제외할 파일 시스템 유형을 지정합니다. 유효한 값으로는 sysfs, devtmpfs 등이 있습니다.

    • drop_device – 이 값을 true로 설정하면 Device가 디스크 지표의 측정기준으로 포함되지 않습니다.

      Device가 측정기준으로 사용되지 않도록 하면 Nitro 시스템을 사용하는 인스턴스에서 인스턴스가 재부팅될 때 각 디스크 마운트마다 디바이스 이름이 변경되기 때문에 유용합니다. 이 경우 지표의 데이터가 일관되지 않으므로 이러한 지표를 기반으로 하는 경보가 INSUFFICIENT DATA 상태가 될 수 있습니다.

      기본값은 false입니다.

    • metrics_collection_interval – 선택 사항입니다. 디스크 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 자세한 내용은 고분해능 지표 단원을 참조하세요.

    • append_dimensions – 선택 사항입니다. 디스크 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트에 의해 수집되는 모든 유형의 지표에 대해 사용되는 append_dimensions 필드에 지정되어 있는 측정기준 외에 지정한 측정기준도 사용됩니다.

  • diskio – 선택 사항입니다. 디스크 I/O 지표가 수집되도록 지정합니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 이 섹션에는 다음의 2개 필드만큼만 포함할 수 있습니다.

    • resources – 선택 사항입니다. 디바이스 배열을 지정하면 CloudWatch가 해당 디바이스에서만 지표를 수집합니다. 그렇지 않으면, 모든 디바이스의 지표가 수집됩니다. 값으로 *를 지정하여 모든 디바이스에서 지표를 수집할 수도 있습니다.

    • measurement – 수집할 diskio 지표의 배열을 지정합니다. 가능한 값은 reads, writes, read_bytes, write_bytes, read_time, write_time, io_time, iops_in_progress입니다. diskio를 포함하는 경우 이 필드는 필수입니다.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(NoneNone)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. diskio 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 고분해능 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

    • append_dimensions – 선택 사항입니다. diskio 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트에 의해 수집되는 모든 유형의 지표에 대해 사용되는 append_dimensions 필드에 지정되어 있는 측정기준 외에 지정한 측정기준도 사용됩니다.

  • swap – 선택 사항입니다. 스왑 메모리 지표가 수집됨을 나타냅니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 이 섹션에는 다음의 3개 필드만큼만 포함할 수 있습니다.

    • measurement – 수집할 swap 지표의 배열을 지정합니다. 가능한 값은 free, usedused_percent입니다. swap를 포함하는 경우 이 필드는 필수입니다.

      swap 지표에 대한 기본 단위를 보려면 Linux 및 macOS 인스턴스의 CloudWatch 에이전트가 수집하는 지표 섹션을 참조하십시오.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(NoneNone)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. 스왑 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 고분해능 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

    • append_dimensions – 선택 사항입니다. 스왑 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트에 의해 수집되는 모든 유형의 지표에 대해 사용되는 글로벌 append_dimensions 필드에 지정되어 있는 측정기준 외에 지정한 측정기준도 사용됩니다. 고해상도 지표로 수집됩니다.

  • mem – 선택 사항입니다. 메모리 지표가 수집됨을 나타냅니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 이 섹션에는 다음의 3개 필드만큼만 포함할 수 있습니다.

    • measurement – 수집할 메모리 지표의 배열을 지정합니다. 가능한 값은 active, available, available_percent, buffered, cached, free, inactive, total, used, used_percent입니다. mem를 포함하는 경우 이 필드는 필수입니다.

      mem 지표에 대한 기본 단위를 보려면 Linux 및 macOS 인스턴스의 CloudWatch 에이전트가 수집하는 지표 섹션을 참조하십시오.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(None)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. mem 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 고분해능 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

    • append_dimensions – 선택 사항입니다. mem 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트가 수집하는 모든 유형의 지표에 대해 사용되는 append_dimensions 필드에 지정되어 있는 측정기준 외에 이 측정기준도 사용됩니다.

  • net – 선택 사항입니다. 네트워킹 지표가 수집됨을 나타냅니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 이 섹션에는 다음과 같이 최대 4개의 필드가 포함될 수 있습니다.

    • resources – 선택 사항입니다. 네트워크 인터페이스 배열을 지정하면 CloudWatch가 해당 인터페이스에서만 지표를 수집합니다. 그렇지 않으면, 모든 디바이스의 지표가 수집됩니다. 또한 값으로 *를 지정하면 모든 인터페이스에서 지표를 수집할 수 있습니다.

    • measurement – 수집할 네트워킹 지표의 배열을 지정합니다. 가능한 값은 bytes_sent, bytes_recv, drop_in, drop_out, err_in, err_out, packets_sent, packets_recv입니다. net를 포함하는 경우 이 필드는 필수입니다.

      net 지표에 대한 기본 단위를 보려면 Linux 및 macOS 인스턴스의 CloudWatch 에이전트가 수집하는 지표 섹션을 참조하십시오.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(None)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. net 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다. 예를 들어, 10을 지정하면 10초마다 지표가 수집되도록 설정되며, 300으로 설정하면 5분마다 지표가 수집되도록 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 고분해능 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

    • append_dimensions – 선택 사항입니다. net 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트에 의해 수집되는 모든 유형의 지표에 대해 사용되는 append_dimensions 필드에 지정되어 있는 측정기준 외에 이 측정기준도 사용됩니다.

  • netstat – 선택 사항입니다. TCP 연결 상태 및 UDP 연결 지표가 수집됨을 나타냅니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 이 섹션에는 다음의 3개 필드만큼만 포함할 수 있습니다.

    • measurement – 수집할 netstat 지표의 배열을 지정합니다. 가능한 값은 tcp_close, tcp_close_wait, tcp_closing, tcp_established, tcp_fin_wait1, tcp_fin_wait2, tcp_last_ack, tcp_listen, tcp_none, tcp_syn_sent, tcp_syn_recv, tcp_time_waitudp_socket입니다. netstat를 포함하는 경우 이 필드는 필수입니다.

      netstat 지표에 대한 기본 단위를 보려면 Linux 및 macOS 인스턴스의 CloudWatch 에이전트가 수집하는 지표 섹션을 참조하십시오.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(None)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. netstat 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 고분해능 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

    • append_dimensions – 선택 사항입니다. netstat 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트에 의해 수집되는 모든 유형의 지표에 대해 사용되는 append_dimensions 필드에 지정되어 있는 측정기준 외에 이 측정기준도 사용됩니다.

  • processes – 선택 사항입니다. 프로세스 지표가 수집됨을 나타냅니다. 이 단원은 리눅스 인스턴스에만 유효합니다. 이 섹션에는 다음의 3개 필드만큼만 포함할 수 있습니다.

    • measurement – 수집할 프로세스 지표의 배열을 지정합니다. 가능한 값은 blocked, dead, idle, paging, running, sleeping, stopped, total, total_threads, wait, zombies입니다. processes를 포함하는 경우 이 필드는 필수입니다.

      모든 processes 지표에 대해 기본 단위는 Count입니다.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(None)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. 프로세스 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

      이 값은 초 단위로 지정됩니다. 예를 들어, 10을 지정하면 10초마다 지표가 수집되도록 설정되며, 300으로 설정하면 5분마다 지표가 수집되도록 지정됩니다.

      이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 자세한 내용은 고분해능 지표 단원을 참조하세요.

    • append_dimensions – 선택 사항입니다. 프로세스 지표에만 사용할 수 있는 추가 측정기준입니다. 이 필드를 지정하면 에이전트에 의해 수집되는 모든 유형의 지표에 대해 사용되는 append_dimensions 필드에 지정되어 있는 측정기준 외에 이 측정기준도 사용됩니다.

  • nvidia_gpu – 선택 사항입니다. NVIDIA GPU 지표가 수집되도록 지정합니다. 이 섹션은 NVIDIA GPU 가속기로 구성되고 NVIDIA 시스템 관리 인터페이스(nvidia-smi)가 설치된 호스트의 Linux 인스턴스에 대해서만 유효합니다.

    수집된 NVIDIA GPU 지표에는 nvidia_smi_ 문자열이 앞에 추가되어 다른 액셀러레이터 유형에 대해 수집된 지표와 구분할 수 있습니다. 이 섹션에는 다음의 2개 필드만큼만 포함할 수 있습니다.

    • measurement – 수집할 NVIDIA GPU 지표의 배열을 지정합니다. 여기에서 사용할 수 있는 값 목록은 NVIDIA GPU 지표 수집의 테이블에서 지표(Metric) 열을 참조하세요.

      각 개별 지표의 항목 내에서 다음 중 하나 또는 둘 다를 선택적으로 지정할 수 있습니다.

      • rename – 이 지표에 대해 다른 이름을 지정합니다.

      • unit – 이 지표에 사용할 단위를 지정하여 지표에 대한 기본 단위(None)를 재정의합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

    • metrics_collection_interval – 선택 사항입니다. NVIDIA GPU 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

  • procstat – 선택 사항입니다. 개별 프로세스에서 지표를 검색하려 한다고 지정합니다. procstat에 사용할 수 있는 구성 옵션에 대한 자세한 내용은 procstat 플러그 인을 사용하여 프로세스 지표 수집 단원을 참조하세요.

  • statsd – 선택 사항입니다. StatsD 프로토콜을 사용하여 사용자 지정 지표를 검색하려 한다는 것을 지정합니다. CloudWatch 에이전트는 프로토콜의 데몬 역할을 합니다. 표준 StatsD 클라이언트를 사용하여 지표를 CloudWatch 에이전트에 전송합니다. StatsD에 사용할 수 있는 구성 옵션에 대한 자세한 내용은 StatsD를 사용하여 사용자 지정 지표 검색 단원을 참조하세요.

  • ethtool – 선택 사항입니다. ethtool 통계를 CloudWatch로 가져오도록 지정합니다. 자세한 내용은 네트워크 성능 지표 수집 단원을 참조하세요.

다음은 Linux 서버용 metrics 섹션의 예입니다. 이 예에서는 3개의 CPU 지표, 3개의 netstat 지표, 3개의 프로세스 지표 및 1개의 디스크 지표가 수집되며, 에이전트는 collectd 클라이언트로부터 추가 지표를 받도록 설정됩니다.

"metrics": { "metrics_collected": { "collectd": {}, "cpu": { "resources": [ "*" ], "measurement": [ {"name": "cpu_usage_idle", "rename": "CPU_USAGE_IDLE", "unit": "Percent"}, {"name": "cpu_usage_nice", "unit": "Percent"}, "cpu_usage_guest" ], "totalcpu": false, "metrics_collection_interval": 10, "append_dimensions": { "test": "test1", "date": "2017-10-01" } }, "netstat": { "measurement": [ "tcp_established", "tcp_syn_sent", "tcp_close" ], "metrics_collection_interval": 60 }, "disk": { "measurement": [ "used_percent" ], "resources": [ "*" ], "drop_device": true }, "processes": { "measurement": [ "running", "sleeping", "dead" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"],[]] }

Windows Server

Windows Server의 metrics_collected 섹션에서는 Memory, ProcessorLogicalDisk와 같은 각 Windows 성능 객체에 대한 하위 섹션을 생성할 수 있습니다. 사용 가능한 객체 및 카운터에 대한 자세한 내용은 Microsoft Windows 설명서를 참조하십시오.

각 객체의 하위 섹션 내에서 수집할 카운터의 measurement 어레이를 지정합니다. measurement 어레이는 구성 파일에서 지정하는 객체마다 있어야 합니다. 또한 resources 필드를 지정하여 지표를 수집할 인스턴스의 이름을 지정할 수 있습니다. 또한 resources에 대해 *를 지정하면 모든 인스턴스에 대해 별도의 지표를 수집할 수 있습니다. resources를 생략하면 모든 인스턴스의 데이터가 하나의 집합으로 집계됩니다. 인스턴스가 없는 객체의 경우 resources를 생략합니다.

각 객체 섹션 내에서 다음 선택 필드를 지정할 수도 있습니다.

  • metrics_collection_interval – 선택 사항입니다. 이 객체에 대해 지표를 수집하여 구성 파일의 agent 섹션에 지정되어 있는 글로벌 metrics_collection_interval 값을 재정의할 빈도를 지정합니다.

    이 값은 초 단위로 지정됩니다. 예를 들어, 10을 지정하면 10초마다 지표가 수집되도록 설정되며, 300으로 설정하면 5분마다 지표가 수집되도록 지정됩니다.

    이 값을 60초 미만으로 설정하면 각 지표가 고분해능 지표로 수집됩니다. 자세한 내용은 고분해능 지표 단원을 참조하세요.

  • append_dimensions – 선택 사항입니다. 이 객체의 지표에만 사용할 추가 측정기준을 지정합니다. 이 필드를 지정하면 에이전트에 의해 수집되는 모든 유형의 지표에 대해 사용되는 글로벌 append_dimensions 필드에 지정되어 있는 측정기준 외에 이 측정기준도 사용됩니다.

각 카운터 섹션 내에서 다음 선택 필드를 지정할 수도 있습니다.

  • rename – CloudWatch에서 이 지표에 사용할 다른 이름을 지정합니다.

  • unit – 이 지표에 사용할 단위를 지정합니다. 지정하는 단위는 MetricDatumUnit 설명에 나열된 대로 유효한 CloudWatch 지표 단위여야 합니다.

metrics_collected에는 다음과 같이 두 가지 다른 선택적 섹션을 포함할 수 있습니다.

다음은 Windows Server에서 사용하기 위한 metrics 섹션의 예입니다. 이 예에서는 다양한 Windows 지표가 수집되며, 컴퓨터가 StatsD 클라이언트로부터 추가 지표를 받도록 설정되기도 합니다.

"metrics": { "metrics_collected": { "statsd": {}, "Processor": { "measurement": [ {"name": "% Idle Time", "rename": "CPU_IDLE", "unit": "Percent"}, "% Interrupt Time", "% User Time", "% Processor Time" ], "resources": [ "*" ], "append_dimensions": { "d1": "win_foo", "d2": "win_bar" } }, "LogicalDisk": { "measurement": [ {"name": "% Idle Time", "unit": "Percent"}, {"name": "% Disk Read Time", "rename": "DISK_READ"}, "% Disk Write Time" ], "resources": [ "*" ] }, "Memory": { "metrics_collection_interval": 5, "measurement": [ "Available Bytes", "Cache Faults/sec", "Page Faults/sec", "Pages/sec" ], "append_dimensions": { "d3": "win_bo" } }, "Network Interface": { "metrics_collection_interval": 5, "measurement": [ "Bytes Received/sec", "Bytes Sent/sec", "Packets Received/sec", "Packets Sent/sec" ], "resources": [ "*" ], "append_dimensions": { "d3": "win_bo" } }, "System": { "measurement": [ "Context Switches/sec", "System Calls/sec", "Processor Queue Length" ], "append_dimensions": { "d1": "win_foo", "d2": "win_bar" } } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]] } }

CloudWatch 에이전트 구성 파일: 로그 섹션

logs 섹션에 포함되는 필드는 다음과 같습니다.

  • logs_collectedlogs 섹션이 포함되어 있는 경우 필수입니다. 서버로부터 수집될 로그 파일 및 Windows 서버 로그를 지정합니다. 두 필드인 fileswindows_events를 포함할 수 있습니다.

    • files – CloudWatch 에이전트가 수집할 일반 로그 파일을 지정합니다. 여기에는 collect_list라는 필드 하나가 포함되는데, 이 필드는 이러한 파일을 추가로 정의합니다.

      • collect_listfiles가 포함되어 있는 경우 필수입니다. 항목 어레이를 포함하며, 항목 각각이 수집될 하나의 로그 파일을 지정합니다. 이러한 항목 각각에는 다음 필드를 포함할 수 있습니다.

        • file_path – CloudWatch Logs에 업로드할 로그 파일의 경로를 지정합니다. 표준 Unix 글로브 일치 규칙이 허용되며 **‘슈퍼 별표’로 추가합니다. 예를 들어 /var/log/**.log를 지정하면 /var/log 디렉터리 트리의 모든 .log 파일이 수집됩니다. 보다 자세한 예는 Glob Library를 참조하십시오.

          표준 별표를 표준 와일드카드로 사용할 수도 있습니다. 예를 들어, /var/log/system.log*/var/log에서 system.log_1111, system.log_2222 등의 파일과 일치합니다.

          파일 수정 시간에 따라 최신 파일만 CloudWatch Logs에 푸시됩니다. 와일드카드는 여러 종류의 파일(예: access_log_80access_log_443)이 아니라 종류가 같은 일련의 파일(예: access_log.2018-06-01-01access_log.2018-06-01-02)을 지정할 때 사용하는 것이 좋습니다. 여러 종류의 파일을 지정하려면 로그 파일이 종류별로 서로 다른 로그 스트림에 들어가도록 에이전트 구성 파일에 다른 로그 스트림 항목 하나를 추가합니다.

        • auto_removal – 선택 사항입니다. true인 경우 CloudWatch 에이전트는 CloudWatch Logs에 이전 로그 파일을 업로드한 후 자동으로 해당 파일을 제거합니다. 에이전트는 각 날짜에 대해 별도의 파일을 만드는 로그와 같이 여러 파일을 생성하는 로그에서만 전체 파일을 제거합니다. 로그가 단일 파일에 연속적으로 기록되는 경우에는 제거되지 않습니다.

          로그 파일 순환 또는 제거 방법이 이미 있는 경우 이 필드를 생략하거나 false로 설정하는 것이 좋습니다.

          이 필드를 생략하면 기본값인 false가 사용됩니다.

        • log_group_name – 선택 사항입니다. CloudWatch Logs에서 로그 그룹 이름으로 사용할 이름을 지정합니다. 이름의 일부로 {instance_id}, {hostname}, {local_hostname}, {ip_address}를 이름 안의 변수로 사용할 수 있습니다. {hostname}은 EC2 메타데이터에서 호스트 이름을 가져오고, {local_hostname}은 네트워크 구성 파일에 있는 호스트 이름을 사용합니다.

          이러한 변수를 사용하여 많은 로그 그룹을 생성하는 경우 계정별 리전당 1,000,000개 로그 그룹이 한도라는 점에 유의하십시오.

          허용되는 문자에는 a–z, A–Z, 0–9, '_'(밑줄), '-'(하이픈), '/'(슬래시), '.'(마침표)가 포함됩니다.

          혼동하지 않도록 이 필드를 지정하는 것이 좋습니다. 이 필드를 생략할 경우 로그 그룹 이름으로 마지막 점까지의 파일 경로가 사용됩니다. 예를 들어 파일 경로가 /tmp/TestLogFile.log.2017-07-11-14이면 로그 그룹 이름은 /tmp/TestLogFile.log입니다.

        • log_stream_name – 선택 사항입니다. CloudWatch Logs에서 로그 스트림 이름으로 사용할 이름을 지정합니다. 이름의 일부로 {instance_id}, {hostname}, {local_hostname}, {ip_address}를 이름 안의 변수로 사용할 수 있습니다. {hostname}은 EC2 메타데이터에서 호스트 이름을 가져오고, {local_hostname}은 네트워크 구성 파일에 있는 호스트 이름을 사용합니다.

          이 필드를 생략하면 글로벌 logs 섹션의 log_stream_name 파라미터 값이 사용됩니다. 이 값도 생략하면 기본값 {instance_id}가 사용됩니다.

          로그 스트림이 아직 없는 경우 로그 스트림이 자동으로 생성됩니다.

        • retention_in_days – 선택 사항입니다. 지정된 로그 그룹에 로그 이벤트를 보관하는 일수를 지정합니다.

          에이전트가 지금 이 로그 그룹을 생성하고 있는 경우 -1을 지정하거나 이 필드를 생략하면 보존 기간이 절대 만료되지 않도록 설정됩니다.

          이 로그 그룹이 이미 존재하는 경우 이 필드를 지정하면 지정한 새 보존 기간이 사용됩니다. 이미 존재하는 로그 그룹에 대해 이 필드를 생략하면 로그 그룹의 보존 기간이 변경되지 않습니다.

          유효한 값은 -1, 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288 및 3653입니다.

          여러 로그 스트림을 동일한 로그 그룹에 쓰도록 에이전트를 구성한 경우 한 곳에서 retention_in_days 값을 지정하면 전체 로그 그룹에 대한 로그 보존이 설정됩니다. 여러 위치에 있는 동일한 로그 그룹에 대해 retention_in_days 값을 지정하는 경우 이러한 값이 모두 동일하면 보존이 설정됩니다. 그러나 여러 위치에서 동일한 로그 그룹에 대해 다른 retention_in_days 값을 지정하는 경우 로그 보존이 설정되지 않고 에이전트가 중지되어 오류가 반환됩니다.

          참고

          에이전트의 IAM 역할 또는 IAM 사용자에게는 logs:PutRetentionPolicy 값이 있어야 보존 정책을 설정할 수 있습니다. 자세한 정보는 CloudWatch 에이전트가 로그 보존 정책을 설정하도록 허용을 참조하십시오.

          주의

          이미 존재하는 로그 그룹에 대해 retention_in_days 값을 설정한 경우 지정한 일수 전에 게시된 해당 로그 그룹의 모든 로그가 삭제됩니다. 예를 들어, 3으로 설정하면 3일 전과 그 이전의 모든 로그가 삭제됩니다.

        • filters – 선택 사항입니다. 항목의 배열을 포함할 수 있으며, 각 항목은 정규 표현식과 필터 유형을 지정하여 필터와 일치하는 로그 항목을 게시할지 삭제할지 여부를 지정합니다. 이 필드를 생략하면 로그 파일의 모든 로그가 CloudWatch Logs에 게시됩니다. 이 필드를 포함하는 경우 에이전트는 사용자가 지정한 모든 필터를 통해 각 로그 메시지를 처리하고 모든 필터를 전달하는 로그 이벤트만 CloudWatch Logs에 게시됩니다. 모든 필터를 전달하지 않는 로그 항목은 여전히 호스트의 로그 파일에 남아 있지만, CloudWatch Logs로 전송되지는 않습니다.

          필터 배열의 각 항목에는 다음 필드가 포함될 수 있습니다.

          • type - 필터 유형을 표시합니다. 유효한 값은 includeexclude입니다. include 값을 선택하면 로그 항목이 CloudWatch Logs에 게시할 표현식과 일치해야 합니다. exclude 값을 선택하면 필터와 일치하는 각 로그 항목이 CloudWatch Logs로 전송되지 않습니다.

          • expression - RE2 구문 다음에 나오는 정규 표현식 문자열입니다.

            참고

            CloudWatch 에이전트는 사용자가 제공하는 정규 표현식의 성능을 확인하거나 정규 표현식 평가의 실행 시간을 제한하지 않습니다. 평가할 때 비용이 많이 드는 표현식을 작성하지 않도록 주의하는 것이 좋습니다. 가능한 문제에 대한 자세한 내용은 정규 표현식 서비스 거부 - ReDOS를 참조하세요.

          예를 들어, CloudWatch 에이전트 구성 파일의 다음 발췌문은 PUT 및 POST 요청인 로그를 CloudWatch Logs 로그에 게시하지만, Firefox에서 오는 로그는 제외합니다.

          "collect_list": [ { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/test.log", "log_group_name": "test.log", "log_stream_name": "test.log", "filters": [ { "type": "exclude", "expression": "Firefox" }, { "type": "include", "expression": "P(UT|OST)" } ] }, ..... ]
          참고

          구성 파일의 필터 순서는 성능에 영향을 미칩니다. 이전 예제에서 에이전트는 두 번째 필터 평가를 시작하기 전에 Firefox와 일치하는 모든 로그를 삭제합니다. 둘 이상의 필터에 의해 평가되는 로그 항목 수를 줄이려면 먼저 더 많은 로그를 제외할 것으로 예상되는 필터를 구성 파일에 넣습니다.

        • timezone – 선택 사항입니다. 로그 이벤트에 타임스탬프를 표시할 때 사용할 시간대를 지정합니다. 유효 값은 UTCLocal입니다. 기본값은 Local입니다.

          timestamp_format에 값을 지정하지 않으면 이 파라미터는 무시됩니다.

        • timestamp_format – 선택 사항입니다. 일반 텍스트와 %로 시작하는 특수 기호를 사용하여 타임스탬프 형식을 지정합니다. 이 필드를 생략한 경우 현재 시간이 사용됩니다. 이 필드를 사용하면 다음 목록에 있는 기호를 형식의 일부로 사용할 수 있습니다.

          단일 로그 항목에 형식과 일치하는 두 개의 타임스탬프가 포함된 경우 첫 번째 타임스탬프가 사용됩니다.

          이 기호 목록은 이전 CloudWatch Logs 에이전트에서 사용되는 목록과 다릅니다. 이러한 차이점에 대한 요약은 통합 CloudWatch 에이전트와 이전 CloudWatch Logs 에이전트 간의 타임스탬프 차이 단원을 참조하십시오.

          %y

          제로 패딩된 10진수 형태의 세기를 제외한 연도 예를 들어 19는 2019년을 나타냅니다.

          %Y

          10진수 형태로 세기가 포함된 연도 예: 2019

          %b

          로캘 약어 형태의 월

          %B

          로캘 전체 이름 형태의 월

          %m

          제로 패딩된 10진수 형태의 월

          %-m

          10진수 형태의 월(제로 패딩되지 않음)

          %d

          제로 패딩된 10진수 형태의 월 날짜

          %-d

          10진수 형태의 월 날짜(제로 패딩되지 않음)

          %A

          평일의 전체 이름(예: Monday)

          %a

          평일의 약어(예: Mon)

          %H

          제로 패딩된 10진수 형태의 시간(24시간 방식)

          %I

          제로 패딩된 10진수 형태의 시간(12시간 방식)

          %-I

          10진수 형태의 시간(12시간 방식, 제로 패딩되지 않음)

          %p

          AM 또는 PM

          %M

          제로 패딩된 10진수 형태의 분

          %-M

          10진수 형태의 분(제로 패딩되지 않음)

          %S

          제로 패딩된 10진수 형태의 초

          %-S

          10진수 형태의 초(제로 패딩되지 않음)

          %f

          10진수 형태(1-9의 숫자)의 소수부 초(왼쪽에 제로 패딩됨)

          %Z

          시간대(예: PST)

          %z

          현지 시간대와 UTC 간의 오프셋으로 표시되는 시간대입니다. 예: -0700 이 형식만 지원됩니다. 예를 들어, -07:00은 유효한 형식이 아닙니다.

        • multi_line_start_pattern – 로그 메시지의 시작을 식별하기 위한 패턴을 지정합니다. 로그 메시지는 패턴과 일치하는 하나의 줄 및 패턴과 일치하지 않는 후속 줄로 이루어져 있습니다.

          이 필드를 생략할 경우, 여러 줄 모드가 비활성화되고 기본적으로 공백이 아닌 문자로 시작되는 줄에서 이전의 로그 메시지가 종료되고 새로운 로그 메시지가 시작됩니다.

          이 필드를 포함하는 경우, 타임스탬프 형식과 동일한 정규식을 사용하도록 {timestamp_format}을 지정할 수 있습니다. 그렇지 않으면 CloudWatch Logs가 여러 줄 항목의 시작 줄을 결정하는 데 사용할 다른 정규 표현식을 지정할 수 있습니다.

        • encoding – 로그 파일을 정확하게 읽을 수 있도록 로그 파일의 인코딩을 지정합니다. 코딩을 잘못 지정하면 디코딩할 수 없는 문자를 다른 문자가 대체하기 때문에 데이터가 손실될 수 있습니다.

          기본값은 utf-8입니다. 가능한 모든 값은 다음과 같습니다.

          ascii, big5, euc-jp, euc-kr, gbk, gb18030, ibm866, iso2022-jp, iso8859-2, iso8859-3, iso8859-4, iso8859-5, iso8859-6, iso8859-7, iso8859-8, iso8859-8-i, iso8859-10, iso8859-13, iso8859-14, iso8859-15, iso8859-16, koi8-r, koi8-u, macintosh, shift_jis, utf-8, utf-16, windows-874, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, x-mac-cyrillic

    • windows_events 섹션은 Windows Server가 실행되는 서버로부터 수집할 Windows 이벤트 유형을 지정합니다. 여기에는 다음 필드가 포함됩니다.

      • collect_listwindows_events가 포함되어 있는 경우 필수입니다. 수집될 Windows 이벤트의 유형 및 수준을 지정합니다. 수집될 각 로그에는 이 섹션에 있는 항목이 있으며, 여기에는 다음 필드를 포함할 수 있습니다.

        • event_name – 로그할 Windows 이벤트 유형을 지정합니다. 이 유형은 Windows 이벤트 로그 채널 이름과 동일합니다(예: System, Security, Application 등). 이 필드는 기록할 Windows 이벤트 유형마다 있어야 합니다.

          참고

          CloudWatch는 Windows 로그 채널에서 메시지를 검색할 때 Full Name 속성을 기반으로 로그 채널을 조회합니다. 한편, Windows 이벤트 뷰어 탐색 창에는 로그 채널의 Log Name 속성이 표시됩니다. Full NameLog Name이 항상 일치하는 것은 아닙니다. 채널의 Full Name을 확인하려면 Windows 이벤트 뷰어에서 해당 채널을 마우스 오른쪽 버튼으로 클릭하고 [속성(Properties)]을 엽니다.

        • event_levels – 로그할 이벤트 수준을 지정합니다. 기록할 각 수준을 지정해야 합니다. 가능한 값은 INFORMATION, WARNING, ERROR, CRITICALVERBOSE입니다. 이 필드는 기록할 Windows 이벤트 유형마다 있어야 합니다.

        • log_group_name - 필수입니다. CloudWatch Logs에서 로그 그룹 이름으로 사용할 이름을 지정합니다.

        • log_stream_name – 선택 사항입니다. CloudWatch Logs에서 로그 스트림 이름으로 사용할 이름을 지정합니다. 이름의 일부로 {instance_id}, {hostname}, {local_hostname}, {ip_address}를 이름 안의 변수로 사용할 수 있습니다. {hostname}은 EC2 메타데이터에서 호스트 이름을 가져오고, {local_hostname}은 네트워크 구성 파일에 있는 호스트 이름을 사용합니다.

          이 필드를 생략하면 글로벌 logs 섹션의 log_stream_name 파라미터 값이 사용됩니다. 이 값도 생략하면 기본값 {instance_id}가 사용됩니다.

          로그 스트림이 아직 없는 경우 로그 스트림이 자동으로 생성됩니다.

        • event_format – 선택 사항입니다. CloudWatch Logs에 Windows 이벤트를 저장할 때 사용할 형식을 지정합니다. xml은 Windows 이벤트 뷰어에서처럼 XML 형식을 사용합니다. text는 레거시 CloudWatch Logs 에이전트 형식을 사용합니다.

  • log_stream_name - 필수입니다. collect_list의 항목 내 log_stream_name 파라미터에 개별 로그 스트림 이름이 정의되어 있지 않은 Windows 이벤트나 로그에 사용될 기본 로그 스트림 이름을 지정합니다.

  • endpoint_override – 에이전트가 로그를 전송하는 엔드포인트로 사용할 FIPS 엔드포인트 또는 프라이빗 링크를 지정합니다. 이 필드를 지정하고 프라이빗 링크를 설정하면 로그를 Amazon VPC 엔드포인트에 전송할 수 있습니다. 자세한 내용은 Amazon VPC란? 단원을 참조하세요.

    endpoint_override의 값은 URL인 문자열이어야 합니다.

    예를 들어, 구성 파일의 로그 섹션에서 다음 부분은 에이전트가 로그를 전송할 때 VPC 엔드포인트를 사용하도록 설정합니다.

    { "logs": { "endpoint_override": "vpce-XXXXXXXXXXXXXXXXXXXXXXXXX.logs.us-east-1.vpce.amazonaws.com", ...... }, }
  • force_flush_interval – 로그가 서버로 전송되기 전에 메모리 버퍼에 남아 있는 최대 시간(초)을 지정합니다. 이 필드에 대한 설정과 상관없이 버퍼 내 로그의 크기가 1MB에 도달하면 로그가 즉시 서버로 전송됩니다. 기본값은 5입니다.

  • credentials – 로그를 다른 AWS 계정에 전송할 때 사용할 IAM 역할을 지정합니다. 지정된 경우 이 필드는 1개의 파라미터 role_arn를 포함합니다.

    • role_arn – 로그를 다른 AWS 계정에 전송할 때 인증에 사용할 IAM 역할의 ARN을 지정합니다. 자세한 내용은 다른 계정에 지표 및 로그 전송 단원을 참조하세요. 여기에 지정한 경우 이를 통해 구성 파일(해당 시)의 agent 섹션에 지정되어 있는 role_arn을 재정의합니다.

  • metrics_collected – 에이전트가 로그에 포함된 지표를 수집하도록 지정합니다. 현재 metrics_collected 필드에는 emf 필드만 포함될 수 있습니다.

다음은 logs 섹션의 예입니다.

"logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log", "log_stream_name": "my_log_stream_name_1", "timestamp_format": "%H: %M: %S%y%b%-d" }, { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\test.log", "log_group_name": "test.log", "log_stream_name": "my_log_stream_name_2" } ] }, "windows_events": { "collect_list": [ { "event_name": "System", "event_levels": [ "INFORMATION", "ERROR" ], "log_group_name": "System", "log_stream_name": "System" }, { "event_name": "CustomizedName", "event_levels": [ "INFORMATION", "ERROR" ], "log_group_name": "CustomizedLogGroup", "log_stream_name": "CustomizedLogStream" } ] } }, "log_stream_name": "my_log_stream_name" }

CloudWatch 에이전트가 희소 로그 파일을 처리하는 방법

희소 파일은 빈 블록과 실제 내용이 모두 포함된 파일입니다. 희소 파일은 블록을 구성하는 실제 null 바이트 대신 빈 블록을 나타내는 간단한 정보를 디스크에 작성하여 디스크 공간을 보다 효율적으로 사용합니다. 이렇게 하면 일반적으로 희소 파일의 실제 크기가 명백한 크기보다 훨씬 작아집니다.

그러나 CloudWatch 에이전트는 희소 파일을 일반 파일 처리 방법과 다르게 처리하지 않습니다. 에이전트가 희소 파일을 읽을 때 빈 블록은 null 바이트로 채워진 “실제” 블록으로 처리됩니다. 이 때문에 CloudWatch 에이전트는 희소 파일의 외관상 크기만큼의 바이트를 CloudWatch에 게시합니다.

희소 파일을 게시하도록 CloudWatch 에이전트를 구성하면 예상보다 높은 CloudWatch 비용이 발생할 수 있으므로 그렇게 하지 않는 것이 좋습니다. 예를 들어 Linux의 /var/logs/lastlog는 일반적으로 희소 파일이므로 CloudWatch에 게시하지 않는 것이 좋습니다.

CloudWatch 에이전트 구성 파일: 전체 예

다음은 Linux 서버에 대한 전체 CloudWatch 에이전트 구성 파일의 예입니다.

수집하려는 척도에 대해 measurement 섹션에 나열된 항목들은 완전한 척도 이름을 지정하거나, 리소스 유형에 추가되는 척도 이름의 일부만 지정할 수 있습니다. 예를 들어 diskio 섹션의 measurement 섹션에 reads 또는 diskio_reads을 지정하면 diskio_reads 지표가 수집될 수 있습니다.

이 예에는 measurement 섹션에서 지표를 지정하는 두 가지 방법이 모두 포함되어 있습니다.

{ "agent": { "metrics_collection_interval": 10, "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log" }, "metrics": { "namespace": "MyCustomNamespace", "metrics_collected": { "cpu": { "resources": [ "*" ], "measurement": [ {"name": "cpu_usage_idle", "rename": "CPU_USAGE_IDLE", "unit": "Percent"}, {"name": "cpu_usage_nice", "unit": "Percent"}, "cpu_usage_guest" ], "totalcpu": false, "metrics_collection_interval": 10, "append_dimensions": { "customized_dimension_key_1": "customized_dimension_value_1", "customized_dimension_key_2": "customized_dimension_value_2" } }, "disk": { "resources": [ "/", "/tmp" ], "measurement": [ {"name": "free", "rename": "DISK_FREE", "unit": "Gigabytes"}, "total", "used" ], "ignore_file_system_types": [ "sysfs", "devtmpfs" ], "metrics_collection_interval": 60, "append_dimensions": { "customized_dimension_key_3": "customized_dimension_value_3", "customized_dimension_key_4": "customized_dimension_value_4" } }, "diskio": { "resources": [ "*" ], "measurement": [ "reads", "writes", "read_time", "write_time", "io_time" ], "metrics_collection_interval": 60 }, "swap": { "measurement": [ "swap_used", "swap_free", "swap_used_percent" ] }, "mem": { "measurement": [ "mem_used", "mem_cached", "mem_total" ], "metrics_collection_interval": 1 }, "net": { "resources": [ "eth0" ], "measurement": [ "bytes_sent", "bytes_recv", "drop_in", "drop_out" ] }, "netstat": { "measurement": [ "tcp_established", "tcp_syn_sent", "tcp_close" ], "metrics_collection_interval": 60 }, "processes": { "measurement": [ "running", "sleeping", "dead" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]], "force_flush_interval" : 30 }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log", "log_stream_name": "amazon-cloudwatch-agent.log", "timezone": "UTC" }, { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/test.log", "log_group_name": "test.log", "log_stream_name": "test.log", "timezone": "Local" } ] } }, "log_stream_name": "my_log_stream_name", "force_flush_interval" : 15 } }

다음은 Windows Server가 실행되는 서버에 대한 전체 CloudWatch 에이전트 구성 파일의 예입니다.

{ "agent": { "metrics_collection_interval": 60, "logfile": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log" }, "metrics": { "namespace": "MyCustomNamespace", "metrics_collected": { "Processor": { "measurement": [ {"name": "% Idle Time", "rename": "CPU_IDLE", "unit": "Percent"}, "% Interrupt Time", "% User Time", "% Processor Time" ], "resources": [ "*" ], "append_dimensions": { "customized_dimension_key_1": "customized_dimension_value_1", "customized_dimension_key_2": "customized_dimension_value_2" } }, "LogicalDisk": { "measurement": [ {"name": "% Idle Time", "unit": "Percent"}, {"name": "% Disk Read Time", "rename": "DISK_READ"}, "% Disk Write Time" ], "resources": [ "*" ] }, "customizedObjectName": { "metrics_collection_interval": 60, "customizedCounterName": [ "metric1", "metric2" ], "resources": [ "customizedInstances" ] }, "Memory": { "metrics_collection_interval": 5, "measurement": [ "Available Bytes", "Cache Faults/sec", "Page Faults/sec", "Pages/sec" ] }, "Network Interface": { "metrics_collection_interval": 5, "measurement": [ "Bytes Received/sec", "Bytes Sent/sec", "Packets Received/sec", "Packets Sent/sec" ], "resources": [ "*" ], "append_dimensions": { "customized_dimension_key_3": "customized_dimension_value_3" } }, "System": { "measurement": [ "Context Switches/sec", "System Calls/sec", "Processor Queue Length" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]] }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log", "timezone": "UTC" }, { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\test.log", "log_group_name": "test.log", "timezone": "Local" } ] }, "windows_events": { "collect_list": [ { "event_name": "System", "event_levels": [ "INFORMATION", "ERROR" ], "log_group_name": "System", "log_stream_name": "System", "event_format": "xml" }, { "event_name": "CustomizedName", "event_levels": [ "WARNING", "ERROR" ], "log_group_name": "CustomizedLogGroup", "log_stream_name": "CustomizedLogStream", "event_format": "xml" } ] } }, "log_stream_name": "example_log_stream_name" } }

수동으로 CloudWatch 에이전트 구성 파일 저장

CloudWatch 에이전트 구성 파일을 수동으로 생성하거나 편집하는 경우 이름을 지정할 수 있습니다. 문제를 간단하게 해결할 수 있도록 이름을 Linux 서버에서는 /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json로 지정하고, Windows 서버를 실행하는 서버에서는 $Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json로 지정하는 것이 좋습니다. 파일을 생성한 후에는 해당 파일을 에이전트를 실행하려고 하는 다른 서버에 복사할 수 있습니다.

Systems Manager 파라미터 스토어에 CloudWatch 에이전트 구성 파일 업로드

SSM Agent를 사용하여 서버에 CloudWatch 에이전트를 설치하려는 경우 CloudWatch 에이전트 구성 파일을 수동으로 편집한 후 이를 Systems Manager 파라미터 스토어에 업로드할 수 있습니다. 그렇게 하려면 Systems Manager put-parameter 명령을 사용합니다.

파일을 파라미터 스토어에 저장할 수 있으려면 충분한 권한이 있는 IAM 역할을 사용해야 합니다. 자세한 내용은 CloudWatch 에이전트와 함께 사용하기 위한 IAM 역할 및 사용자 생성 단원을 참조하세요.

다음 명령을 사용합니다. 여기서 parameter name은 파라미터 스토어에서 이 파일에 사용할 이름이며 configuration_file_pathname은 편집한 구성 파일의 경로 및 파일 이름입니다.

aws ssm put-parameter --name "parameter name" --type "String" --value file://configuration_file_pathname