Azure Monitor 에이전트를 사용하여 SNMP 트랩 데이터 수집

주의

이 문서에서는 EOL(수명 종료) 상태에 가까워진 Linux 배포판인 CentOS를 참조하세요. 이에 따라 사용 및 계획을 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조 하세요.

SNMP(Simple Network Management Protocol)는 Linux 디바이스 및 어플라이언스를 모니터링하고 구성하기 위한 널리 배포된 관리 프로토콜입니다.

다음 두 가지 방법으로 SNMP 데이터를 수집할 수 있습니다.

  • 설문 조사 - 관리 시스템은 특정 속성에 대한 값을 수집하기 위해 SNMP 에이전트를 폴링합니다.
  • 트랩 - SNMP 에이전트는 관리 시스템에 이벤트 또는 알림을 전달합니다.

트랩은 이벤트 알림으로 가장 자주 사용되지만, 설문 조사는 상태 저장 상태 검색 및 성능 메트릭 수집에 더 적합합니다.

Azure Monitor 에이전트를 사용하여 SNMP 트랩을 syslog 이벤트 또는 텍스트 파일에 기록된 이벤트로 수집할 수 있습니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 트랩 수신기 로그 옵션 및 형식 설정
  • 트랩을 syslog 또는 텍스트 파일로 보내도록 트랩 수신기 구성
  • Azure Monitor 에이전트를 사용하여 SNMP 트랩 수집

필수 조건

이 자습서를 완전히 학습하려면 다음이 필요합니다.

  • 최소한 기여자 권한이 있는 Log Analytics 작업 영역.

  • 모니터링하는 디바이스에 대한 MIB(관리 정보 데이터베이스) 파일입니다.

    SNMP는 공급업체에서 제공하는 MIB 파일에 정의되고 설명된 OID(개체 식별자) 값을 사용하여 모니터링되는 속성을 식별합니다.

    디바이스 공급업체는 일반적으로 MIB 파일을 제공합니다. MIB 파일이 없는 경우 타사 웹 사이트에서 많은 공급업체의 파일을 찾을 수 있습니다.

    SNMP 트랩을 보내는 각 디바이스에 대한 모든 MIB 파일을 MIB 파일의 기본 디렉터리인 /usr/share/snmp/mibs에 배치합니다. 이렇게 하면 OID 대신 의미 있는 이름으로 SNMP 트랩 필드를 로깅할 수 있습니다.

    일부 공급업체는 모든 디바이스에 대해 단일 MIB를 유지 관리하는 반면, 다른 공급업체에는 수백 개의 MIB 파일이 보유합니다. MIB 파일을 올바르게 로드하려면 snmptrapd에서 모든 종속 MIB를 로드해야 합니다. MIB 파일을 구문 분석할 때 누락된 종속성이 없도록 MIB를 로드한 후 snmptrapd 로그 파일을 검사합니다.

  • SNMP 트랩 수신기가 있는 Linux 서버입니다.

    이 문서에서는 대부분의 Linux 배포판이 제공하는 Net-SNMP 에이전트의 SNMP 트랩 수신기인 snmptrapd를 사용합니다. 그러나 사용할 수 있는 다른 많은 SNMP 트랩 수신기 서비스가 있습니다.

    snmptrapd 구성 프로시저는 Linux 배포판마다 다를 수 있습니다. SNMP v3 인증 구성에 대한 지침을 포함하여 snmptrapd 구성에 대한 자세한 내용은 Net-SNMP 설명서를 참조하세요.

    SNMP 트랩 메시지의 속성에 OID 대신 의미 있는 이름이 갖도록 사용하는 SNMP 트랩 수신기가 사용자 환경에 대한 MIB 파일을 로드할 수 있어야 합니다.

트랩 수신기 로그 옵션 및 형식 설정

CentOS 7, Red Hat Enterprise Linux 7, Oracle Linux 7 서버에서 snmptrapd 트랩 수신기를 설정하려면 다음을 수행합니다.

  1. 다음과 같이 snmptrapd를 설치하고 사용하도록 설정합니다.

    #Install the SNMP agent
    sudo yum install net-snmp
    #Enable the service
    sudo systemctl enable snmptrapd
    #Allow UDP 162 through the firewall
    sudo firewall-cmd --zone=public --add-port=162/udp --permanent
    
  2. 커뮤니티 문자열(SNMP v1 및 v2 인증 문자열)에 권한을 부여하고 로그 파일에 기록된 트랩의 형식을 정의합니다.

    1. 다음과 같이 snmptrapd.conf를 엽니다.

      sudo vi /etc/snmp/snmptrapd.conf  
      
    2. snmptrapd.conf 파일에 다음과 같은 줄을 추가합니다.

      # Allow all traps for all OIDs, from all sources, with a community string of public
      authCommunity log,execute,net public
      # Format logs for collection by Azure Monitor Agent
      format2 snmptrap %a %B %y/%m/%l %h:%j:%k %N %W %q %T %W %v \n
      

      참고 항목

      snmptrapd는 트랩 및 디먼 메시지(예: 서비스 중지 및 시작)를 동일한 로그 파일에 로그합니다. 위의 예제에서는 나중에 로그에서 snmptraps를 쉽게 필터링할 수 있도록 "snmptrap"이라는 단어로 시작하도록 로그 형식을 정의했습니다.

트랩 데이터를 syslog 또는 텍스트 파일로 보내도록 트랩 수신기 구성

snmptrapd는 다음과 같은 두 가지 방법으로 Azure Monitor 에이전트에 SNMP 트랩을 보낼 수 있습니다.

  • 들어오는 트랩을 syslog에 전달합니다. 또한 Azure Monitor 에이전트의 데이터 원본으로 설정할 수 있습니다.

  • Azure Monitor 에이전트가 ‘자른 후’ 구문 분석할 수 있는 syslog 메시지를 파일에 씁니다. 이 옵션을 사용하면 syslog 이벤트로 보내는 대신 SNMP 트랩을 새 데이터 형식으로 보낼 수 있습니다.

snmptrapd의 출력 동작 구성을 편집하려면 다음을 수행합니다.

  1. 다음과 같이 /etc/snmp/snmptrapd.conf 파일을 엽니다.

    sudo vi /etc/sysconfig/snmptrapd
    
  2. 출력 대상을 구성합니다.

    구성의 예는 다음과 같습니다.

    # snmptrapd command line options
    # '-f' is implicitly added by snmptrapd systemd unit file
    # OPTIONS="-Lsd"
    OPTIONS="-m ALL -Ls2 -Lf /var/log/snmptrapd"
    

    이 예제 구성의 옵션은 다음과 같습니다.

    • -m ALL - 모든 MIB 파일을 기본 디렉터리에 로드합니다.
    • -Ls2 - Syslog에 대한 트랩을 Local2 기능으로 출력합니다.
    • -Lf /var/log/snmptrapd - /var/log/snmptrapd 파일에 트랩을 로그합니다.

참고 항목

출력 옵션을 설정하는 방법서식 옵션을 설정하는 방법에 대한 자세한 내용은 Net-SNMP 설명서를 참조하세요.

Azure Monitor 에이전트를 사용하여 SNMP 트랩 수집

syslog에 이벤트를 보내도록 snmptrapd를 구성한 경우 Azure Monitor 에이전트를 사용하여 이벤트 및 성능 카운터 수집에 설명된 단계를 따릅니다. Azure Monitor 에이전트에 대한 데이터 수집 규칙을 정의할 때 데이터 원본으로 Linux syslog를 선택해야 합니다.

파일에 이벤트를 쓰도록 snmptrapd를 구성한 경우 Azure Monitor 에이전트를 사용하여 텍스트 로그 수집에 설명된 단계를 따릅니다.

다음 단계

자세히 알아보기: