Назад | Перейти на главную страницу

Инструменты развертывания и мониторинга для среды java / tomcat / linux

Я разработчик много лет, но у меня нет большого опыта в операциях, поэтому извиняюсь, если это новый вопрос.

В моей компании мы запускаем веб-сервис, написанный на Java, в основном на основе веб-сервера Tomcat. У нас есть два центра обработки данных примерно по 10 хостов в каждом. Хосты бывают нескольких типов: Dababase, Tomcats, некоторые автономные java-процессы, серверы memcached. Все хосты - Linux CentOS

До сих пор, при выпуске новой версии в производство, мы использовали набор собственных сценариев оболочки, которые копируют файлы jar / wars и перезапускают котов.

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

Мы ищем инструмент, фреймворк, решение, которое обеспечило бы следующее:

Кто-нибудь может поделиться своим опытом? Предложите несколько инструментов?

Спасибо!

Отказ от ответственности, я менеджер сообщества Zenoss.

Зенос охватывает все ваши пункты, кроме управления конфигурацией, но вы можете использовать его вместе с другой системой.

  • Поддерживает указанный список технологий (java, tomcat, linux и т. Д.)
    • Безусловно, ZenJMX ZenPack добавляет мониторинг JMX, который можно использовать для Tomcat или любого другого приложения с поддержкой JMX.
  • Обеспечивает простое развертывание на разных этапах, включая контроль качества и производство
    • Zenoss имеет множество производственных состояний, поэтому вы можете определить, как вы хотите контролировать свои устройства, будь то «Тестирование», «Производство», «Предварительная подготовка», «Техническое обслуживание» или «Списание».
  • Обеспечивает управление конфигурацией. Например. установка свойств сервера (какой URL подключения каждого хоста и т. д.), server.xml или конфигурации контекста и т. д.
    • Вы можете использовать Zenoss вместе с Puppet, Cfengine и т. Д.
  • Мониторинг. Если мы сможем получить мониторинг в одном пакете, это будет хорошо. Если нет, то это еще один инструмент, который мы можем использовать для мониторинга наших серверов.
    • Для этого нужен Зеносс.
  • Желательно открытый исходный код с тоннами документации;)

Я определенно рекомендую попробовать Сервер TC из SpringSource. Это упрощает управление и диагностику экземпляров Tomcat на предприятии, и вы получаете большую поддержку от ребят, участвующих в проекте Tomcat. Впрочем, все это имеет свою цену .. :(

я слышал Гиперический подходит для приложений Java.

Нет личного опыта, извините.

Ну, по крайней мере частично, вы можете использовать собственный jVisualVM Java.

Он включен в каждую установку java JDK ...

Просто загляните в папку lib, она тут же.

Splunk + Nagios + Nagios JMX Plugin или Log4j могут подойти ...

Также оформить заказ MuleSoft Сервер Tcat который обеспечивает простое развертывание, управление конфигурацией, надежные перезапуски и диагностику для Tomcat.

Отказ от ответственности: я работаю в MuleSoft.

Для управления конфигурацией, Повар - отличный инструмент, который может настраивать различные аспекты на разных типах серверов Linux, а также может использоваться для управления конфигурацией и, возможно, развертывания ваших приложений. Я настоятельно рекомендую использовать Chef или что-то подобное (Puppet и т. Д.) Для управления вашими серверами.

Также рассмотрите что-то вроде Hudson, который вы можете использовать для непрерывной интеграции (создание и запуск автоматических тестов каждый раз, когда кто-то фиксирует изменение источника), а также для развертывания сборок ваших приложений на серверах (dev, stage, live и т. д.). Его необходимо использовать вместе со сценариями (Ant, Maven, оболочка и т. Д.) Для фактического развертывания программного обеспечения, но это полезная часть головоломки.

То, что меня интересует, но я еще не вникал, это Облачные инструменты, который представляет собой набор инструментов для автоматизации развертывания приложений в стеке Tomcat / MySQL. Он предназначен для использования в облаках IaaS (например, Amazon EC2), но его также можно использовать и на обычных серверах, возможно, с небольшим количеством смазки. Главный потенциальный недостаток заключается в том, что на данный момент он не очень активно развивается.

Для мониторинга и развертывания на одном сервере Tomcat пси-зонд это возможное решение. Это форк Lambda Probe.

Что касается мониторинга инфраструктуры дыр, я согласен с ответом Nagios.

Альтернативой jVisualVM является jconsole, также входящая в состав JDK.

Я думаю, что для управления инфраструктурой дыр нет никакого способа обойтись без каких-либо настраиваемых сценариев, написанных ли они на bash, perl, ant, марионеточном манифесте или чем-то еще. Но вы можете скрыть их сложность за такими инструментами, как уже упомянутые hudson, puppet, cfengine, chef, ...