Apache недавно использовал увеличенный ЦП во время простоя

Я уже довольно давно использую сервер Ubuntu 14.04 со стандартным стеком LAMP и получаю от системы ежедневные отчеты о средней загрузке процессора по электронной почте. Долгое время это по большей части сообщало о времени простоя ЦП в 90-е годы (это слегка загруженный сервер).

Примерно месяц или около того назад, это изменилось, и теперь сервер сообщает о времени простоя больше 80-х, чем 90-х. top показывает, что apache является потребителем большей части ЦП:

top - 00:20:43 up 39 days, 22:34,  1 user,  load average: 0.34, 0.41, 0.39
Tasks: 165 total,   2 running, 163 sleeping,   0 stopped,   0 zombie
%Cpu(s): 10.0 us,  0.7 sy,  0.0 ni, 89.2 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:   6110180 total,  5500892 used,   609288 free,   232448 buffers
KiB Swap:        0 total,        0 used,        0 free.  3502368 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
16235 www-data  20   0  503848  77680  41564 S   8.3  1.3   0:04.28 apache2
16124 www-data  20   0  506624  86688  47888 S   8.0  1.4   0:06.23 apache2
16351 www-data  20   0  506456  79224  41364 S   7.3  1.3   0:01.54 apache2
16301 www-data  20   0  506356  78908  41156 S   7.0  1.3   0:02.93 apache2
16102 www-data  20   0  507116  87292  48272 S   6.6  1.4   0:06.88 apache2
 1343 mysql     20   0 2670112 540216   8308 S   2.7  8.8 988:08.92 mysqld
16354 www-data  20   0  503248  76144  40636 S   1.3  1.2   0:01.29 apache2
16100 www-data  20   0  507016  80436  41524 S   1.0  1.3   0:07.12 apache2

Я немного почесал голову над этим, чтобы определить, какое изменение я мог сделать, чтобы вызвать это. Веб-трафик не увеличился в течение этого периода времени (на самом деле он был ниже, чем обычно), и я могу сидеть и смотреть apachetop , не показывающий ничего особенного, в то время как вышеупомянутый верхний вывод продолжается.

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

Затем мне пришло в голову, что это, возможно, было где-то рядом в те же сроки, в которые я установил mod_security на сервере. Я' С тех пор я запускал это в режиме наблюдения. Я отключил это сегодня вечером и перезапустил apache, но, похоже, это изменение не повлияло на нагрузку.

Кто-нибудь может подсказать, как я могу определить, чем занят apache? В настоящее время это не является серьезной проблемой, но я хотел бы понять это, прежде чем это станет одним!

1
задан 22 February 2017 в 02:41
1 ответ

Оказывается, какой-то индюк в Чили несколько раз в секунду опрашивал xmlrpc.php на сайте WordPress, за которым я не следил с помощью apachetop. Блокировка неправильного IP-адреса решила проблему!

На случай, если кто-то снова придет сюда посмотреть, я использовал mod_status, чтобы разобраться в этом. В частности, с установленным и включенным mod_status я включил путь / server-status на одном из моих виртуальных хостов следующим образом (заменив текущим общедоступным IP-адресом моего клиентского ПК. ):

<VirtualHost *:443>
    ServerName myhost.com
    ...
    <Location /server-status>
            SetHandler server-status
            Require ip <my-current-ip>
    </Location>
    ...
</VirtualHost>

затем посетил https://myhost.com/server-status , чтобы получить полное представление о веб-трафике в системе. Это довольно быстро выявило основной объем трафика, поступающего в скрипт xmlrpc.php на рассматриваемом виртуальном хосте.

Оттуда я проследил журналы доступа для этого виртуального хоста и смог увидеть схему активности и исходный IP-адрес. Затем нужно было заблокировать IP-адрес с помощью ufw следующим образом:

sudo ufw insert 1 deny from <the-bad-ip>

Примечание: использование 'insert 1' в этой команде гарантирует, что оно применяется перед любыми правилами 'default allow' в конфигурации брандмауэра, например для портов 80 и 443, которые в остальном делают фильтр почти бесполезным, как шоколадный чайник!

0
ответ дан 4 December 2019 в 05:11

Теги

Похожие вопросы