У меня есть веб-сервер, на котором работает несколько веб-сайтов виртуальных хостов.
Время от времени будет возникать ситуация, когда нагрузка на сервер становится очень высокой или сетевой ответ на веб-сервере очень медленный, и я хотел бы иметь способ просмотра текущей активности на моих виртуальных хостах, чтобы узнать, возможно, за это отвечает конкретный домен (например, DOS и т. д.)
Какие существуют инструменты, которые могут показать мне эту информацию?
(обратите внимание, у меня около 10 IP-адресов на веб-сервере, но все они используются многими доменами / виртуальными хостами)
mod_status
отлично для этого, если включить ExtendedStatus
он показывает вам список URL-адресов, которые в настоящее время обслуживаются. Перемена ExtendedStatus
выключен, когда он вам не нужен, так как это вызывает (в крайних случаях слегка заметное) снижение производительности.
Вы пробовали Apachetop
http://www.webta.org/projects/apachetop/
(Более подробная статья об этом здесь: http://www.howtogeek.com/howto/ubuntu/monitor-your-website-in-real-time-with-apachetop/
Если вы уже используете определенную технологию мониторинга, вам следует упомянуть об этом.
Но в целом вы можете поместить следующие директивы в каждый блок виртуального хоста, чтобы отдельно регистрировать этот виртуальный хост, а затем просто анализировать журналы тем, что вы используете:
ErrorLog /var/log/httpd/foo_vhost-error_log common
CustomLog /var/log/httpd/foo_vhost-access_log common
Затем просто отрегулируйте поворот журнала, если вам нужно. Затем, если у вас были ежедневные журналы, вы могли бы сделать что-нибудь очень простое, чтобы получить совпадения, например, перебирать журналы и вызывать wc -l
по каждому из них.