Возникают ситуации при администрировании проектов, когда тот или иной сайт “упал”, что подтверждает мониторинг. Исходные данные, которые доступны: точное время “падение”, длительность и сам сайт. Что делать?
Базовые первичные вещи, которые нужно выполнить:
- Проверить сетевую доступность до сайта пингом и убедиться, что сервер включен и\или нет задержек;
- Изучить код ошибки недоступности сайта в браузере, чтобы было от чего отталкиваться;
- Проверить состояние основных сервисов (nginx и httpd + mysqld);
- Если база данных на отдельном сервере, проверить его сетевую доступность;
Если же всё кажется работающим и не упавшим, нужно заглянуть немного дальше.
- Проверить утилизацию сервера в текущий момент времени и во время падения, свободное место.
CPU, RAM, HDD – основные показатели, которые можно проверить как с самого сервера, так и с Zabbix за нужный период времени. Если замечена возросшая активность, например, ОЗУ – смотреть в момент недоступности /var/log/messages и искать процесс, который ядро системы принудительно уничтожило для освобождения памяти; - Если по ресурсам и утилизации всё ОК, то смотреть логи Apache до момента “падения” сервера, в период и после. Искать что-то подозрительное. Обычно это какой-то запрос, который “висит” в очереди и таких накапливается несколько. Часто бывает, что в логе /var/log/httpd/access.log идет временной интервал записей по порядку согласно выполнения, а потом появляются “запоздалые” запросы, которые должны быть выполнены какое-то время назад. На них и нужно обращать внимание. Может быть это неоптимальный запрос к БД;
- Проверить логи PHP, error лог веб-сервера.
Также стоит проверить сервер с БД:
- На предмет утилизации ресурсов;
- Посмотреть, не оказалось ли зависших запросов: show processlist;
- slow-лог MySQL.