У нас есть несколько (арендованных) выделенных серверов у провайдера в Нидерландах. Все работает без сбоев, и большинство наших виртуальных серверов имеют высокое время безотказной работы (99,99%). За исключением одного сервера, что для нас головная боль.
Это веб-сервер со следующими характеристиками:
CentOS Linux release 7.0.1406 (Core)
Kernel 3.10.0-123.el7.x86_64
Apache/2.4.12 with mod_ruid2
PHP 5.4.38 (cli)
mysql Ver 15.1 Distrib 5.5.41-MariaDB, for Linux (x86_64) using readline 5.1
All compiled by DirectAdmin 1.48.3
Вчера вечером, второй раз за месяц, наш мониторинг показал, что сервер недоступен через ping или HTTP. Это произошло 04.10.2019. Из-за сбоя в работе нашего провайдера VoIP мы были проинформированы только через час, что позже предоставит мне интересную информацию.
Когда я проверил, сервер действительно отключился, соединение было невозможно. Я вошел в систему на панели управления нашего провайдера и попытался подключиться к VPS, открыв консоль, но получил только сообщение об ошибке: Connection Refused. Следующий шаг: отправка сигнала перезагрузки на VPS через панель управления нашего продайвера. Подождав пару минут, подключение по-прежнему невозможно. Я снова попытался перезагрузиться, но ничего не вышло. Я не хотел больше ждать и позвонил в крайнем случае: принудительная перезагрузка VPS (выключение его жестким способом, а затем повторная загрузка). После этого сервер сразу же заработал, в 05.15.
Я зашел на сервер, чтобы открыть messages
журнал. Там я нашел нормальные правила журнала до 04.10.2019. Потом был перерыв, до 05.15. На сервере не было никаких правил журнала между моментом выхода из строя и моментом повторного включения. Я проверил все остальные журналы: exim, журналы доступа и ошибок apache, почтовые журналы и т. Д., Но в каждом файле журнала был точно такой же пробел: между 04.10 и 05.15.
Еще кое-что я заметил:
DirectAdmin создает системные сообщения в файле с именем /usr/local/directadmin/data/admin/tickets.list. После перезагрузки сервера все билеты до 05.15 исчезли. Это очень странно, поскольку удаление билетов при перезагрузке или выключении - это ненормальное поведение.
Directadmin ежеминутно проверяет с помощью задания cron на наличие атак грубой силы в журналах сервера. Он создает системное сообщение каждую минуту, если обнаруживает атаку грубой силы в последнюю минуту. Обычно в сообщении упоминается один или два IP-адреса. Когда сервер снова заработал, сразу было создано сообщение с 25+ IP-адресами. Это может быть бессмысленно, но я этого не понимаю. Это означало бы, что задание cron перестало работать до того, как сервер вышел из строя, или это означало бы, что сервер зарегистрировал атаки методом перебора, когда он был отключен (и задание cron в это время не запускалось). Оба сценария не имеют смысла. Я решил, что должен упомянуть об этом, так как это одна из немногих вещей, которые я могу заметить.
Согласно нашим наблюдениям, до простоя не было значительного увеличения ЦП, памяти, ввода-вывода или задержки.
Впервые за долгое время я совершенно не понимаю, где искать причину простоя. Любая помощь будет принята с благодарностью!