Я хочу сделать это без каких-либо внешних
зависимостей.
Что, если ваш апач умрет? (Разделение проблем?)
Лично я использую (избыточно) Nagios для мониторинга самого оборудования, служб, и метрик приложений . Таким образом, я могу легко / автоматически составлять графики «запросов в секунду / пользователей в сети», «загрузка процессора / пользовательская активность X в секунду» и т. Д., Которые помогают во многом.
Написание плагинов для nagios действительно легко, также есть тысячи готовых скриптов на любом языке.
Мониторинг Apache
Я наблюдаю за Apache, извлекая необходимую информацию со страницы apache mod_status через плагин nagios.
Пример ответа плагина:
APACHE OK - 0.080 sec. response time, Busy/Idle 18/16, open 766/800, ReqPerSec 12.4, BytesPerReq 3074, BytesPerSec 38034
Мониторинг приложений
Я использовал mod_status в качестве примера для списка того, что вы хотите отслеживать.
Для нашего приложения у нас есть очень маленькая структура для плагинов Nagios, так что в основном каждая проверка nagios - это небольшой класс, который выполняет свою проверку кеша или базы данных и возвращает свое значение nagios (небольшой и простой скрипт командной строки).
больше примеров:
Memcache:
OK - consumption: 82.88% (106.1 MBytes/128.0 MBytes), connections: 2, requests/s: 10.99, hitrate: 95.2% (34601210/36346999), getrate: 50.1% (36346999/72542987)
Application feature #1 usage:
OK - last 5m: 22 last 24h: 655 ever: 26121
Application feature #2 usage:
OK - last 5m: 39 last 24h: 11011
Other applications metrics:
OK - users online: 556
Что я хочу сказать: расширить Nagios для мониторинга приложений очень просто.
С моей маленькой структурой, которая заняла у меня 3-4 часа, любая проверка, которую я добавляю, занимает у меня всего несколько минут.
Руководство по разработке плагина Nagios