Утро началось как обычно: с проверки всех систем, отчетов и просмотра графиков заббикса. Вот только с последним возникла непонятная проблема. Он установлен на сервере, который является по совместительству веб-сервером для различных проектов. При попытке открыть страницу, браузер висел в ожидании каждого графика, да и страницы в целом секунд по 20-25. Просмотр вывода top не показал никакой нагрузки, ну т.е. совсем никакой — la около 0,3, загрузка процессора около 5%. Количество процессов вменяемое, никаких лимитов не превышено.
После сбора расширенных логов с nginx (именно он стоит в качестве фронтенда) с временем генерации страниц, становится понятно, что затык не в нем, а ниже, т.е. либо в апаче, либо в mysql. Лог медленных запросов mysql тоже не сказал ничего насчет таблиц заббикса. Сервер «боевой», поэтому включать дебаг и смотреть чем же занят все это время httpd и почему же загрузка процессора им равна 0 никак нельзя. Процессы httpd висят в состоянии kqread и не грузят процессор совсем.
Что удивительнее, другие сайты/приложения работали без задержек. Пришлось судорожно вспоминать все изменения, которые вносились в конфигурацию сервера в последнее время. Из всего, что было сделано, на ум приходила только настройка форвардинга в DNS-сервере bind. С целью уменьшения задержек и объема внешнего трафика, был настроен форвардинг запросов DNS на сервер провайдера. Казалось бы, причем тут DNS? Но после отключения форвардинга и перезапуска dns-сервера, заббикс загрузился быстро, как ни в чем не бывало. Подробный анализ всех логов выявил таймауты при обращении к DNS провайдера… Но как? Как это могло повлиять на загрузку веб-интерфейса заббикса?..