Предыстория: сервер Debian Stretch amd64 в облаке Google с Apache 2.4.25. Он запускает веб-сайт на основе PHP через proxy_fcgi в PHP-FPM. Серверная база данных — PostgreSQL 10. Пакеты Postgres были установлены из официального репозитория Postgres apt, все остальное — ваниль из репозиториев Debian. Есть перенаправление порта 80 на 443 с сертификатами Let's Encrypt. HTTP/2 и Brotli включены. Существует также обратный прокси-сервер для демона Server-Sent Event на том же сервере (https://github.com/vgno/ssehub).
Сервер работает более 2 лет, но в последние несколько месяцев возникает периодический сбой, когда сайт перестает отвечать на запросы. Обычно это проходит через пару минут. Я провел большой анализ журналов, и, похоже, это не связано с серверными процессами. Использование ЦП номинальное, использование памяти низкое, в логах Apache, PostgreSQL, FPM, syslog, ssehub ошибок нет. На сервере также установлен fail2ban, но для него также нет записей в журнале. Я добавил дополнительные диагностические журналы в Apache и FPM, чтобы проверять запросы, обработка которых занимает много времени, но это ничего не дало.
Вот вывод из iptables -L
:
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
f2b-sshd tcp -- в любом месте многопортовый порт ssh
DROP udp -- где угодно и где угодно udp dpt:l2f policy match dir in pol none
УДАЛИТЬ все -- везде где угодно ctstate INVALID
ПРИНЯТЬ все -- где угодно и где угодно ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ udp -- в любом месте многопортовый dports isakmp,ipsec-nat-t
ПРИНЯТЬ udp -- где угодно и где угодно udp dpt:l2f policy match dir в poli ipsec
УДАЛИТЬ udp -- где угодно udp dpt:l2f
Сеть FORWARD (политика ACCEPT)
целевая защита выбор источника назначения
УДАЛИТЬ все -- везде где угодно ctstate INVALID
ПРИНЯТЬ все -- где угодно и где угодно ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНИМАТЬ все -- в любом месте в любом месте
ПРИНЯТЬ все -- 192.168.42.0/24 192.168.42.0/24
ПРИНЯТЬ все -- где угодно 192.168.43.0/24 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНИМАТЬ все -- 192.168.43.0/24 где угодно
УДАЛИТЬ все -- в любом месте в любом месте
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
Цепочка f2b-sshd (1 ссылка)
целевая защита выбор источника назначения
RETURN all -- в любом месте в любом месте
Любые предложения по возможным причинам или вещам, которые я должен проверить? На данный момент единственной причиной, о которой я могу думать, является перегрузка сети, но это очень трудно доказать, поскольку это непостоянная проблема, и обычно она исчезает к тому времени, когда я узнаю об этом и начинаю проводить некоторые тесты. Кроме того, кажется удивительным, что у Google Cloud такие частые проблемы с сетью.Есть ли у Google какие-то правила формирования трафика, о которых я не знаю? Это сервер с очень низким трафиком, и проблема часто возникает в нерабочее время, когда сайт практически никто не использует.