Zabbix : 동일한 OID의 트랩 분류 (내부 메시지를 KEY로 설정)

7032 단어 snmpttzabbix

문제점



Zabbix에서 각 OID의 트랩에 대해 심각도를 각각 정의하고 있다고 생각합니다.
하지만 드물게 동일한 OID의 트랩에 대해 내부 메시지를 키로 다른 심각도로 분류하는 요청이 발생하기도합니다.

문제점의 구체예(샘플)



(1) 설계시의 감시 규칙



트랩(OID=.1.3.6.1.4.1.8072.9999(netSnmpExperimental))은 파일 오픈이 실패했을 경우의 알람이며, 반드시 심각도 「치명적인 장해」로서 인시던트 관리하고 있다고 합니다.
또한이 트랩의 첫 번째 인수에는 오류 원인으로 다음 세 가지 메시지 중 하나가 추가되었습니다.
  • "FileNotFound"(파일이 존재하지 않는 에러)
  • "FileSizeZero"(파일이 존재하지만 0Bytes)
  • "UnknownError"(원인 알 수 없는 오류)

  • ※ 샘플 쇼보는 미안합니다.

    (2) 실제로 운용해 봐,



    운용 후, 파일 0bytes의 경우는, 에러가 아니고 정상적인 동작인 것이 판명(자주 있는 것입니다).
    앱 팀으로부터, 트랩 netSnmpExperimental로, 제1 인수가 "FileSizeZero"의 경우는, 심각도 「정보」로 해 주었으면 한다(인시던트 관리 대상외로 하고 싶다)라고의 요망.

    (3) Zabbix 관리자는 그 요구를 받아들여야 합니다.



    서비스 요건이라면 프로그램 측의 수정은 필수이지만,
    이번은 감시 요건… Zabbix 관리측이 대응해야 합니다(슬픈!!)

    가정하는 Zabbix 환경



    트랩 흐름은 다음 3 데몬을 사용한다고 가정합니다.
  • SNMPTRAPD로 트랩 수신
  • SNMPTT에서 트랩 분류
  • ZABBIX에서 트리거 처리

  • 실현 방법 (설정)



    SNMPTT를 이용한다.

    SNMPTT 설정



    본래, 대상 트랩(netSnmpExperimental)의 기재는 1개였지만,
    다음과 같이 심각도(severity)를 "INFORMATION(정보)"과 "DISASTER(치명적인 장애)"의 2개로 분할.
    각각에 MATCH 구문을 추기해, "INFORMATION"에는 "(FileSizeZero)"를 추기.
    "DISASTER"에는 "!(FileSizeZero)"를 추가한다.

    /etc/snmp/snmptt.conf
    EVENT netSnmpExperimental .1.3.6.1.4.1.8072.9999 "Status Event" INFORMATION
    MATCH $1: (FileSizeZero)
    FORMAT ZBXTRAP $aA ファイルサイズゼロなので処理不要。正常状態です($1)
    
    EVENT netSnmpExperimental .1.3.6.1.4.1.8072.9999 "Status Event" DISASTER
    MATCH $1: !(FileSizeZero)
    FORMAT ZBXTRAP $aA ファイルオープンが失敗しました。障害発生($1)
    

    Zabbix-ITEM 설정


  • 심각도 "INFORMATION"용 item 설정
  • 심각도 "DISASTER"용 item 설정

  • (주의) 키의 내용은, "INFORMATION"이나 "DISASTER"만이라면, 트랩 메시지내의 캐릭터 라인이 매치해 버릴 가능성이 있으므로, 독특하게 되는 규칙이 필요합니다(여기에서는, 심각 학위 + "Status Event"를 키로합니다).

    Zabbix-TRIGGER 설정


  • 심각도 "INFORMATION"용 trigger 설정
  • 심각도 "DISASTER"용 trigger 설정

  • 검증



    (1)메세지에 "FileSizeZero"를 포함한 트랩(netSnmpExperimental)⇒심각도 「정보」



    테스트 트랩(1)
    snmptrap -v 2c -c public 127.0.0.1 '' netSnmpExperimental netSnmpExperimental.1 s "FileSizeZero"
    



    (2)메시지에 "FileNotFound"를 포함한 트랩(netSnmpExperimental) ⇒ 심각도 「치명적인 장해」



    테스트 트랩(2)
    snmptrap -v 2c -c public 127.0.0.1 '' netSnmpExperimental netSnmpExperimental.1 s "FileNotFound"
    



    (3)메세지에 "UnknownError"를 포함한 트랩(netSnmpExperimental) ⇒ 심각도 「치명적인 장해」



    테스트 트랩(3)
    snmptrap -v 2c -c public 127.0.0.1 '' netSnmpExperimental netSnmpExperimental.1 s "UnknownError"
    



    요약



    Zabbix를 만졌을 때, 나는 Zabbix가 SNMPTRAP을 처리하게 할 때 item의 snmptrap [] 내에 트랩 이름 (linkUp 등)을 설명했습니다.
    이것은 이것으로 정확하게 기재할 수 있습니다만, 여기에는 심각도(information/warning/disaster등)를 기재하는 편이 관리하기 쉽다고 생각해, 전환한 경위가 있습니다.
    이번과 같이 SNMPTRAP 조건 분기를 실현하기 위해, ZABBIX의 ITEM/TRIGGER보다 SNMPTT 기능을 활용하는 편이 쉽고 강력하게 느꼈기 때문에, 기사로 해 보았습니다.

    좋은 웹페이지 즐겨찾기