본문 바로가기

Zabbix/trouble shooting

...item [item] on host [host] failed: first network error, wait for 15 seconds.

메시지: ...item [item] on host [host] failed: first network error, wait for 15 seconds.
 

원인

Zabbix Server(혹은 Proxy) 로그에서 발견되는 메시지로, Slow query... 및 insert 관련 로그를 다수 동반하는 데이터 수집 처리 병목 현상.
과도한 Zabbix Queue가 집계되며 Queue가 적재 경과 시간을 옮겨가며 무한 루프를 돌기 시작한다.
수집 서버는 아이템 값이 수신되지 않으면 갱신 간격 동안 수집을 대기하다가 갱신 간격 시간이 경과하면 다시 수집을 시도한 뒤 경과 시간을 계산하기 때문에, Queue 경과 시간이 무한 루프를 돌기 시작하면 'N분 이상' Queue에서 일시적으로 수가 급락하여 해소된 듯 보이나, 갱신 간격에 따른 경과 시간 변동일 뿐 해소되지 않는다.  
갑작스런 수집 데이터 및 Traffic 증가, 부족한 TCP Session으로 인해 Packet 전송을 처리하지 못해 발생한다.
Session 등 처리 리소스 수가 적은 것이 주 원인이다.


요구 사항

 
수집 서버의 시스템 커널 파라미터 재설정


 
1. TIME_WAIT 세션을 재사용하도록 설정
   

net.ipv4.tcp_tw_reuse = 1 

 
 
 
2. TCP Socket 상향 조정
 
시스템이 시작될 때 sysctl.conf 내용을 참조하여 시작되도록 vi로 편집하여 저장

# vi /etc/sysctl.conf 
net.ipv4.ip_local_port_range = Server -> Client 접속 세션이 많을 때 기존 값보다 상향 설정
net.ipv4.tcp_max_syn_backlog = Client -> Server 접속 세션이 많을 때 기존 값보다 상향 설정

 
구성 파일에서 즉시 로드하여 적용. -p 옵션 뒤 파일명을 지정해주지 않으면 default로 /etc/sysctl.conf가 로드 및 적용됨 

# sysctl -p

 


*참고: TCP Session 정보 확인
수집 서버 포트(10051)로 연결되는 세션 수 정보 확인

# netstat -an | grep tcp | awk '$4~/:10051/ {print $NF}' | sort | uniq -c

 
Clinet 포트(10050)로 연결되는 세션 수 정보 확인

# netstat -an | grep tcp | awk '$5~/:10050/ {print $NF}' | sort | uniq -c

 
 
*참고: 시스템 커널 파라미터 옵션

옵션설정기본값
net.ipv4.tcp_max_syn_backlogTCP 최대 SYN 대기열 크기 설정1024
net.ipv4.ip_local_port_range로컬 포트 범위 설정32768 - 60999