Windows에서 SNMPTRAP 보내기

하는 일


Windows 2016 평가판을 사용하여 SNMPTRAP를 보내 보십시오.
(여담) Zabbix에서 이벤트 로그를 수집하고 신고할 수 있지만 이벤트 로그에는 다양한 정보가 섞여 있기 때문에 이전의 SNMPTRAP가 가장 안정적이었다.

등장인물

  • 윈도우즈 2016 서버(kvm의 guestoS로 실행)
  • centos7(snmptrapd) 서버(kvm의guestoS로 실행)
  • 구성 정보


    항목 설정
    수치
    새로 만들기 또는 기존
    snmptrap 대상 IP
    192.168.10.189
    새로 만들기
    (이벤트) 로그 이름
    Application
    기존
    (이벤트) 소스
    Testbatch
    새로 만들기
    (이벤트) ID

    기존 (설정되지 않음)
    ※ 개인 환경이므로 교체해 주십시오.

    단계

  • SNMP 서비스 추가 및 설정
  • 이벤트 로그 소스 사전 추가
  • evntwin 설정 (이벤트⇒ snmptrap)
  • 이벤트 쓰기 및 검증
  • SNMP 서비스 추가 및 구성


    SNMP 서비스 추가


    서버 관리자 → 역할 및 기능 추가 마법사 → 기능, SNMP 서비스 추가
    SNMP 서비스를 추가로 설치하지 않으면 SNMPTRAP가 날아갈 수 없고 evntwin 명령도 설치되지 않기 때문에 필수적입니다.

    SNMP 서비스 설정


    서버 관리자 → 서비스 → 트랩 화면에서 다음을 설정합니다.

    커뮤니티 이름을 추가한 다음 트랩 대상을 추가합니다.

    이벤트 로그 소스 미리 추가


    사전 등록 이벤트 로그 소스
    new-eventlog -logname application -source Testbatch
    
  • Windows 2016에서 상기 설정이 필요할 것 같습니다.
  • new-eventlog를 하지 않고 write-eventlog를 진행할 때 다음과 같은 메시지가 나타납니다.
  • 오류 정보
    write-eventlog:ソース名"Testbatch"はコンピューター"localhost"に存在しません。
    
  • 2012/2008에 문득 write-eventlog도 OK라고 느꼈다.
  • 시험에서 write-eventlog가 정상적으로 끝난 것을 확인합니다.
  • write-eventlog
    write-eventlog -logname application -source Testbatch -entrytype error -eventid 1 -message "test#1 event" 
    

    이벤트 win 설정 (이벤트 ⇒ snmptrap)


    evntwin 실행


    powershell 알림부호에서 evntwin 실행

    이벤트win을 시작한 후 화면 오른쪽 아래에 있는 "편집(E)>>"을 누르면 상기 화면이 나타납니다.
    그런 다음 응용 프로그램에서 테스트를 선택하고 트랩이 될 이벤트 ID=1을 선택합니다.

    아무것도 건드리지 않고 "오케이"만 누르세요.

    여기서 끝내도록 설정합니다.


    이벤트 쓰기 및 검증


    윈도우즈에서 write-eventlog를 실행해 보십시오.


    write-eventlog
    write-eventlog -logname application -source Testbatch -entrytype error -eventid 1 -message "test#1 event" 
    
    이벤트 로그에 기록되었는지 확인한 후:.

    snmptrap 수신 측면에서 확인


    태어난 snmptrapd.log
    May 18 07:54:34 localhost snmptrapd[2298]: 2017-05-18 07:54:34 192.168.10.83(via UDP: [192.168.10.83]:57165->[192.168.10.189]:162) TRAP, SNMP v1, community public#012#011.1.3.6.1.4.1.311.1.13.1.9.84.101.115.116.98.97.116.99.104 Enterprise Specific Trap (1) Uptime: 0:13:42.78#012#011.1.3.6.1.4.1.311.1.13.1.9999.1.0 = STRING: "test#1 event#015#012"#011.1.3.6.1.4.1.311.1.13.1.9999.2.0 = STRING: "Unknown"#011.1.3.6.1.4.1.311.1.13.1.9999.3.0 = STRING: "win2016"#011.1.3.6.1.4.1.311.1.13.1.9999.4.0 = STRING: "1"#011.1.3.6.1.4.1.311.1.13.1.9999.5.0 = STRING: "1"#011.1.3.6.1.4.1.311.1.13.1.9999.6.0 = STRING: "test#1 event"
    
    상술한 snmptrapd.log에서 볼 수 있듯이 OID의 내용
    OID 컨텐트 분해
     .1.3.6.1.4.1.311.1.13.1.9.84.101.115.116.98.97.116.99.104
     .1.3.6.1.4.1.311.1.13.1 = 固定OID
     9 = strlen( Testbatch ) = 9文字
     84.101.115.116.98.97.116.99.104 = アスキーコードtoキャラクタすると"Testbatch"
    
    AS의 CII 코드 확인 방법 (예)
    [root@sv ~]# echo  84.101.115.116.98.97.116.99.104 | sed 's/\./ /g'  | awk '{print "printf \"%x%x%x%x%x%x%x%x%x\n\" "$0;}' | sh
    546573746261746368
    [root@sv ~]#
    

    tips

  • 이벤트의 로그 이름을 잘못 작성한 경우(삭제하려는 경우)
  • 로그 이름 삭제
    remove-eventlog -logname hogehoge
    
    그러나 이 작업 후 이벤트 로그의 일부분은 기록되지 않았다.
    ※ Windows OS가 재부팅되면 아무 일도 없었던 것처럼 정상적으로 작동합니다.

    결과

  • 윈도우즈 2012/2008과 마찬가지로 evntwin을 사용할 수 있지만 new-eventlog를 하지 않으면 write-eventlog가 잘못됩니다.
  • 트랩의 OID는 고정 OID에서 "원본의 문자열 길이"+ "원본 이름의 asciicode"로 구성됩니다.
  • (중요) 같은 이벤트 원본에서 이벤트 id만 바꾸는 상황에서specific-trap 정보만 바꿉니다.
  • 좋은 웹페이지 즐겨찾기