Установка и настройка OpenNMS на CentOS 8

Установка и настройка OpenNMS на CentOS 8

 

OpenNMS родилась из разочарования, которое наблюдали ее создатели из-за того, насколько дорогими, негибкими и сложными в развертывании были существующие инструменты управления сетью. Вдобавок они наблюдали, как клиентам приходилось изменять свой бизнес-процесс, чтобы соответствовать существующим инструментам, а не наоборот. Это подтолкнуло их к созданию OpenNMS.

OpenNMS — это первая в мире платформа управления сетевыми услугами корпоративного уровня с полностью открытым исходным кодом, и сотни предприятий используют ее каждый день без малейшей помощи со стороны своей команды. Именно с этим команда OpenNMS упростила работу. И как настоящий открытый исходный код, он на 100% бесплатен.

В отличие от традиционных продуктов для управления сетью, которые очень ориентированы на сетевые элементы, такие как интерфейсы на коммутаторах и маршрутизаторах, OpenNMS фокусируется на услугах, которые предоставляют сетевые ресурсы: веб-страницы, доступ к базе данных, DNS, DHCP и т. Д. (Хотя также доступна информация об элементах сети. ).

Мы собираемся установить и настроить этот замечательный инструмент и проверить, на что он способен. Перед этим давайте посмотрим, что скрывается внутри его упаковки.

Особенности OpenNMS

Ниже перечислены основные функции, которыми обладает OpenNMS:

  • Scalability: он создан для предприятий и контролирует миллионы устройств из одного экземпляра.
  • Extensibility: использует гибкую и расширяемую архитектуру для расширения фреймворков опроса служб и сбора данных о производительности.
  • Open Source: OpenNMS, опубликованная под лицензией AGPLv3, является полностью открытым исходным кодом.
  • Support: поддерживается большим сообществом пользователей и на коммерческой основе OpenNMS Group.

Теперь мы должны быть готовы исследовать OpenNMS на нашем компьютере с CentOS 8.

Шаг 1. Обновите и подготовьте наш сервер

Прежде чем мы углубимся в подробности этой настройки, неплохо было бы начать с чистого и хорошо обновленного планшета. Мы будем обновлять и устанавливать необходимые инструменты в течение всего процесса.

sudo dnf -y update
sudo dnf install -y vim  curl wget

OpenNMS разрабатывается с использованием Java, поэтому нам нужна установленная Java. Установите Java на CentOS 8, используя этот способ установки Java 11-OpenJDK 11- на RHEL 8

Шаг 2. Установите OpenNMS Horizon

После того, как мы рассмотрели базовый уровень, убедившись, что он готов принять следующие пакеты, мы можем продолжить установку OpenNMS Horizon. Сначала мы добавим официальный репозиторий OpenNMS, а затем приступим к загрузке и установке необходимых пакетов.

Добавить репозиторий yum и импортировать ключ GPG

sudo dnf -y install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm
sudo rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY

После добавления репозитория мы готовы загрузить и установить OpenNMS со всеми его встроенными зависимостями.

sudo dnf -y install opennms

Приведенная выше команда автоматически установит следующие пакеты, что упростит работу:

  • jicmp6 and jicmp: Java bridge позволяющий отправлять сообщения ICMP из репозитория OpenNMS Horizon.
  • opennms-core: основные сервисы OpenNMS Horizon, например Provisiond, Pollerd и Collectd из репозитория OpenNMS Horizon.
  • opennms-webapp-jetty: веб-приложение OpenNMS Horizon из репозитория OpenNMS Horizon
  • postgresql: сервер базы данных PostgreSQL из репозитория дистрибутива
  • postgresql-libs: база данных PostgreSQL из репозитория дистрибутива

Шаг 3: Инициализируйте и настройте PostgreSQL

Мы упоминали, что база данных Postgres должна была быть установлена ​​автоматически в предыдущей команде. Теперь мы должны настроить его с соответствующими базами данных, учетными данными, а также убедиться, что он работает правильно.

Инициализировать базу данных PostgreSQL

Сначала давайте инициализируем базу данных, выполнив команду ниже

sudo postgresql-setup --initdb --unit postgresql

Чтобы PostgreSQL запускался автоматически в случае перезагрузки сервера, выполните приведенную ниже команду Systemd, чтобы включить сервер базы данных и запустить его.

sudo systemctl enable postgresql
sudo systemctl start postgresql

Создать учетные данные базы данных

Нам понадобится пользователь для доступа к базе данных OpenNMS. Создайте пользователя с паролем и создайте базу данных opennms, которая принадлежит пользователю opennms

$ sudo su postgres
bash-4.4$ psql
psql (10.14)
Type "help" for help.

postgres=# createuser -P opennms
postgres-# createdb -O opennms opennms
postgres-# \q
bash-4.4$ exit

Защитите пользователя postres по умолчанию паролем, чтобы добавить безопасность, как показано ниже:

$ sudo su postgres
bash-4.4$ psql
postgres=# ALTER USER postgres WITH PASSWORD 'StrongPassword';
ALTER ROLE
postgres=# \q
bash-4.4$ exit

Измените политику доступа для PostgreSQL

Когда вы устанавливаете Postgres, идентификатор по умолчанию используется для локальных подключений IPv6 и IPv4. Метод проверки подлинности идентификатора работает путем получения имени пользователя операционной системы клиента с сервера идентификатора и использования его в качестве разрешенного имени пользователя базы данных (с необязательным отображением имени пользователя). Это поддерживается только для соединений TCP / IP. Методы аутентификации на основе пароля: « md5 » и « пароль ». Эти методы работают аналогично, за исключением способа, которым пароль пересылается через соединение, а именно MD5-хеширования и открытого текста соответственно.

Мы собираемся изменить это с идентификатора на способ хеширования MD5. Отредактируйте файл, показанный ниже, соответственно

sudo vim /var/lib/pgsql/data/pg_hba.conf

Разрешить OpenNMS Horizon доступ к базе данных по локальной сети с хешированным паролем MD5.

host    all             all             127.0.0.1/32            md5 #<==
host    all             all             ::1/128                 md5

После внесения изменений перезапустите postgres, чтобы применить и сохранить изменения конфигурации для PostgreSQL.

sudo systemctl restart postgresql

Настроить доступ к базе данных в OpenNMS Horizon

Мы настроили нашу базу данных, и теперь мы должны позволить OpenNMS Horizon свободно подключаться. Отредактируйте файл opennms-datasources.xml, как показано ниже, чтобы увидеть требуемые конфигурации. По сути, это добавление уже установленных нами деталей базы данных.

$ sudo vim /opt/opennms/etc/opennms-datasources.xml

<jdbc-data-source name="opennms"
                    database-name="opennms"
                    class-name="org.postgresql.Driver"
                    url="jdbc:postgresql://localhost:5432/opennms"
                    user-name="opennms"
                    password="opennms" />

<jdbc-data-source name="opennms-admin"
                    database-name="template1"
                    class-name="org.postgresql.Driver"
                    url="jdbc:postgresql://localhost:5432/template1"
                    user-name="postgres"
                    password="StrongPassword" />

Те же детали на скриншоте

Шаг 4: Инициализируйте и запустите OpenNMS Horizon

После того, как настройки базы данных сделаны, мы наконец можем инициализировать OpenNMS Horizon. Давайте добавим настройки Java и приступим к запуску приложения.

Обнаружение среды Java и сохранение в /opt/opennms/etc/java.conf

sudo /opt/opennms/bin/runjava -s

Инициализировать базу данных и обнаружить системные библиотеки, сохраненные в /opt/opennms/etc/libraries.properties

sudo /opt/opennms/bin/install -dis

Включите OpenNMS Horizon для автоматического запуска при загрузке системы

$ sudo systemctl enable --now opennms
$ sudo systemctl status opennms

● opennms.service - OpenNMS server
   Loaded: loaded (/usr/lib/systemd/system/opennms.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-09-23 13:44:38 UTC; 5s ago
  Process: 1689425 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS)
 Main PID: 1690701 (java)
    Tasks: 36 (limit: 11070)
   Memory: 162.8M
   CGroup: /system.slice/opennms.service
           ├─1690700 /bin/bash /etc/init.d/opennms -s start
           └─1690701 /usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el8_2.x86_64/bin/java --add-modules=java.base,java.compiler

Поскольку OpenNMS Horizon прослушивает порт 8980 , вам следует подумать о том, чтобы разрешить входящий и исходящий трафик через этот порт на вашем брандмауэре, если он у вас запущен. Просто запустите приведенные ниже команды.

sudo firewall-cmd --permanent --add-port=8980/tcp
sudo firewall-cmd --reload

Шаг 5: Войдите и измените пароль по умолчанию

После запуска OpenNMS к веб-приложению можно получить доступ, указав в браузере адрес http://[IP-or-FQDN-of-your-server]: 8980/opennms . Пользователь по умолчанию для входа в систему — admin, а пароль инициализируется как admin .

После входа в систему вы можете изменить пароль следующим образом: В главном меню навигации нажмите « admin → Изменить пароль → Изменить пароль ». Установите текущий пароль admin, установите новый пароль и подтвердите новый пароль, затем нажмите « Отправить ». После того, как вы закончите, выйдите из системы и войдите с новым паролем.

Шаг 6. Добавьте хосты в OpenNMS

Мы закончили настройку OpenNMS Horizon, и осталось только добавить хосты, которые мы будем отслеживать. Чтобы добавить хост, войдите в веб-консоль OpenNMS и в главном меню навигации выполните следующие действия: Щелкните « + ».

Поскольку это совершенно новая установка, нам нужно будет добавить “requisition“. Вы увидите всплывающее окно с просьбой ввести имя для новой “requisition“.

Будет доступна новая страница с формой, как показано ниже. Заполните форму, затем прокрутите страницу вниз и нажмите “Provision“.

Когда вы закончите нажимать Provision, должно появиться всплывающее сообщение об успешном завершении .

После того, как вы добавили узел, вы можете проверить их, щелкнув раскрывающееся меню “Info” выбрав “Nodes“. Вы должны увидеть только что добавленный узел и некоторые детали, которые он уже расшифровал.

Заключение

OpenNMS может предложить больше, чем описано в этом руководстве. Вы можете контролировать клиентов через SNMP, настраивать миньонов, которые возвращают данные в основной Horizon через брокеров сообщений, и многое другое. Мы рассмотрим установку Minion с Apache Kafka в следующем руководстве.