본문 바로가기
  • ▒ 네모의 쉽게 배우는 네트워크 | 개발 ▒
네트워크 운영도구 개발/트러블슈팅

[zabbix] first network error, wait for 15 seconds

by 너l모 2021. 8. 19.
반응형

※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!


 ο 목차

     


    ※ 코드 보는 방법 참고

    ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력

    ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력

    ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력

    ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력

     


    1. 문제 사례

    1) 문제 현상

    ▶  Zabbix 버전 업그레이드(4.2 -> 5.0) 작업 후 snmp 일부 item 항목에 대해 2)의 오류 메세지가 발생

    ▶  문제가 발생한 item 항목에 대한 데이터 수집 불가

    ▶  일부 항목의 snmp 데이터 수집 불가로 인한 network error 메시지와 함께, 일시적으로 해당 호스트에 대한 모든 snmp item 수집 중단 현상 발생

    ▶  호스트에 대한 snmp check 후 connection restored 되지만 위의 현상이 반복되면서 주기적으로 snmp 데이터 수집 중단 현상이 발생함

     

    2) 오류 메세지

    40209:20210819:131702.777 SNMP agent item "아이템이름" on host "호스트IP" failed: first network error, wait for 15 seconds
    40211:20210819:131722.682 SNMP agent item "아이템이름" on host "호스트IP" failed: another network error, wait for 15 seconds
    40211:20210819:131747.738 temporarily disabling SNMP agent checks on host "호스트IP": host unavailable
    40205:20210819:131653.544 resuming SNMP agent checks on host "호스트IP": connection restored

     

    2. 문제 원인

    ▶  zabbix 5.0 버전 업그레이드 작업의 알려진 버그의 일종으로 판단됨(snmp interfaces duplicate 현상)

    https://support.zabbix.com/browse/ZBX-17877

     

    [ZBX-17877] Broken SNMP Interfaces after upgrade to 5.0 - ZABBIX SUPPORT

     

    support.zabbix.com

    ▶ host 설정을 확인해보니 기존에 [1 host] : [1 snmp interface] 관계에서 [1 host] : [2 snmp interface] 로 변경됨. 


    ▶ zabbix 데이터베이스의 snmp 정보 확인 결과 frontend(관리 웹페이지) 상에서는 2개의 snmp v3 인자값이 모두 동일한 것으로 보이지만, 실제 데이터베이스 상에서는 2개의 snmp v3 인자값이 서로 다름. (버그로 추정)

    ▶ 데이터베이스에 저장된 잘못된 snmp 인증 정보로 인한 데이터 수집 불가 현상


    3. 문제 해결 방법

    여러가지 해결 방법이 있으나 가장 깔끔하다고 생각하는 방식으로 진행

     

    1) 작업 순서

    (1) snmp item 항목 중 새로 생성된 snmp interface를 기반으로 하는 item을 기존 snmp interface 항목 기반으로 수동 변경

    (2) 새로운 snmp interface 삭제

    ※ snmp interface를 삭제하기 위해서는 해당 snmp interface를 통해 만들어진 item이 하나도 없어야 함

    ※ 문제 snmp interface 기반의 item 들이 모두 기존 snmp interface 기반으로 변경된 것을 확인 후, 문제 snmp interface 삭제 작업 진행 필수

     

    2) 작업 상세

    ** 아래 작업은 zabbix 데이터베이스에 대한 작업 내용으로, psql 로 접속하든, 터미널에서 cmd로 처리하든 상관없으나 zabbix 계정 + zabbix 데이터베이스에 대해 명령어 입력을 기본으로 함. 

     

    (1) snmp interface 수동 변경 작업

     

    ▶ 각 인터페이스별 snmp interface 정보 및 새로 생성된 snmp interface 정보 확인

    =# select a.interfaceid,a.hostid,a.ip,b.version,b.securityname,b.securitylevel,b.authpassphrase,b.privpassphrase,b.authprotocol,b.privprotocol from interface a inner join interface_snmp b on a.interfaceid=b.interfaceid;

     - 특정 ip에 대한 정보를 확인하려면 끝에 where a.ip='호스트IP' 를 추가하여 쿼리

     - 다음 단계를 위해 결과값 중 hostid와 interfaceid 확인 필수

     

    ▶ item 항목 중 새로운 snmp interfaceid를 참조하는 item 확인

    =# select itemid,hostid,name,key_,interfaceid from items where hostid=호스트ID and interfaceid=인터페이스ID;

     - 인터페이스ID는 새로 생성된 interfaceid 값을 사용하여 쿼리

     - 아래 예시와 같이 의도한 데이터만 쿼리 되었는지 확인

     

    ▶ 쿼리된 결과 중 interfaceid를 정상적인 interfaceid로 업데이트

    ※ 혹시 몰라서 해당 작업을 진행할 때 zabbix server는 잠시 stop 해두고 작업했으나 running 상태에서 작업해도 큰 문제는 없음. 

    =# update items SET interfaceid=정상인터페이스ID where hostid=호스트ID and interfaceid=문제인터페이스ID

     - 정상인터페이스ID = 기존에 존재하던 인터페이스 ID

     - 문제인터페이스ID = 새로 생성된 인터페이스 ID

     - 아래 예시와 같이 정상적으로 작업되었는지 확인

     - 나머지 호스트에 대해서도 동일한 작업 진행

     - 모든 작업 완료 후 zabbix 서버 활성화 -> 모든 snmp 연결 정상화 확인


    (2) 문제 snmp interface 삭제

     

    ▶ 작업 후 문제 snmp 인터페이스의 remove 버튼 활성화 여부 확인

     - remove 버튼이 활성화되지 않는 경우 해당 snmp interface를 참조하는 item 항목이 남아있다는 의미로, 다시 한 번 데이터베이스 자료를 확인하여 업데이트되지 않은 항목이 있는지 확인 필요 

     

    ▶ remove 버튼을 눌러 문제 snmp interface 삭제 

     


     

    작업 후 모든 snmp 연결 상태가 정상으로 돌아왔습니다. 

    저는 zabbix 버전 업그레이드라는 특수한 상황에서 발생한 버그 때문에 귀찮고 복잡한 작업을 하게 되었지만...

     

    zabbix를 막 설치한 후거나 좀 더 간단한 상황에서는 zabbix_server.conf 설정 중 Timeout 설정을 변경하여 해결 가능 하다고도 하니 아래 내용을 참고하는 것도 하나의 방법일 듯 합니다. 

     

    https://www.zabbix.com/documentation/2.2/manual/appendix/items/unreachability

     

    9 Unreachable/unavailable host settings [Zabbix Documentation 2.2]

     

    www.zabbix.com

     

    zabbix 모니터링 시스템을 운용하실 때는 이런 버그 때문이라도 frontend 활용법 뿐만 아니라, zabbix 데이터베이스 구조 및 기본적인 DB 관리 능력이 필요합니다. 

     

    귀찮고 복잡하더라도 간단하게나마 익혀보시길 바랍니다. 

    감사합니다.


    ※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다. 

    반응형

    댓글