본문 바로가기
WIKI 기술 지식 베이스

SNMP 메트릭

원문 보기 위키 갱신

네트워크 장치 모니터링이 SNMP 장치에서 메트릭을 수집하는 방식을 설명해요. Datadog Agent에 포함된 SNMP 통합을 기반으로 개별 장치나 서브넷 전체를 자동으로 발견해 메트릭을 수집하는 설정 방법을 다루어요.

출처: 문서

본문

설치

네트워크 장치 모니터링은 Datadog Agent 패키지에 포함된 SNMP 통합을 사용하며, SNMP의 세 가지 버전(SNMPv1, SNMPv2, SNMPv3)을 모두 지원해요. 발견(discovery) 과정에서 SNMP 포트(기본 161)를 폴링해요. 응답이 있고 일치하는 프로필이 있으면 장치가 발견된 것으로 판단해요.

사전 요구 사항

Agent v7.32 이상

작동 방식

아래 다이어그램은 Datadog Agent와 모니터링 대상 장치 간의 기본 포트와 프로토콜을 보여줘요. SNMP 메트릭의 경우 Datadog Agent는 자동 발견(Autodiscovery) 또는 수동 장치 IP 설정을 기반으로 장치를 폴링해요. NDM으로 구성되어 온프레미스나 클라우드에 배포된 Datadog Agent는 네트워크에서 수집한 모든 장치 및 네트워크 데이터를 통합해 HTTPS 포트 443을 통해 Datadog로 전송해요. 이를 통해 메트릭, 로그, 트레이스, 모니터, 대시보드에 대한 통합된 풀스택 관찰이 가능해져요.

다음 단계

아래 지침에 따라 Datadog가 네트워크 장치에서 SNMP 메트릭을 수집하도록 설정해요.

설정

Datadog 네트워크 장치 모니터링은 개별 장치에서 메트릭을 수집하거나, 전체 서브넷의 장치(고유 IP 주소)를 자동으로 발견하는 방식을 지원해요.

네트워크에 존재하는 장치 수와 네트워크의 동적 정도(장치 추가·제거 빈도)에 따라 수집 전략을 선택해요.

개별 장치 모니터링

  • 규모가 작고 대체로 정적인 네트워크에 적합해요.

자동 발견(Autodiscovery)

  • 규모가 크거나 동적인 네트워크에 적합해요.

수집 전략과 관계없이 Datadog의 sysObjectID 매핑 장치 프로필을 활용해 장치에서 관련 메트릭을 자동으로 수집해요.

개별 장치 모니터링

개별 장치를 모니터링하려면:

SNMPv2

  • SNMPv2의 경우 장치의 IP 주소와 community string을 지정한 인스턴스를 구성해요:

    init_config:
      loader: core  # use core check implementation of SNMP integration. recommended
      use_device_id_as_hostname: true  # recommended
    instances:
    - ip_address: '1.2.3.4'
      community_string: 'sample-string'  # enclose with single quote
      tags:
        - 'key1:val1'
        - 'key2:val2'
    

SNMPv3

  • SNMPv3의 경우 장치의 IP 주소와 SNMPv3 자격 증명(적절한 경우)을 지정한 인스턴스를 구성해요. 예를 들어 user, authProtocol, authKey, privProtocol, privKey를 지정해요:

    init_config:
      loader: core  # use core check implementation of SNMP integration. recommended
      use_device_id_as_hostname: true  # recommended
    instances:
    - ip_address: '1.2.3.4'
      snmp_version: 3  # optional, if omitted which version of SNMP you are using is auto-detected
      user: 'user'
      authProtocol: 'SHA256'  # choices: MD5, SHA, SHA224, SHA256, SHA384, SHA512
      authKey: 'fakeKey'  # enclose with single quote
      privProtocol: 'AES256'  # choices: DES, AES, AES192, AES192C, AES256, AES256C
      privKey: 'fakePrivKey'  # enclose with single quote
      tags:
        - 'key1:val1'
        - 'key2:val2'
    
  • Agent를 재시작해요.

설정 후 Agent는 장치를 Datadog 지원 장치 프로필 중 하나와 매칭해 관련 메트릭을 수집해요.

설정을 확장하려면:

  • 인스턴스를 더 추가해 네트워크의 더 많은 장치에서 메트릭을 수집해요.
  • 동적인 네트워크의 많은 장치에서 메트릭을 수집해야 한다면 자동 발견(Autodiscovery)을 사용해요.

자동 발견

개별 장치를 지정하는 대안으로 자동 발견을 사용해 네트워크의 모든 장치를 자동으로 발견할 수 있어요.

자동 발견은 구성된 서브넷의 각 IP를 폴링해 장치 응답 여부를 확인해요. 그런 다음 Datadog Agent는 발견된 장치의 sysObjectID를 조회해 Datadog 지원 장치 프로필 중 하나에 매핑해요. 프로필에는 다양한 유형의 장치에 대해 수집할 사전 정의된 메트릭 목록이 포함돼 있어요.

네트워크 장치 모니터링에서 자동 발견을 사용하려면:

  1. Datadog Agent를 v7.27 이상으로 설치하거나 업그레이드해요. 플랫폼별 지침은 Datadog Agent 문서를 참고해요.

  2. Datadog가 스캔할 모든 서브넷을 포함하도록 datadog.yaml Agent 구성 파일을 편집해요. 아래 샘플 구성은 자동 발견에 필요한 매개변수, 기본값, 예시를 제공해요.

  3. 선택적으로 Agent 자동 발견 중 장치 중복 제거를 활성화할 수 있어요. 이 기능은 기본적으로 비활성화되어 있으며 Agent 버전 7.67 이상이 필요해요. 자세한 내용은 예시 Agent 구성 파일의 use_deduplication 매개변수를 참고해요.

    network_devices:
      autodiscovery:
        use_deduplication: true
    

SNMPv2

network_devices:
  autodiscovery:
    ## use_deduplication - boolean - optional - default: false
    workers: 100  # number of workers used to discover devices concurrently
    discovery_interval: 3600  # interval between each autodiscovery in seconds
    loader: core  # use core check implementation of SNMP integration. recommended
    use_device_id_as_hostname: true  # recommended
    configs:
      - network_address: 10.10.0.0/24  # CIDR subnet
        loader: core
        snmp_version: 2
        port: 161
        community_string: '***'  # enclose with single quote
        tags:
          - "key1:val1"
          - "key2:val2"
      - network_address: 10.20.0.0/24
        loader: core
        snmp_version: 2
        port: 161
        community_string: '***'
        tags:
          - "key1:val1"
          - "key2:val2"

SNMPv3

network_devices:
  autodiscovery:
    ## use_deduplication - boolean - optional - default: false
    workers: 100  # number of workers used to discover devices concurrently
    discovery_interval: 3600  # interval between each autodiscovery in seconds
    loader: core  # use core check implementation of SNMP integration. recommended
    use_device_id_as_hostname: true  # recommended
    configs:
      - network_address: 10.10.0.0/24  # CIDR subnet
        snmp_version: 3
        user: 'user'
        authProtocol: 'SHA256'  # choices: MD5, SHA, SHA224, SHA256, SHA384, SHA512
        authKey: 'fakeKey'  # enclose with single quote
        privProtocol: 'AES256'  # choices: DES, AES, AES192, AES192C, AES256, AES256C
        privKey: 'fakePrivKey'  # enclose with single quote
        tags:
          - 'key1:val1'
          - 'key2:val2'
      - network_address: 10.20.0.0/24
        snmp_version: 3
        user: 'user'
        authProtocol: 'SHA256'
        authKey: 'fakeKey'
        privProtocol: 'AES256'
        privKey: 'fakePrivKey'
        tags:
          - 'key1:val1'
          - 'key2:val2'

참고: Datadog Agent는 발견된 각 IP로 SNMP 체크를 자동 구성해요. 발견된 장치는 SNMP 폴링 시 성공적으로 응답하는 IP를 의미해요.

참고: 이 구문을 사용하려면 Agent 7.54 이상이어야 해요. 이전 버전은 이전 config_template.yaml을 참고해요.

인터페이스 속도 재정의

기본적으로 SNMP 체크는 장치에서 감지된 대로 인터페이스 속도를 보고해요. 물리적 포트 속도가 실제 회로 대역폭과 다른 경우(예: 50 Mbps 회로용으로 프로비저닝된 1 Gbps 물리 포트) interface_configs를 사용해 특정 인터페이스의 인바운드·아웃바운드 속도를 재정의할 수 있어요.

snmp.d/conf.yaml의 인스턴스 구성에 interface_configs를 추가해요:

instances:
  - ip_address: '1.2.3.4'
    community_string: 'sample-string'
    interface_configs:
      - match_field: name      # match by interface name or ifIndex
        match_value: eth0      # case-sensitive
        in_speed: 50000000     # inbound speed in bytes per second (50 Mbps)
        out_speed: 50000000    # outbound speed in bytes per second (50 Mbps)

사용 가능한 모든 interface_configs 옵션은 샘플 snmp.d/conf.yaml을 참고해요.

검증

Agent의 status 하위 명령을 실행하고 Checks 섹션에서 snmp를 찾아요.

더 알아보기 (Learn more)