Буває, сайт гальмує або «лежить», а ти сидиш і гадаєш: сервер перевантажений чи просто застряг на якомусь запиті? Лізти в логи - довго. А Apache, виявляється, уже вміє показати свій стан живцем, однією сторінкою - треба лише ввімкнути. Називається це mod_status, а сторінка - /server-status.
Що потрібно зробити?#
Увімкнути в Apache модуль mod_status, відкрити сторінку /server-status і навчитись читати її цифри - скільки воркерів зайнято, скільки запитів за секунду і що сервер обробляє прямо зараз.
З чим працюю?#
| |
Свіжий Debian 13 і Apache з репозиторіїв (Apache/2.4.68, MPM event). Усе від root.
Що це взагалі таке?#
mod_status - вбудований модуль Apache, який віддає сторінку з живим станом сервера: скільки процесів-воркерів працює, а скільки простоює, що кожен із них робить цієї секунди, скільки всього оброблено запитів і з якою швидкістю. Такий собі htop, тільки для вебсервера.
У Debian він стоїть і вмикається за замовчуванням - перевірити легко:
| |
Вмикаємо по-людськи#
Конфіг уже лежить у /etc/apache2/mods-enabled/status.conf. За замовчуванням /server-status відкритий тільки з localhost (Require local) - і це правильно. Нам треба дві речі: увімкнути детальну статистику і (за потреби) дозволити доступ своїй мережі.
Детальну статистику по кожному запиту вмикає директива ExtendedStatus:
| |
А доступ до сторінки налаштовується в її <Location>:
| |
Перевіряємо конфіг і перечитуємо його без рестарту:
| |
Дивимось#
Найзручніший формат - машинний, з ?auto. Коротко й без HTML:
| |
| |
А якщо відкрити /server-status звичайним браузером - отримаєш ту саму інформацію, але вже людською табличкою. Ось вона, жива, під невеликим навантаженням (я відкрив її із сусідньої машини, бо дозволив доступ своїй мережі):

Що означають ці цифри#
- BusyWorkers / IdleWorkers - скільки воркерів зараз зайнято обробкою і скільки простоює. Якщо
Busyвперся у стелю, аIdle- нуль, сервер захлинається: нові запити стають у чергу. - Total Accesses / Total kBytes - скільки всього запитів оброблено і скільки відданого трафіку від старту.
- ReqPerSec / BytesPerSec - середня швидкість. Груба, «від старту», але для відчуття масштабу годиться.
- Scoreboard - найцікавіше: по символу на кожен слот воркера.
_чекає,Wвіддає відповідь,Rчитає запит,Kтримає keep-alive,Cзакриває,.- порожній слот. Один погляд - і видно, живий сервер чи задихається.
Не відкривай це у світ#
server-status - це карта нутрощів твого сервера: версії, кількість з’єднань, навіть URL-и, які зараз обробляються. Стороннім там робити нічого. Тримай Require local або Require ip на свою мережу - і нікого більше.
А ось формат ?auto - навпаки, твій друг для моніторингу: його зручно знімати експортером (наприклад, apache_exporter) і зганяти метрики в Prometheus, щоб бачити навантаження в динаміці, а не раз на день очима.
Одна директива, одна сторінка - і замість «та наче гальмує» ти бачиш рівно стільки, скільки треба: зайняті воркери, швидкість і що саме сервер жує прямо зараз.



