Сначала немного предыстории. Мы запускаем IIS 7 в Windows 2008. У нас работает около 250 веб-сайтов на сервер, каждый из которых находится в собственном пуле приложений.
Мне нужен способ отслеживать каждый пул приложений на предмет сбоев и зависаний и отправлять оповещение по электронной почте, если пул приложений не отвечает более, чем, скажем, 2 минуты.
Я подумал о том, чтобы виртуальный каталог был сопоставлен с каждым сайтом со страницей ASP.NET, которую мы могли бы опросить через нашу существующую систему мониторинга (HostMonitor).
Есть ли у кого-нибудь еще опыт в этой области?
В IIS 7 вы можете использовать appcmd для мониторинга пула приложений. Например, вы вводите команду в CMD, как показано ниже:
appcmd list apppool / state: запущено
Затем вы должны получить список запущенных пулов приложений.
Я предлагаю вам написать сценарий с помощью appcmd и поместить его как задачу планировщика. Затем вы можете получать уведомления по электронной почте при сбое некоторых пулов приложений.
Счетчики производительности доступны по пулу приложений (в APP_POOL_WAS
) и ASP.NET Apps
(последний, по версии .NET).
Сюда входят такие вещи, как время работы пула приложений, количество запросов в секунду и много другой информации.