ZBX_TCP_READ() failed: [4] Interrupted system call
Столкнулся с проблемой, после добавления 2-х нод на базе Centos 6 в систему мониторинга zabbix значительно выросли значения для zabbix busy poller и zabbix busy unreachable poller статистик. Для примера график:
Включив DebugLevel=4 на сервере увидел в логах ошибки:
1 2 3 4 |
13371:20150807:142850.682 Item [cento6node:system.cpu.util[,system]] error: Get value from agent failed: ZBX_TCP_READ() failed: [4] Interrupted system call 13357:20150807:142851.695 Item [cento6node:system.cpu.util[,user]] error: Get value from agent failed: ZBX_TCP_READ() failed: [4] Interrupted system call 13352:20150807:142852.258 Item [cento6node:vtundcheck] error: Get value from agent failed: ZBX_TCP_READ() failed: [4] Interrupted system call 13363:20150807:142853.446 Item [cento6node:system.localtime] error: Get value from agent failed: ZBX_TCP_READ() failed: [4] Interrupted system call |
При этом судя по дампу сетевого трафика zabbix агент просто не успевал ответить за 20 секунд, а это значение выставлено у меня в timeout. При этом запросы простейшие, такой ситуации просто не должно возникать.
Подозрение пало на проблемы в работе DNS серверов, либо какой-то внутренний баг в zabbix agent. При проверке выяснилось, что DNS сервера работают нормально, отвечают быстро, но проблема была решена добавлением записи со ссылкой на zabbix server в /etc/hosts.
Как альтернативу можно использовать вариант с заменой FQDN имени Zabbix сервера в конфигурационном файле агента на IP.
По факту у хостера видимо какое-то ограничение на количество запросов от клиента на получение IP для одного и того же домена. При этом сам zabbix агент делает тонну DNS запросов, по сути на каждый запрос на получение данных с него. Ждем когда закроют этот тикет, с 2011 года не закрыт.