Перейти к содержимому

Фотография

Система мониторинга веб-приложений


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 18

#1 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 16 ноября 2005 - 13:01

Всем доброго времени суток! :sad:
Просмотрел темы форума, но не нашел достаточного ответа на вопрос. Постараюсь его по возможности полно и доступно сформулировать.
В общих чертах: как реализовать мониторинг распределенной web системы? Имеется ввиду ЧТО мониторить, КАКИМИ инструментами и КАК обрабатывать собираемую информацию.
Теперь более подробно.
Есть веб-приложение, распределенная база данных с частью бизнес логики, веб-сервер с большей частью бизнес логики, сеть и клиенты с браузерами.
Все это функционирует, но иногда возникают всякие неприятности: падает производительность, недоступность страниц, падения серверов и т.д. Все это вызывает жалобы пользователей и админов приложения, претензии к разработчикам. Однако, как показывает практика, не всегда причина в приложении. Это могут быть настройки веб-сервера, недостаток его ресурсов (например, по какой-либо причине место на диске заканчивается), проблемы с базой данных, наконец, просто сеть дает сбои или просто все пользователи в пятницу после обеда пришли и начали быстро делать репорты...
Разумеется часть описанных причин не имеют отношение к разработчикам, но это приходится доказывать. Невыгодно это и заказчикам, так как они не имеют возможности вовремя узнать, а почему же произошла та или иная неполадка, и как избежать ее появления в будущем. Еще обиднее то, что части этих неполадок могло бы вообще не быть, если вовремя отследить ухудщение какого-либо показателя (например, заполнение диска на сервере).
Поэтому возникла необходимость в созданиии системы мониторинга, которая выполняла бы следующие функции:
1. сбор параметров работы системы, достаточный для своевременного выявления неполадок в системе
2. визуализация этих параметров в едином интерфейсе
3. автоматическое определение по собранным параметрам неполадок, требующих вмешательства
4. автоматическое отслеживание отклонений параметров, которые могут привести к дальнейшим неполадкам
5. автоматическое своевременное оповещение по п.4 и 5
Это требования, которые тоже не абсолютные. Они никем не озвучены. Поэтому тоже обсуждаемы. Может что-то лишнее, а возможно, что-то упущено.

Возвращаясь к вопросу:
1. Как разрешить хотя бы первый пункт? То есть какие параметры необходимо собирать, чтобы по ним принять решение о существующей уже неполадке или о тенденции к ней?
2. Какими инструментами собирать эти параметры?
3. А еще более нетревиально - как обрабатывать собранные данные, чтобы не упустить неполадку и не поднять ложную тревогу (хотя бы с заданной вероятностью)?

Требования к инструментам тоже есть: бесплатные или условно бесплатные. То есть, не суперкомерческие продукты да тысячи долларов. Причина банальна: это нужно не столько заказчику, сколько исполнителю...

Интересны будут любые мнения по данной теме. Может кто-то сталкивался с подобными проблемами, как-то решали их. Какие требования могут быть к подобным системам мониторинга. Наверняка есть готовые инструменты, насколько они подходят для решения такой задачи.

Заранее спасибо всем, принявшим участие в обсуждении!
  • 0

#2 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 16 ноября 2005 - 22:25

1. То есть какие параметры необходимо собирать, чтобы по ним принять решение о существующей уже неполадке или о тенденции к ней?

Для распределенной web системы мониторить надо в первую очередь end user experience. С этого все начинается. Потому что если конечные пользователи недовольны, у них что-то не работает или работает слишком медленно, то лучше знать об этом, по возможности, заранее. И знать наверняка, что проблема общая для приложения, а не связана с компом конкретного юзера. В дополнение к мониторингу end user experience надо мониторить всю системную инфраструктуру, поддерживающую клиентские приложения - network, db/app/web servers и т.д. Тогда вы получаете полную картину того, что происходит с вашим распределенным приложением - и с точки зрения конечного пользователя, и с точки зрения инфраструктуры. В этом случае у вас есть возможность осознанно диагностировать причины, из-за которых пользователи испытывают проблемы при работе с системой.

2. Какими инструментами собирать эти параметры?

Теми, которые умеют мониторить то, что вам нужно. И умеют предоставлять информацию в удобном вам виде.

А еще более нетревиально - как обрабатывать собранные данные, чтобы не упустить неполадку и не поднять ложную тревогу (хотя бы с заданной вероятностью)?

Если речь идет о готовом инструменте, то обязательно будет некое хранилище всей собираемой в процессе мониторинга информации (обычно это DB) + какие-то средства генерации отчетов/графов, чтобы представить данную информацию в нужном формате. Когда поднимать тревогу, а когда еще не надо можно настраивать через разнообразные alerts с подходящими thresholds. Ну например, если уж вы упомянули проблему с дисковым пространством, то можно мониторить disk space и установить alert, чтобы все заинтересованные стороны были оповещены (email/sms/pager), если на диске остается свободного места меньше 10%.

Я в ответе на ваш второй вопрос намеренно не упомянул никакие конкретные инструменты. Специализируясь как раз на мониторинге систем, я в курсе того какие готовые решения существуют на этом рынке. Но это все серьезные коммерческие продукты. Вообще мониторинг это отдельное направление в IT, в котором крутятся гораздо большие деньги, чем, например, на рынке средств автоматизированного тестирования. Посему найти что-то бесплатное и одновременно полезное будет очень и очень трудно (если вообще возможно). В вашем случае, скорее всего придется создавать что-то свое, используя какие-нибудь небольшие и простенькие тулы/утилитки, которые могут делать какие-то отдельные куски того, что вам нужно. Типа Windows PerfMon. Это обычный прием, когда денег на готовый продукт нет.

Ну или если заказчик теряет серьезные деньги в результате того, что система временами не работает или работает медленно, при этом не удается быстро найти и устранить источник проблем, то тогда можно обсуждать с заказчиком построение системы мониторинга, в которой будут заинтересованы обе стороны и на которую найдутся деньги.
  • 0
Дмитрий Шевченко

HP Software

#3 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 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. какие критерии для оценки состояния каждого объекта применять? То есть как обрабатывать собранные данные? Может есть какие-то устоявшиеся алгоритмы?

Буду благодарен любой информации!
  • 0

#4 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 17 ноября 2005 - 21:48

Ну если уж речь зашла о наших продуктах для мониторинга, то следовало бы упомянуть Business Availability Center (BAC). SiteScope это всего лишь часть (хотя и очень важная), предназначенная главным образом для мониторинга только системной инфраструктуры (в этом смысле не имеет никакого значения архитектура системы - web приложения мониторятся или обычные Windows desktop приложения). Хотя исторически будучи отдельным продуктом SiteScope и сейчас вполне успешно может использоваться автономно (без привязки к остальным компонентам BAC) и имеет возможности по мониторингу web приложений с точки зрения конечного пользователя (семейство URL monitors). Правда в большей степени это будет все же end user experience только с точки зрения availability, а не availability+performance, как в случае использования VUGen'овских скриптов.

Если вы не знаете что мониторить для БД и сети, то значит самое время поговорить с DBA & network guys. Как правило, они всегда используют какие-нибудь вендорные или иные утилитки, чтобы отслеживать состояние вверенного им хозяйства. В любом случае они в курсе того, за чем именно нужно следить, чтобы держать руку на пульсе.

Критерии для оценки состояния объекта - здравый смысл и опыт тех людей, которые с этими объектами работают. В любом случае вам не удастся сразу же "попасть в десятку" и угадать со всеми thresholds для всех объектов. Построение надежной системы мониторинга вообще сам по себе процесс итеративный и требующий постоянного тюнинга и feedback'a от заинтересованных сторон.
  • 0
Дмитрий Шевченко

HP Software

#5 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 18 ноября 2005 - 08:39

Дмитрий, я правильно понял Вашу точку зрения, что мониторинг - это в каждом конкретном случае "уникальная" процедура? И нельзя вывести каких-либо общих шаблонов и подходов к решению данной задачи?
Тогда как это реализовано в том же самом ВАС? Получается, там тоже, грубо говоря, дается возможность собирать какие-то параметры системы, а задача принятия решения о ее сосотоянии возлагается на "оператора"? Значит там нет алгоритмов или моделей, позволяющих автоматизировать наблюдение за системой?
  • 0

#6 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 18 ноября 2005 - 13:39

а задача принятия решения о ее сосотоянии возлагается на "оператора"? Значит там нет алгоритмов или моделей, позволяющих автоматизировать наблюдение за системой?

Просмотр сообщения


На оператора возлагается не задача принятия решения, а задача выбора (точнее, настройки) критерия для автоматического принятия решения. А как Вы по другому себе это представляете? Все системы разные, и критерии для алертов так же разные.
  • 0
Best regards,
Майк.

#7 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 18 ноября 2005 - 16:42

посмотрите на Big Brother
  • 0
Andrey Yegorov. Изображение

#8 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 18 ноября 2005 - 20:05

Дмитрий, я правильно понял Вашу точку зрения, что мониторинг - это в каждом конкретном случае "уникальная" процедура? И нельзя вывести каких-либо общих шаблонов и подходов к решению данной задачи?

Каждая мониторинговая среда по-своему уникальна, но это не означает что нельзя создать и использовать общие шаблоны и подходы. Скажем, шаблоном для мониторинга любого сервера будет мониторинг CPU, Memory и Disk Space. Если задача конкретизируется и речь идет о web серверах, на которых бежит IIS, то к шаблону можно добавить мониторинг состояния IIS Admin сервиса. Ну и так далее, идея, я думаю, понятна. В том же упомянутом вами SiteScope есть возможность использования Solution Templates (уже готовых наборов мониторов с предустановленными thresholds для Oracle, WebLogic, MS Exchange, WebSphere и т.д.)

Тогда как это реализовано в том же самом ВАС? Получается, там тоже, грубо говоря, дается возможность собирать какие-то параметры системы, а задача принятия решения о ее сосотоянии возлагается на "оператора"? Значит там нет алгоритмов или моделей, позволяющих автоматизировать наблюдение за системой?

A как вы себе представляете автоматизированное наблюдение за системой? Данные с определенной периодичностью собираются со всех устройств. Это автоматизируется. Собираемые данные могут анализироваться на соответствие заранее определенным thresholds (не знаете какие значения для них установить - оставьте default'ные на первое время, потом подправите). Это тоже автоматизируется. Уведомление всех заинтересованных лиц о наличии проблемы тоже автоматизируется. Рассылка всем желающим разнообразных отчетов о состоянии системы за любые периоды времени автоматизируется. Если система мониторинга достаточно продвинутая, то даже кое-какие действия (типа перезапуска упавшего сервиса и т.п.) по восстановлению работоспособности системы тоже можно автоматизировать. Что еще вы бы хотели автоматизировать?
  • 0
Дмитрий Шевченко

HP Software

#9 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 18 ноября 2005 - 20:18

посмотрите на Big Brother

Действительно посмотрите. Тем более, что у него есть бесплатная версия, что вы сейчас и ищете. Заодно познакомитесь с противоположным и более распространенным подходом к мониторингу (agent-based) в сравнении с agentless мониторингом в SiteScope.
  • 0
Дмитрий Шевченко

HP Software

#10 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 18 ноября 2005 - 20:26

посмотрите на Big Brother

Просмотр сообщения



еще вспомнил - Microsoft Operations Manager. :smile:
  • 0
Andrey Yegorov. Изображение

#11 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 18 ноября 2005 - 20:51

еще вспомнил - Microsoft Operations Manager:blush:

Ну это уже совсем небесплатно :smile: Можно и IBM Tivoli и HP OpenView и BMC Patrol вспомнить :focus:
  • 0
Дмитрий Шевченко

HP Software

#12 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 18 ноября 2005 - 22:41

еще вспомнил - Microsoft Operations Manager:focus:

Ну это уже совсем небесплатно :smile:

Просмотр сообщения


у многих есть подписка на MSDN :)
не дающая, впрочем, права использования софта в коммерческих целях.
  • 0
Andrey Yegorov. Изображение

#13 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 21 ноября 2005 - 10:17

Спасибо всем за советы!
Погружаюсь в изучение инструментария... :acute:
Еще продолжу тему, как немного ознакомлюсь. :victory:
  • 0

#14 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 09 декабря 2005 - 15:36

А вот такой вопрос к знатокам:
кто-нибудь пытался прикрутить SiteScope 7.8 к мониторингу WebLogic 8.1.x.x ?
А то никак не хочет... Может он вообще под эту версию не заточен?
  • 0

#15 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 09 декабря 2005 - 16:22

A кто-нибудь пытался прикрутить SiteScope 7.8 к мониторингу WebLogic 8.1.x.x ?

Где вы только такое старье (7.8) откопали? :crazy: Уж точно не у Mercury :blush:

Поддержка 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.
  • 0
Дмитрий Шевченко

HP Software

#16 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 23 декабря 2005 - 09:30

Ладно, с SiteScope я пока успокоился :dirol:
Теперь вот осваиваю BigBrother, появились вопросы. Может кто прикручивал его и знает:
1. в каком хранилище ВВ хранит собранные данные?
2. реально ли вытащить эти данные, чтоб использовать ВВ как составляющую для мониторинга инфраструктуры в своей системе мониторинга?
3. правильно ли я понимаю, что ВВ не позволяет проверять performance приложения с точки зрения пользователя? Только доступность отдельных страниц?
4. сервер ВВ ставится на сервер приложения или на выделенную машину для мониторинга? А клиенты - на любые интересующие узлы (пользовательские машины, сервер, сервер БД...)?

Заранее спасибо за помощь!
  • 0

#17 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 23 декабря 2005 - 09:34

Вот набрел на аналогичный инструмент: Nagios - Network and system monitor.
Это GNUшная штука, потому тоже бесплатная, но вот умеет ли она мониторить Windows? Пока информации об этом не нашел, только для UNIXoff вроде...
Может у кого есть информация про этот инструмент? Буду очень благодарен за помощь! :dirol:
  • 0

#18 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 23 декабря 2005 - 18:12

3. правильно ли я понимаю, что ВВ не позволяет проверять performance приложения с точки зрения пользователя? Только доступность отдельных страниц?

Понимаете правильно.
  • 0
Дмитрий Шевченко

HP Software

#19 Сэм

Сэм

    Постоянный участник

  • Members
  • PipPipPip
  • 212 сообщений
  • ФИО:Сергей Минаев
  • Город:Москва


Отправлено 26 декабря 2005 - 13:22

А можно сделать как-нибудь, чтоб ВВ мог выполнить логин? И тогда уже проверять доступность страниц?
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных