Рост SendingReply и Apache умирает на 5 мин

S
На сайте с 07.03.2013
Offline
56
1034

Столкнулся с проблемой работы Апача и не могу понять первостепенных причин такого поведения Апача.

Веб-сервер в обычной схеме: nginx+apache+mysql. Иногда от Zabbix приходят оповещения, что апач упал, начинаю разбираться м на графиках вижу следующее:

Видно, что резко выростает SendingReply и в какой-то момент ../status-info видимо перестаёт отдавать Забиксу инфо о себе и Забикс считает, что апач упал.

При этом нагрузка на CPU тоже резко выростает:

Не могу понять, что является первопричиной, рост SendingReply грузит CPU или наоборот некая нагрузка на CPU приводит к росту SendingReply на Апаче? Как понять?

Происходит это в разное время и не часто, но уже стало доставать, хочется разобраться в причине.

На nginx при это обычная ошибка:

2016/11/17 07:51:15 [error] 15251#15251: *178279600 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 2.2.2.2, server: site.ru, request: "GET /user/ HTTP/1.1", upstream: "http://127.0.0.1:8080/user/", host: "www.site.ru"

В error_log Apache, нет ничего о его падении.

Никаких резких скачков посетителей в этот момент на сайте нет, это происходило утром когда посещаемость минимальна. Буквально 5-10 req\sec

[umka]
На сайте с 25.05.2008
Offline
456
#1

Slowloris?

В access_log загляните.

Лог в помощь!
S
На сайте с 07.03.2013
Offline
56
#2
'[umka:
;14783180']Slowloris?
В access_log загляните.

в acces логах nginx вполне релевантные запросы приходили в это время, но уже получали 499 ответ

23.7.59.6 - - [17/Nov/2016:07:42:52 +0300] "GET /user/ HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Linux; Android 5.0; SAMSUNG SM-N9005 Build/LRX21V) AppleWebKit/537.36 (KHTML,like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36"

насчет slowloris даже не знаю, знаю это:

Что самое неприятное, Slowlori атака не оставляет никаких следов, кроме огромного количества открытых cоединений со статусом ESTABLISHED. Не будет никаких записей даже в access_log-е.

как его обнаружить?

[umka]
На сайте с 25.05.2008
Offline
456
#3
saloed:
в acces логах nginx

Так у вас падает nginx или apache?

---------- Добавлено 18.11.2016 в 11:33 ----------

saloed:
как его обнаружить?

В принципе, да, учитывая, что логгирование происходит после завершения соединения, а апач именно "падает", то в лог ничего не попадёт.

Если атака с одного IP-адреса, можно мониторить количество одновременных соединений с одного IP, и рубить фаерволом, если их больше определённого количества.

Если с разных, смотрите mod_reqtimeout.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4

Может nginx долго держит соединение? У апатча keepalive выключен?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
S
На сайте с 07.03.2013
Offline
56
#5

"Падает" Апач, т.е. перестаёт отвечать. При этом через 5 мин все само нормализуется.

Ошибка 499 в логах nginx говорит о тот, что клиент не дождался ответа и закрыл соединение, т.е. Апач не ответил вовремя.

По поводу колич. соед. с одного ip, для этого настроен nginx, что бы отсекать такие запросы

limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 50;



---------- Добавлено 18.11.2016 в 12:48 ----------

LEOnidUKG:
Может nginx долго держит соединение? У апатча keepalive выключен?

Да на апаче выключен,

KeepAlive Off

nginx через 300сек закрывает соединение

location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_read_timeout 300;
proxy_buffer_size 16k;
proxy_buffers 32 16k;

limit_req zone=dynamic burst=200;
limit_conn addr 50;
limit_req_log_level notice;
limit_req_status 429;
N
На сайте с 06.05.2007
Offline
419
#6

Что тут происходит? Почему вы не рассматриваете само приложение и смотрите только в zabbix?

Приложение внутри может зависать как угодно затейливо, а вы пытаетесь в самой классической схеме nginx+apache+mod_php найти какой-то изъян.

Заббикс это круто, но можно же и просто в top и mysql посмотреть.

Кнопка вызова админа ()

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий