СНАМП
![]() | |
Разработчик(и) | Bytex Solutions OÜ |
---|---|
Первоначальный выпуск | 7 июля 2016 г. |
Стабильная версия | 2.0.0
/ 24 июля 2017 г |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | Программное обеспечение для управления кластером Мониторинг системы |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | щелчок |
SNAMP — это открытым исходным кодом программная платформа с кроссплатформенная для телеметрии, отслеживания и управления эластичностью. [ 1 ] распределенных приложений.
Обзор
[ редактировать ]Основная цель SNAMP — упростить управление микросервисами, работающими внутри контейнеров или программно-определяемых центров обработки данных . Обеспечивает сбор телеметрических данных (метрик и событий), сквозное отслеживание запросов между программными компонентами с учетом топологии путей связи, автоматическое масштабирование узлов кластера в зависимости от рабочей нагрузки, унификацию источников телеметрических данных.
Телеметрия
[ редактировать ]Метрики, события и проверки работоспособности используются для контроля состояния и работоспособности сервисов в ИТ-среде. Сбор осуществляется в режиме реального времени. Собранные данные можно использовать для визуализации в виде диаграмм, сигнализации и выполнения действий по техническому обслуживанию. Можно настроить наблюдатель важной метрики. Наблюдатель определяет ограничения и условия, применяемые к значению метрики. Если значение выходит за пределы диапазона, наблюдатель может выполнить триггер. Триггер может быть представлен в виде рукописного сценария с использованием одного из поддерживаемых языков сценариев, например Groovy . Это может быть действие по обслуживанию (перезапуск узла сервера) или уведомление (оповещение по электронной почте).
Кроме того, можно расширить функциональность существующего инструмента мониторинга, используемого на предприятии. SNAMP может собирать данные телеметрии и предоставлять их внешнему миру, используя любую комбинацию поддерживаемых протоколов. Например, данные, собранные по протоколу JMX , могут быть доступны через SNMP и получены другим программным обеспечением для управления сетью, таким как Nagios .
Отслеживание запросов
[ редактировать ]Отслеживание запросов позволяет определять пути связи между службами и собирать важные показатели, такие как время ответа, количество запросов в секунду, доступность, масштабируемость и т. д. Эти данные помогают устранять проблемы с задержкой и масштабируемостью, а также находить узкие места. Кроме того, пути связи можно визуализировать в виде графика в веб-консоли, что позволяет наблюдать за всем ИТ-ландшафтом в режиме реального времени.
Приложения должны быть оснащены средствами передачи необходимой информации в SNAMP. Библиотеки инструментов можно найти на Maven Central. [ 2 ] используя идентификатор группы io.snamp.instrumentation
. Также поддерживаются сторонние библиотеки инструментов:
Управление эластичностью
[ редактировать ]Менеджер эластичности — это компонент SNAMP, который отвечает за автоматическую подготовку и вывод из эксплуатации узлов кластера. Его поведение основано на политиках масштабирования . С кластером можно связать еще одну политику масштабирования. Процесс принятия решения основан на нечеткой логике . Каждая участвующая политика имеет свой собственный вес голосов, и менеджер эластичности периодически выполняет процесс голосования. Результат голосования представляет собой одно из трех возможных решений: увеличить кластер, сжать кластер или ничего не делать. Политика масштабирования может основываться на проверке работоспособности, рукописном сценарии или диапазоне значений, связанных с некоторой метрикой. Благодаря гибкости процесса принятия решений можно определить несколько стратегий масштабирования:
- Стратегия All-of означает, что все политики масштабирования должны голосовать за изменение мощности кластера.
- Стратегия Any-of означает, что хотя бы одна из политик масштабирования может голосовать за изменение мощности кластера.
- Стратегия большинства означает, что большинство политик масштабирования могут голосовать за изменение мощности кластера.
Более того, также можно назначить собственные веса для каждой политики масштабирования.
Менеджер эластичности использует базовую платформу управления кластером или облаком для отправки команд о подготовке и выводе из эксплуатации. Это может быть OpenStack , Kubernetes или VMware ESXi .
Веб-консоль
[ редактировать ]Веб-консоль используется для визуализации метрик в виде диаграмм, визуализации путей связи между сервисами в виде графика, монитора кластера. Использование веб-консоли для визуализации является дополнительной функцией, поскольку SNAMP обеспечивает интеграцию с другими инструментами, такими как Grafana . [ 5 ]
Архитектура
[ редактировать ]Платформа SNAMP состоит из следующих нескольких компонентов:
- Коннектор ресурсов [ 6 ] отвечает за связь между SNAMP и сервисом в ИТ-среде. Он инкапсулирует протокол связи и унифицированно предоставляет данные телеметрии для SNAMP. Например, JMX Connector можно использовать для управления приложениями Java с помощью протокола JMX .
- шлюз [ 7 ] предоставляет информацию, собранную от всех соединителей ресурсов, наружу, используя выбранный указанный протокол. Например, шлюз SNMP может предоставлять данные телеметрии, полученные от всех соединителей ресурсов, используя SNMP . протокол
- супервайзер [ 8 ] контролирует группу ресурсов. Он обеспечивает мониторинг работоспособности, управление эластичностью, автоматическое обнаружение ресурсов.
Сочетание различных шлюзов и соединителей ресурсов позволяет преобразовывать данные телеметрии из одного протокола в другой. Каждый компонент можно настроить с помощью сценариев на основе Groovy . Можно написать собственный компонент, используя любой JVM -совместимый язык.
Функции
[ редактировать ]- Интеграция со сторонними инструментами визуализации и мониторинга: Grafana, [ 5 ] Нагиос , СШ
- Сбор данных телеметрии с использованием следующих протоколов и технологий: Spring Actuator, спаны OpenZipkin (из Kafka и HTTP), HTTP , JMX , Modbus , rsh , stdout из инструментов командной строки, SSH.
- Предоставление данных телеметрии с использованием следующих протоколов: XMPP (чат-бот), SNMPv2/SNMPv3 , HTTP , NRDP , NSCA, [ 9 ] syslog , потоковая передача данных в InfluxDB
- Управление эластичностью поддерживает OpenStack Senlin. [ 10 ]
- Классные сценарии
Альтернативы
[ редактировать ]Альтернативное решение может быть построено с использованием комбинации программных компонентов:
- Мониторинг и визуализация: Nagios , Grafana [ 5 ]
- Сквозная трассировка: OpenZipkin [ 3 ]
- Автоматическое масштабирование: AWS обеспечивает автоматическое масштабирование. [ 11 ] ресурсов EC2 , OpenStack Heat
Джолокия [ 12 ] предлагает мост JMX-to-HTTP, который может быть размещен внутри отдельной программы Java, Java EE сервера приложений или среды OSGi .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Менеджер эластичности» . Cloudcomputingpatterns.github.io . Проверено 4 января 2018 г.
- ^ «Поисковая система центрального хранилища» . search.maven.org . Проверено 4 января 2018 г.
- ^ Jump up to: а б «OpenZipkin · Распределенная система трассировки» . zipkin.io . Проверено 4 января 2018 г.
- ^ «Apache HTrace – О программе» . htrace.incubator.apache.org . Проверено 4 января 2018 г.
- ^ Jump up to: а б с «Grafana — Открытая платформа для аналитики и мониторинга» . Графана Лабс . Проверено 4 января 2018 г.
- ^ «Коннектор ресурсов» . bytex.solutions . Архивировано из оригинала 5 сентября 2017 года . Проверено 4 января 2018 г.
- ^ «Ворота» . bytex.solutions . Архивировано из оригинала 5 сентября 2017 года . Проверено 4 января 2018 г.
- ^ «Наблюдатель» . snamp.io . Архивировано из оригинала 5 сентября 2017 года . Проверено 4 января 2018 г.
- ^ Галстад, Итан. «NSCA — Приемник сервисных чеков Nagios — Nagios Exchange» . Обмен.nagios.org . Проверено 4 января 2018 г.
- ^ «Документация OpenStack: Добро пожаловать в документацию Senlin!» . docs.openstack.org . Проверено 4 января 2018 г.
- ^ «Документация по автомасштабированию» . Amazon Веб-сервисы, Inc. Проверено 4 января 2018 г.
- ^ Хасс, Роланд. «Джолокия – Обзор» . jolokia.org . Проверено 4 января 2018 г.
Внешние ссылки
[ редактировать ]- Домашняя страница SNAMP. Архивировано 5 сентября 2017 г. на Wayback Machine.
- Исходный код
- Документация заархивирована 31 октября 2016 г. на Wayback Machine.
- Бесплатные программные проекты
- Кроссплатформенное бесплатное программное обеспечение
- Бесплатное программное обеспечение, написанное на Java (языке программирования).
- Бесплатное программное обеспечение для управления сетью
- Бесплатное программное обеспечение для облачных вычислений
- Программное обеспечение, использующее лицензию Apache