Гид по технологиям

Установка OpenNMS с Docker на Ubuntu 20.04

• 5 min read • Сеть • Обновлено 23 Nov 2025
Установка OpenNMS с Docker на Ubuntu 20.04
Установка OpenNMS с Docker на Ubuntu 20.04

Экран запуска OpenNMS

OpenNMS — бесплатная, с открытым исходным кодом и корпоративного уровня система управления сетью. Она автоматически обнаруживает устройства в сети и мониторит сервисы. Основана на Java; для сбора данных использует SNMP и JMX.

  • SNMP — протокол для удалённого опроса сетевых устройств (однострочное определение).
  • JMX — Java Management Extensions, интерфейс мониторинга JVM и приложений.

OpenNMS можно установить на Windows, Linux/Unix, macOS и Solaris. В продукте есть функции Provisioning, мониторинг сервисов, управление событиями, построение графиков и измерение производительности. Существуют две редакции: Horizon (оперативный мониторинг) и Meridian (удлинённая поддержка и стабильность).

Что в этом руководстве

  • Развёртывание OpenNMS Horizon с помощью Docker и docker-compose.
  • Проверка работы сервисов и доступ к веб-интерфейсу.
  • Рекомендации по безопасности, бэкапу и отладке.
  • Альтернативные варианты развертывания и чек-листы для ролей.

Требования

  • Сервер с Ubuntu 20.04.
  • Доступ root или пользователь с sudo.
  • Открытые порты (по умолчанию) 8980, 8101, 61616, 5432.

Подготовка системы

Обновите пакеты и установите зависимости:

apt-get update -y
apt-get upgrade -y

Установите дополнительные инструменты:

apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y

Установка Docker и Docker Compose

Рекомендуется брать последнюю версию Docker из официального репозитория Docker.

Добавьте GPG-ключ:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Добавьте репозиторий Docker:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Установите Docker и docker-compose:

apt-get update -y
apt-get install docker-ce docker-ce-cli containerd.io docker-compose -y

Проверьте статус Docker:

systemctl status docker

Проверка версий:

docker -v
docker-compose -v

Развёртывание OpenNMS (docker-compose)

Создайте рабочую папку и файл docker-compose.yml:

mkdir opennms
cd opennms
nano docker-compose.yml

Вставьте следующий compose (сохраните как docker-compose.yml):

version: '3'

volumes:
  data-postgres: {}
  data-opennms: {}

services:
  database:
    image: postgres:12
    container_name: database
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    volumes:
      - data-postgres:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U postgres" ]
      interval: 10s
      timeout: 30s
      retries: 3

  horizon:
    image: opennms/horizon:26.1.1
    container_name: horizon
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_HOST=database
      - POSTGRES_PORT=5432
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - OPENNMS_DBNAME=opennms
      - OPENNMS_DBUSER=opennms
      - OPENNMS_DBPASS=opennms
    volumes:
      - data-opennms:/opt/opennms/share/rrd
      - ./overlay:/opt/opennms-overlay
    command: ["-s"]
    ports:
      - "8980:8980/tcp"
      - "8101:8101/tcp"
      - "61616:61616/tcp"
    healthcheck:
      test: [ "CMD", "curl", "-f", "-I", "http://localhost:8980/opennms/login.jsp" ]
      interval: 1m
      timeout: 5s
      retries: 3

Запустите контейнеры в фоне:

docker-compose up -d

Проверьте контейнеры:

docker ps -a

Вы должны увидеть контейнеры database (Postgres) и horizon (OpenNMS).

Доступ к веб-интерфейсу

OpenNMS слушает на порту 8980. Откройте в браузере:

http://your-server-ip:8980

Вы перейдёте на страницу входа.

Веб-интерфейс OpenNMS — страница входа

По умолчанию используйте admin / admin. После входа откроется дашборд:

Панель управления OpenNMS (дашборд)

Чтобы добавить узел для мониторинга, нажмите плюс в правой части интерфейса и следуйте форме:

Добавление узла в OpenNMS

Заполните атрибуты узла:

Атрибуты узла

Укажите параметры аутентификации (SNMP, SSH и т.д.):

Настройки аутентификации узла

После успешной провизии вы увидите подтверждение:

Узел успешно добавлен

Статус узла и события доступны через Info → Nodes:

Мониторинг сервера в OpenNMS — статус узла и события

Базовая проверка после запуска

  1. docker ps — контейнеры работают.
  2. docker logs horizon — нет критических ошибок в логах.
  3. Веб-интерфейс доступен на порту 8980.
  4. Узел провизован и отображается в списке Nodes.

Рекомендации по безопасности

  • Измените учётные данные admin сразу после первого входа.
  • Ограничьте доступ к порту 8980 через брандмауэр (ufw/iptables) только для доверенных IP.
  • Не храните пароли в явном виде в репозиториях. Используйте менеджер секретов или переменные окружения в защищённом хранилище.
  • В продакшне рассмотрите TLS-терминацию (reverse proxy: Nginx/Traefik) перед OpenNMS.

Резервное копирование и восстановление

  • Резервируйте том data-opennms (RRD, конфигурация) и data-postgres (данные БД).
  • Для PostgreSQL можно использовать pg_dump/pg_basebackup.
  • Планирование: ежедневные бэкапы метрик, еженедельные полные снимки, хранение вне кластера.

Отладка и частые проблемы

  • Контейнер зависает в состоянии health: starting — подождите и проверьте логи:
docker logs horizon
docker logs database
  • Ошибки подключения к БД — проверьте переменные OPENNMS_DB* и сетевое имя контейнера database.
  • Если веб-интерфейс не загружается, убедитесь, что порт 8980 открыт и healthcheck возвращает 200.

Альтернативы и варианты развёртывания

  • Установка из пакета (DEB) на Ubuntu — если вы не хотите Docker.
  • Kubernetes — запуск OpenNMS в k8s с PersistentVolume и StatefulSet для DB.
  • Bare-metal/VM — классический развёртывание для высокопроизводительных сред.

Когда выбрать Docker: быстрое тестирование и изоляция. Когда не выбирать: если необходима тонкая интеграция с системными сервисами или требуется поддержка корпоративных расширений без контейнеризации.

План вывода в продакшн (мини-методология)

  1. Тестовая среда: разверните в Docker и прогоните провизию узлов.
  2. Тест нагрузки: имитируйте 50–200 узлов, проверьте потребление CPU/памяти.
  3. Финальная конфигурация: внешняя БД PostgreSQL, бэкап, TLS, мониторинг логов.
  4. Перенос в прод: cutover в окне с низким трафиком, проверка SLA.

Критерии приёмки

  • Веб-интерфейс доступен по https/http и логин успешен.
  • Узел успешно провизован и отображает статус и метрики.
  • Логи OpenNMS и PostgreSQL не содержат ошибок критического уровня.
  • Бэкап конфигурации и БД выполнен и восстановление проверено.

Чек-листы по ролям

Администратор:

  • Установить Docker, проверить версии.
  • Настроить бэкапы томов и БД.
  • Настроить брандмауэр и TLS.

Оператор/инженер мониторинга:

  • Провизовать тестовый узел.
  • Настроить SNMP-параметры и шаблоны опроса.
  • Настроить уведомления и тестовые алерты.

DevOps:

  • Интегрировать сбор логов (ELK/EFK) и метрики контейнеров.
  • Настроить CI/CD для overlay-конфигураций.

Security:

  • Проверить права доступа в БД и систему учётных записей.
  • Провести аудит доступов к интерфейсу.

Матрица рисков и смягчения

  • Потеря данных БД — регулярные бэкапы, тест восстановления.
  • Неавторизованный доступ — смена пароля admin, TLS, белый список IP.
  • Перегрузка сервиса — мониторинг SLI/SLO, горизонтальное масштабирование или выделение отдельной БД.

Советы по производительности

  • Для большого количества узлов вынесите PostgreSQL на отдельный хост.
  • Рассмотрите использование SSD для RRD и БД.
  • Очистка старых RRD при необходимости уменьшит дисковую нагрузку.

Совместимость и обновления

  • Образы opennms/horizon обновляются регулярно; проверяйте release notes перед апгрейдом.
  • Перед обновлением тестируйте на копии данных.
  • Версии PostgreSQL должны поддерживаться образом OpenNMS (в compose мы использовали postgres:12).

Короткое объявление для команды (100–200 слов)

Развёрнута тестовая среда OpenNMS Horizon в Docker на Ubuntu 20.04. Используется docker-compose с Postgres 12 и томами для данных. Веб-интерфейс доступен на порту 8980, учётные данные admin/admin (смените пароль). Для продакшна рекомендую вынести PostgreSQL на отдельный сервер, настроить TLS через reverse proxy и организовать регулярные бэкапы. Пожалуйста, проверьте провизию тестового узла и уведомления, сообщите об ошибках.

Заключение

Вы успешно установили OpenNMS в Docker на Ubuntu 20.04. Дальше: настройте шаблоны мониторинга, уведомления и политики ретенции метрик. Если нужна помощь с интеграцией в k8s, переносом БД или автоматизацией overlay-конфигураций — задайте вопросы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро