ZABBIX : NW의 I/F 정보를 로우 레벨 디스커버리 기능으로 능숙하게 요리한다

2695 단어 zabbix3.0zabbix

문제



Zabbix의 로우레벨 디스커버리(LLD)는 편리하네요.

그러나 네트워크 장치에 템플릿을 그대로 사용하면,

위와 같이, 아이템수가 많아져(1개의 인터페이스마다 8아이템) 힘듭니다.
정말 모니터링하고 싶은 I/F는 몇 포트밖에 없는데…
그렇다고 Discovery의 Filter에서 일일이, I/F정보를 나열하는 것도 번거롭다.

그런 고민이 없습니까?

하고 싶은 일



모니터링하고 싶은 I/F는, 통상이면 컨피그로 Description의 기재를 하고 있을 것입니다(아래와 같이). 그렇다면, Description 기재=(이콜) 모니터링 대상으로 하면 좋다!!


즉, MIB의 "ifAlias"정보에 특정 문자 "##"가 포함되어 있으면 모니터링 대상의 I/F라고 결정함으로써 항목 수를 최소화 할 수 있습니다.

이것으로 만약 수십 대의 NW 기기를 감시하게 되어도 초당 "초당 감시 항목 수"를 억제 할 수 있습니다 (하지 않으면 50 정도 곧 넘어 버립니다).
패킷 전송량 · NW 기기의 부하, 무엇보다 Zabbix 서버의 부하 경감이 됩니다.

실현 방법



간단합니다.
네트워크 장치용 템플릿 "Template SNMP Interfaces"를 사용한다고 가정합니다.
이 템플릿의 디스커버리 부분을 2점 변경하는 것만으로 실현할 수 있습니다.

템플릿의 검색 규칙 수정



항목 "SNMP OID"의 내용을 다음과 같이 변경합니다.
이렇게 하면 검색에서 {{IFALIAS} 매크로를 사용할 수 있습니다.


  • discovery[{#SNMPVALUE},IF-MIB::ifDescr,{#IFALIAS},IF-MIB::ifAlias]

  • 템플릿의 검색 규칙 필터 수정



    지금까지 {#SNMPVALUE}(즉 ifDescr)를 정규 표현 대상으로 했지만 ifAlias를 정규 표현 대상으로 함으로써 설명에 "##"가 포함된 i/f만을 대상으로 추출할 수 있습니다. .



    어쨌든 좋은 질문



    여러분도 생각했을지도 모르지만,
    NW 기기의 I/F 코멘트 부분은 Description 커멘드로 기재합니다만,
    MIB의 OID 이름은 ifAlias에 등록됩니다.
    아래에 예가 있듯이 ifDescr은 I/F 이름 (FastEthernet0 등)이 등록되어 있습니다.

    [root@sv ~]# snmpwalk -v 1 -c public 192.168.10.2 ifDescr
    IF-MIB::ifDescr.1 = STRING: FastEthernet0
    IF-MIB::ifDescr.2 = STRING: FastEthernet1
    IF-MIB::ifDescr.3 = STRING: BRI0
    ...
    [root@sv ~]# snmpwalk -v 1 -c public 192.168.10.2 ifAlias
    IF-MIB::ifAlias.1 = STRING: ## To SV#1
    IF-MIB::ifAlias.2 = STRING: ## To SV#2
    IF-MIB::ifAlias.3 = STRING: 
    ...
    

    프로덕션 적용 시 고려 사항


  • 템플릿 "Template SNMP Interfaces"는 서버 등과 공유하기 때문에 다른 템플릿으로 복제 한 다음 수정하는 등의 고안이 필요합니다.
  • 검색의 {#SNMPVALUE} 이름을 바꾸거나 삭제할 때주의하십시오.
  • 이번에 작성한 {#IFALIAS}를 활용하여 표시 이름을 알기 쉽게 만들 수도 있습니다.
  • 좋은 웹페이지 즐겨찾기