OpenNMS — это бесплатная и открытая платформа сетевого мониторинга и управления сетями корпоративного уровня . Она разрабатывается и поддерживается сообществом пользователей и разработчиков, а также OpenNMS Group, предлагающей коммерческие услуги, обучение и поддержку.
Цель состоит в том, чтобы OpenNMS стала по-настоящему распределенной, масштабируемой платформой управления приложениями для всех аспектов модели управления сетью FCAPS , оставаясь при этом на 100% бесплатной и с открытым исходным кодом. В настоящее время основное внимание уделяется управлению отказами и производительностью .
Весь код, связанный с проектом, доступен по лицензии Affero General Public License .
Проект OpenNMS поддерживается Орденом Зеленого Поло.
Проект OpenNMS был начат в июле 1999 года Стивом Джайлсом, Брайаном Уивером и Люком Риндфусом и их компанией PlatformWorks. [2] Он был зарегистрирован как проект 4141 на SourceForge в марте 2000 года. [3] [4]
28 сентября 2000 года PlatformWorks была приобретена компанией Atipa, конкурентом VA Linux Systems из Канзас-Сити. [5] В июле 2001 года Atipa сменила название на Oculan. [6]
В сентябре 2002 года Oculan решила прекратить поддержку проекта OpenNMS. Тарус Балог, тогдашний сотрудник Oculan, покинул компанию, чтобы продолжить концентрироваться на проекте. [7]
В сентябре 2004 года Балог, Мэтт Брозовски и Дэвид Хастас основали The OpenNMS Group для предоставления коммерческих услуг и поддержки бизнеса вокруг проекта. Вскоре после этого был основан The Order of the Green Polo (OGP) для управления самим проектом OpenNMS. [8] Хотя многие члены OGP также являются сотрудниками The OpenNMS Group, она остается отдельной организацией.
OpenNMS написан на Java и, таким образом, может работать на любой платформе с поддержкой Java SDK версии 11 или выше. [9] Для большинства дистрибутивов Linux доступны предварительно скомпилированные двоичные файлы .
Помимо Java, для него требуется база данных PostgreSQL , хотя ведется работа по обеспечению независимости базы данных приложения за счет использования проекта Hibernate .
OpenNMS описывает себя как «платформу приложений для управления сетью». [10] Несмотря на то, что программное обеспечение было полезным после первой установки, оно было разработано с учетом возможности его гибкой настройки для работы в самых разных сетевых средах.
OpenNMS имеет четыре основные функциональные области.
OpenNMS основан на шине сообщений " публикация и подписка ". Процессы в программном обеспечении могут публиковать события, а другие процессы могут подписываться на них. Кроме того, OpenNMS может получать события в форме SNMP- ловушек, сообщений syslog , событий TL/1 или пользовательских сообщений, отправленных в виде XML на порт 5817.
События можно настроить для генерации сигналов тревоги. [11] В то время как события представляют собой историю информации из сети, сигналы тревоги можно использовать для создания корреляционного рабочего процесса (разрешение сигналов тревоги «вниз» при создании соответствующих сигналов тревоги «вверх») и выполнения «сокращения событий» путем представления нескольких идентичных событий в виде одного сигнала тревоги со счетчиком. Сигналы тревоги также могут генерировать собственные события, например, когда уровень сигнала тревоги повышается. Сигналы тревоги удаляются из системы с течением времени, в отличие от событий, которые сохраняются столько, сколько требуется.
Подсистема Alarm также может интегрироваться с различными системами обработки заявок на устранение неполадок, такими как Request Tracker , OTRS , Jira и Remedy.
Программное обеспечение также содержит Event Translator, с помощью которого входящие события могут быть дополнены дополнительными данными (например, данными о влиянии на клиентов) и преобразованы в новые события. [12]
События могут генерировать уведомления по электронной почте, SMS , XMPP и с помощью пользовательских методов оповещения.
Было показано, что OpenNMS может непрерывно обрабатывать 125 000 сообщений системного журнала в минуту. [13]
OpenNMS содержит расширенную систему подготовки для добавления устройств в систему управления. Этот процесс может происходить автоматически путем отправки списка или диапазона IP-адресов в систему (как IPv4 , так и IPv6 ). Устройства также могут быть явно добавлены в систему.
Базовой технологией для этой конфигурации является XML, поэтому пользователи могут либо использовать веб-интерфейс, либо автоматизировать процесс, создав сценарии создания файлов конфигурации XML.
Система обеспечения содержит адаптеры для интеграции с другими процессами внутри приложения и с внешним программным обеспечением, таким как динамический DNS- сервер и RANCID .
Процесс подготовки является асинхронным для масштабируемости и, как было показано, позволяет подготовить сети из более чем 50 000 отдельных устройств и сети из отдельных устройств с более чем 200 000 виртуальных интерфейсов каждое ( Juniper E320 ). [14]
Функции обеспечения сервиса OpenNMS позволяют определять доступность сетевых сервисов. Типы мониторов варьируются от самых простых ( ICMP- пинги, проверки портов TCP ) до сложных (мониторинг последовательности страниц, [15] Mail Transport Monitor [16] ). Информация об отключениях хранится в базе данных и может использоваться для создания отчетов о доступности.
Помимо возможности мониторинга сетевых служб с точки зрения сервера OpenNMS, можно развернуть удаленные опросчики для измерения доступности из удаленных мест.
Papa John's Pizza использует программное обеспечение для удаленного опроса OpenNMS в каждом из почти 3000 своих розничных магазинов для измерения доступности централизованных сетевых ресурсов. [17]
Сбор данных о производительности существует в OpenNMS для ряда сетевых протоколов, включая SNMP, HTTP , JMX , WMI , XMP, XML, NSClient и JDBC . Данные можно собирать, хранить, отображать в виде графика и проверять на соответствие пороговым значениям.
Процесс является высокомасштабируемым, и один экземпляр OpenNMS собирает 1,2 миллиона точек данных через SNMP каждые пять минут. [18]
Доступ к OpenNMS осуществляется через веб-интерфейс пользователя, созданный на Jetty . Интеграция с JasperReports создает высокоуровневые отчеты из базы данных и собранных данных о производительности.
Выпуск 33.0.10 содержит ряд обновлений безопасности, исправлений ошибок и улучшений.
OpenNMS был зарегистрирован на SourceForge в марте 2000 года как проект 4141, примерно через два месяца после NetSaint, который позже стал Nagios. Так что он существует уже некоторое время, едва ли не дольше, чем любой другой инструмент управления с открытым исходным кодом.