Система мониторинга веб-приложений
#1
Отправлено 16 ноября 2005 - 13:01
Просмотрел темы форума, но не нашел достаточного ответа на вопрос. Постараюсь его по возможности полно и доступно сформулировать.
В общих чертах: как реализовать мониторинг распределенной web системы? Имеется ввиду ЧТО мониторить, КАКИМИ инструментами и КАК обрабатывать собираемую информацию.
Теперь более подробно.
Есть веб-приложение, распределенная база данных с частью бизнес логики, веб-сервер с большей частью бизнес логики, сеть и клиенты с браузерами.
Все это функционирует, но иногда возникают всякие неприятности: падает производительность, недоступность страниц, падения серверов и т.д. Все это вызывает жалобы пользователей и админов приложения, претензии к разработчикам. Однако, как показывает практика, не всегда причина в приложении. Это могут быть настройки веб-сервера, недостаток его ресурсов (например, по какой-либо причине место на диске заканчивается), проблемы с базой данных, наконец, просто сеть дает сбои или просто все пользователи в пятницу после обеда пришли и начали быстро делать репорты...
Разумеется часть описанных причин не имеют отношение к разработчикам, но это приходится доказывать. Невыгодно это и заказчикам, так как они не имеют возможности вовремя узнать, а почему же произошла та или иная неполадка, и как избежать ее появления в будущем. Еще обиднее то, что части этих неполадок могло бы вообще не быть, если вовремя отследить ухудщение какого-либо показателя (например, заполнение диска на сервере).
Поэтому возникла необходимость в созданиии системы мониторинга, которая выполняла бы следующие функции:
1. сбор параметров работы системы, достаточный для своевременного выявления неполадок в системе
2. визуализация этих параметров в едином интерфейсе
3. автоматическое определение по собранным параметрам неполадок, требующих вмешательства
4. автоматическое отслеживание отклонений параметров, которые могут привести к дальнейшим неполадкам
5. автоматическое своевременное оповещение по п.4 и 5
Это требования, которые тоже не абсолютные. Они никем не озвучены. Поэтому тоже обсуждаемы. Может что-то лишнее, а возможно, что-то упущено.
Возвращаясь к вопросу:
1. Как разрешить хотя бы первый пункт? То есть какие параметры необходимо собирать, чтобы по ним принять решение о существующей уже неполадке или о тенденции к ней?
2. Какими инструментами собирать эти параметры?
3. А еще более нетревиально - как обрабатывать собранные данные, чтобы не упустить неполадку и не поднять ложную тревогу (хотя бы с заданной вероятностью)?
Требования к инструментам тоже есть: бесплатные или условно бесплатные. То есть, не суперкомерческие продукты да тысячи долларов. Причина банальна: это нужно не столько заказчику, сколько исполнителю...
Интересны будут любые мнения по данной теме. Может кто-то сталкивался с подобными проблемами, как-то решали их. Какие требования могут быть к подобным системам мониторинга. Наверняка есть готовые инструменты, насколько они подходят для решения такой задачи.
Заранее спасибо всем, принявшим участие в обсуждении!
#2
Отправлено 16 ноября 2005 - 22:25
Для распределенной web системы мониторить надо в первую очередь end user experience. С этого все начинается. Потому что если конечные пользователи недовольны, у них что-то не работает или работает слишком медленно, то лучше знать об этом, по возможности, заранее. И знать наверняка, что проблема общая для приложения, а не связана с компом конкретного юзера. В дополнение к мониторингу end user experience надо мониторить всю системную инфраструктуру, поддерживающую клиентские приложения - network, db/app/web servers и т.д. Тогда вы получаете полную картину того, что происходит с вашим распределенным приложением - и с точки зрения конечного пользователя, и с точки зрения инфраструктуры. В этом случае у вас есть возможность осознанно диагностировать причины, из-за которых пользователи испытывают проблемы при работе с системой.1. То есть какие параметры необходимо собирать, чтобы по ним принять решение о существующей уже неполадке или о тенденции к ней?
Теми, которые умеют мониторить то, что вам нужно. И умеют предоставлять информацию в удобном вам виде.2. Какими инструментами собирать эти параметры?
Если речь идет о готовом инструменте, то обязательно будет некое хранилище всей собираемой в процессе мониторинга информации (обычно это DB) + какие-то средства генерации отчетов/графов, чтобы представить данную информацию в нужном формате. Когда поднимать тревогу, а когда еще не надо можно настраивать через разнообразные alerts с подходящими thresholds. Ну например, если уж вы упомянули проблему с дисковым пространством, то можно мониторить disk space и установить alert, чтобы все заинтересованные стороны были оповещены (email/sms/pager), если на диске остается свободного места меньше 10%.А еще более нетревиально - как обрабатывать собранные данные, чтобы не упустить неполадку и не поднять ложную тревогу (хотя бы с заданной вероятностью)?
Я в ответе на ваш второй вопрос намеренно не упомянул никакие конкретные инструменты. Специализируясь как раз на мониторинге систем, я в курсе того какие готовые решения существуют на этом рынке. Но это все серьезные коммерческие продукты. Вообще мониторинг это отдельное направление в IT, в котором крутятся гораздо большие деньги, чем, например, на рынке средств автоматизированного тестирования. Посему найти что-то бесплатное и одновременно полезное будет очень и очень трудно (если вообще возможно). В вашем случае, скорее всего придется создавать что-то свое, используя какие-нибудь небольшие и простенькие тулы/утилитки, которые могут делать какие-то отдельные куски того, что вам нужно. Типа Windows PerfMon. Это обычный прием, когда денег на готовый продукт нет.
Ну или если заказчик теряет серьезные деньги в результате того, что система временами не работает или работает медленно, при этом не удается быстро найти и устранить источник проблем, то тогда можно обсуждать с заказчиком построение системы мониторинга, в которой будут заинтересованы обе стороны и на которую найдутся деньги.
#3
Отправлено 17 ноября 2005 - 11:10
Я тоже специально с начала не высказывал собственных соображений на счет решения задачи. Теперь вот хочу озвучить.
Насколько мне известно, действительно, есть готовый продукт от Mercury - SiteScope, вроде как безагентный мониторинг инфраструктуры веб-приложения. Мониторит практически все: БД, сервер приложениея, веб-сервер, сетевое оборудование и файрвол. Только вот еще не уточнил, мониторит ли end user experience. Но скорее всего да. Сейчас как раз качаю триал-версию, буду пробовать, смотреть что да как у него.
Понимаю, что сейчас я не заинтересую никого данной штукой, даже не спрашиваю его цену. Потому и буду в дальнейшем реализовать все то же, но за меньшие деньги. Отсюда все вопросы.
Я планирую реализовать мониторинг в следующем виде.
1. end user experience (средствами LoadRunner)
2. параметры веб-сервера (треды занятые и пустые, число открытых сессий, свободный хип, число сокетов)
3. параметры сервера (свободное место на диске)
4. параметры базы данных (?)
5. параметры сети (?)
Для каждого из 5 объектов по собранным параметрам будет приниматься решение о его состоянии. А так же будет приниматься решение о состоянии системы в целом, по всей совокупности параметров.
Вопрос вот какой остается:
1. Какие параметры необходимо собирать по пунктам (4-5)?
2. какими инструментами (бесплатными или условно бесплатными) собирать данные по пунктам (2-4), чтоб можно было писать их в логи и/или базу
3. какие критерии для оценки состояния каждого объекта применять? То есть как обрабатывать собранные данные? Может есть какие-то устоявшиеся алгоритмы?
Буду благодарен любой информации!
#4
Отправлено 17 ноября 2005 - 21:48
Если вы не знаете что мониторить для БД и сети, то значит самое время поговорить с DBA & network guys. Как правило, они всегда используют какие-нибудь вендорные или иные утилитки, чтобы отслеживать состояние вверенного им хозяйства. В любом случае они в курсе того, за чем именно нужно следить, чтобы держать руку на пульсе.
Критерии для оценки состояния объекта - здравый смысл и опыт тех людей, которые с этими объектами работают. В любом случае вам не удастся сразу же "попасть в десятку" и угадать со всеми thresholds для всех объектов. Построение надежной системы мониторинга вообще сам по себе процесс итеративный и требующий постоянного тюнинга и feedback'a от заинтересованных сторон.
#5
Отправлено 18 ноября 2005 - 08:39
Тогда как это реализовано в том же самом ВАС? Получается, там тоже, грубо говоря, дается возможность собирать какие-то параметры системы, а задача принятия решения о ее сосотоянии возлагается на "оператора"? Значит там нет алгоритмов или моделей, позволяющих автоматизировать наблюдение за системой?
#6
Отправлено 18 ноября 2005 - 13:39
а задача принятия решения о ее сосотоянии возлагается на "оператора"? Значит там нет алгоритмов или моделей, позволяющих автоматизировать наблюдение за системой?
На оператора возлагается не задача принятия решения, а задача выбора (точнее, настройки) критерия для автоматического принятия решения. А как Вы по другому себе это представляете? Все системы разные, и критерии для алертов так же разные.
Майк.
#8
Отправлено 18 ноября 2005 - 20:05
Каждая мониторинговая среда по-своему уникальна, но это не означает что нельзя создать и использовать общие шаблоны и подходы. Скажем, шаблоном для мониторинга любого сервера будет мониторинг CPU, Memory и Disk Space. Если задача конкретизируется и речь идет о web серверах, на которых бежит IIS, то к шаблону можно добавить мониторинг состояния IIS Admin сервиса. Ну и так далее, идея, я думаю, понятна. В том же упомянутом вами SiteScope есть возможность использования Solution Templates (уже готовых наборов мониторов с предустановленными thresholds для Oracle, WebLogic, MS Exchange, WebSphere и т.д.)Дмитрий, я правильно понял Вашу точку зрения, что мониторинг - это в каждом конкретном случае "уникальная" процедура? И нельзя вывести каких-либо общих шаблонов и подходов к решению данной задачи?
A как вы себе представляете автоматизированное наблюдение за системой? Данные с определенной периодичностью собираются со всех устройств. Это автоматизируется. Собираемые данные могут анализироваться на соответствие заранее определенным thresholds (не знаете какие значения для них установить - оставьте default'ные на первое время, потом подправите). Это тоже автоматизируется. Уведомление всех заинтересованных лиц о наличии проблемы тоже автоматизируется. Рассылка всем желающим разнообразных отчетов о состоянии системы за любые периоды времени автоматизируется. Если система мониторинга достаточно продвинутая, то даже кое-какие действия (типа перезапуска упавшего сервиса и т.п.) по восстановлению работоспособности системы тоже можно автоматизировать. Что еще вы бы хотели автоматизировать?Тогда как это реализовано в том же самом ВАС? Получается, там тоже, грубо говоря, дается возможность собирать какие-то параметры системы, а задача принятия решения о ее сосотоянии возлагается на "оператора"? Значит там нет алгоритмов или моделей, позволяющих автоматизировать наблюдение за системой?
#9
Отправлено 18 ноября 2005 - 20:18
Действительно посмотрите. Тем более, что у него есть бесплатная версия, что вы сейчас и ищете. Заодно познакомитесь с противоположным и более распространенным подходом к мониторингу (agent-based) в сравнении с agentless мониторингом в SiteScope.посмотрите на Big Brother
#10
Отправлено 18 ноября 2005 - 20:26
#11
Отправлено 18 ноября 2005 - 20:51
Ну это уже совсем небесплатно Можно и IBM Tivoli и HP OpenView и BMC Patrol вспомнитьеще вспомнил - Microsoft Operations Manager.
#12
Отправлено 18 ноября 2005 - 22:41
Ну это уже совсем небесплатноеще вспомнил - Microsoft Operations Manager.
у многих есть подписка на MSDN :)
не дающая, впрочем, права использования софта в коммерческих целях.
#13
Отправлено 21 ноября 2005 - 10:17
Погружаюсь в изучение инструментария...
Еще продолжу тему, как немного ознакомлюсь.
#14
Отправлено 09 декабря 2005 - 15:36
кто-нибудь пытался прикрутить SiteScope 7.8 к мониторингу WebLogic 8.1.x.x ?
А то никак не хочет... Может он вообще под эту версию не заточен?
#15
Отправлено 09 декабря 2005 - 16:22
Где вы только такое старье (7.8) откопали? Уж точно не у MercuryA кто-нибудь пытался прикрутить SiteScope 7.8 к мониторингу WebLogic 8.1.x.x ?
Поддержка WebLogic 8.x была добавлена в SiteScope 7.8.1.2. Сам монитор работает через соответствующий weblogic.jar файл с WL сервера. Кстати, SiteScope 7.8.1.2 имеет memory leak bug с WebLogic монитором. Патч доступен на CSO сайте. А вообще рекомендуется сделать upgrade хотя бы до версии 7.9.0.0.
#16
Отправлено 23 декабря 2005 - 09:30
Теперь вот осваиваю BigBrother, появились вопросы. Может кто прикручивал его и знает:
1. в каком хранилище ВВ хранит собранные данные?
2. реально ли вытащить эти данные, чтоб использовать ВВ как составляющую для мониторинга инфраструктуры в своей системе мониторинга?
3. правильно ли я понимаю, что ВВ не позволяет проверять performance приложения с точки зрения пользователя? Только доступность отдельных страниц?
4. сервер ВВ ставится на сервер приложения или на выделенную машину для мониторинга? А клиенты - на любые интересующие узлы (пользовательские машины, сервер, сервер БД...)?
Заранее спасибо за помощь!
#17
Отправлено 23 декабря 2005 - 09:34
Это GNUшная штука, потому тоже бесплатная, но вот умеет ли она мониторить Windows? Пока информации об этом не нашел, только для UNIXoff вроде...
Может у кого есть информация про этот инструмент? Буду очень благодарен за помощь!
#18
Отправлено 23 декабря 2005 - 18:12
Понимаете правильно.3. правильно ли я понимаю, что ВВ не позволяет проверять performance приложения с точки зрения пользователя? Только доступность отдельных страниц?
#19
Отправлено 26 декабря 2005 - 13:22
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных