Установка OpenNMS · 7 min read · Oct 10, 2025
Установка и настройка OpenNMS на Alma Linux 8

OpenNMS — это бесплатная и открытая платформа для мониторинга и управления сетью, написанная на Java. Она размещается на собственных серверах и разрабатывается сообществом пользователей, разработчиков и группы OpenNMS. OpenNMS позволяет вам мониторить все на ваших локальных и удаленных сетях, включая производительность, мониторинг трафика, предоставление услуг, управление событиями, поддержку графиков и многое другое. OpenNMS использует SNPM и JMX для сбора информации о удаленных хостах.
Этот пост покажет вам, как установить OpenNMS с Nginx на Alma Linux 8.
Предварительные требования
- Сервер с установленной Alma Linux 8.
- Действительное доменное имя, указывающее на IP-адрес вашего сервера.
- Пароль root, настроенный на сервере.
Установка Java JDK
OpenNMS — это приложение на основе Java. Поэтому Java JDK должно быть установлено на вашем сервере. Вы можете установить его, выполнив следующую команду:
dnf install java-11-openjdk -yПосле установки Java вы можете проверить установку Java, используя команду, приведенную ниже:
java --versionВы получите следующий вывод:
openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
Установка OpenNMS на Alma Linux 8
По умолчанию OpenNMS не включен в стандартный репозиторий Alma Linux. Поэтому вам нужно будет добавить официальный репозиторий OpenNMS в вашу систему.
Вы можете добавить репозиторий OpenNMS и GPG-ключ, выполнив следующую команду:
dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm
rpm --import https://yum.opennms.org/OPENNMS-GPG-KEYЗатем установите OpenNMS, выполнив следующую команду:
dnf install opennms -yЭто также установит сервер PostgreSQL на ваш сервер.
Затем перейдите в каталог OpenNMS и инициализируйте базу данных PostgreSQL с помощью следующей команды:
cd /opt/opennms
postgresql-setup initdbНаконец, запустите и включите службу PostgreSQL с помощью следующей команды:
systemctl start postgresql
systemctl enable postgresqlТеперь вы можете проверить статус PostgreSQL с помощью следующей команды:
systemctl status postgresqlВы получите следующий вывод:
? postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2022-01-15 13:34:47 UTC; 5s ago
Process: 7305 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
Main PID: 7307 (postmaster)
Tasks: 8 (limit: 11411)
Memory: 15.9M
CGroup: /system.slice/postgresql.service
??7307 /usr/bin/postmaster -D /var/lib/pgsql/data
??7309 postgres: logger process
??7311 postgres: checkpointer process
??7312 postgres: writer process
??7313 postgres: wal writer process
??7314 postgres: autovacuum launcher process
??7315 postgres: stats collector process
??7316 postgres: bgworker: logical replication launcher
Jan 15 13:34:47 almalinux8 systemd[1]: Starting PostgreSQL database server...
Jan 15 13:34:47 almalinux8 postmaster[7307]: 2022-01-15 13:34:47.618 UTC [7307] LOG: listening on IPv6 address "::1", port 5432
Jan 15 13:34:47 almalinux8 postmaster[7307]: 2022-01-15 13:34:47.618 UTC [7307] LOG: listening on IPv4 address "127.0.0.1", port 5432
Настройка PostgreSQL для OpenNMS
Далее вам нужно будет создать базу данных и пользователя для OpenNMS.
Сначала войдите в PostgreSQL с помощью следующей команды:
su - postgres -c "psql -U postgres"Затем измените пароль Postgres с помощью следующей команды:
alter user postgres with password 'mypassword';Затем создайте базу данных и пользователя для OpenNMS с помощью следующей команды:
createuser -P opennms
createdb -O opennms opennmsЗатем выйдите из оболочки PostgreSQL с помощью следующей команды:
\qЗатем отредактируйте файл конфигурации PostgreSQL с помощью следующей команды:
nano /var/lib/pgsql/data/pg_hba.confНайдите следующие строки:
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
И замените их на следующие строки:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Наконец, перезагрузите службу PostgreSQL, чтобы применить изменения конфигурации:
systemctl reload postgresqlНастройка OpenNMS
Далее вам нужно будет отредактировать файл конфигурации источника данных OpenNMS и определить вашу базу данных:
nano /opt/opennms/etc/opennms-datasources.xmlИзмените следующие строки, чтобы они соответствовали вашим учетным данным базы данных:
Сохраните и закройте файл, затем выполните следующую команду, чтобы обнаружить путь к Java:
/opt/opennms/bin/runjava -sВы получите следующий вывод:
runjava: Looking for an appropriate JVM...
runjava: Checking for an appropriate JVM in JAVA_HOME...
runjava: Skipping... JAVA_HOME not set.
runjava: Checking JVM in the PATH: "/etc/alternatives/java"...
runjava: Did not find an appropriate JVM in the PATH: "/etc/alternatives/java"
runjava: Searching for a good JVM...
runjava: Found a good JVM in "/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java".
runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java" stored in configuration file.
Затем выполните следующую команду, чтобы инициализировать базу данных и обнаружить системные библиотеки:
/opt/opennms/bin/install -disВы получите следующий вывод:
- Running pre-execution phase
Creating backup of /opt/opennms/etc/service-configuration.xml
Zipping /opt/opennms/etc/service-configuration.xml
- Running execution phase
Current configuration: 32 services.
A service entry named 'OpenNMS:Name=PerspectivePoller' already exists.
Final configuration: 32 services.
- Saving the execution state
- Running post-execution phase
Removing backup /opt/opennms/etc/service-configuration.xml.zip
Finished in 0 seconds
Upgrade completed successfully!
Наконец, запустите и включите службу OpenNMS с помощью следующей команды:
systemctl start opennms
systemctl enable opennmsВы можете проверить статус OpenNMS с помощью следующей команды:
systemctl status opennmsВы получите следующий вывод:
? opennms.service - OpenNMS server
Loaded: loaded (/usr/lib/systemd/system/opennms.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2022-01-15 13:39:33 UTC; 6s ago
Process: 8638 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS)
Main PID: 9722 (java)
Tasks: 36 (limit: 11411)
Memory: 181.2M
CGroup: /system.slice/opennms.service
??9721 bash /etc/init.d/opennms -s start
??9722 /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,ja>
Jan 15 13:39:22 almalinux8 systemd[1]: Starting OpenNMS server...
Jan 15 13:39:32 almalinux8 systemd[1]: opennms.service: Can't open PID file /opt/opennms/logs/opennms.pid (yet?) after start: No such file or>
Jan 15 13:39:33 almalinux8 systemd[1]: opennms.service: Supervising process 9722 which is not our child. We'll most likely not notice when it>
Jan 15 13:39:33 almalinux8 systemd[1]: Started OpenNMS server.
На этом этапе OpenNMS запущен и слушает на порту 8980. Вы можете проверить это с помощью следующей команды:
ss -antpl | grep 8980Вы получите следующий вывод:
LISTEN 0 50 *:8980 *:* users:(("java",pid=9722,fd=1031))
Когда вы закончите, вы можете перейти к следующему шагу.
Настройка Nginx как обратного прокси для OpenNMS
Далее вам нужно будет установить Nginx и настроить его как обратный прокси для OpenNMS. Для этого установите сервер Nginx с помощью следующей команды:
dnf install nginx -yПосле установки Nginx создайте файл конфигурации виртуального хоста Nginx:
nano /etc/nginx/conf.d/opennms.confДобавьте следующие строки:
upstream opennms {
server 127.0.0.1:8980;
}
server {
listen 80;
server_name opennms.example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
proxy_pass http://opennms/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
Сохраните и закройте файл, затем проверьте конфигурацию Nginx с помощью следующей команды:
ginx -tВы получите следующий вывод:
ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Затем запустите и включите службу Nginx, чтобы она запускалась при перезагрузке системы:
systemctl start nginx
systemctl enable nginxТеперь вы можете проверить статус Nginx с помощью следующей команды:
systemctl status nginxВы получите следующий вывод:
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2022-01-15 13:44:05 UTC; 6s ago
Process: 13489 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 13488 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 13486 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 13491 (nginx)
Tasks: 2 (limit: 11411)
Memory: 3.7M
CGroup: /system.slice/nginx.service
??13491 nginx: master process /usr/sbin/nginx
??13492 nginx: worker process
Jan 15 13:44:05 almalinux8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 15 13:44:05 almalinux8 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jan 15 13:44:05 almalinux8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Настройка брандмауэра
Далее вам нужно будет разрешить порт 80 через брандмауэр. Вы можете разрешить его, выполнив следующую команду:
firewall-cmd --add-service=http --permanentЗатем перезагрузите брандмауэр, чтобы применить изменения:
firewall-cmd --reloadКогда вы закончите, вы можете перейти к следующему шагу.
Доступ к веб-интерфейсу OpenNMS
Теперь откройте веб-браузер и получите доступ к веб-интерфейсу OpenNMS, используя URL http://opennms.example.com. Вы увидите экран входа в OpenNMS:

Введите имя пользователя и пароль по умолчанию: admin/admin и нажмите кнопку Войти. Вы увидите панель управления OpenNMS на следующем экране:

Теперь нажмите кнопку admin => Сменить пароль, чтобы изменить пароль по умолчанию, как показано ниже:

Измените свой пароль по умолчанию и нажмите кнопку Отправить. Вы получите следующий экран:

Заключение
Поздравляем! Вы успешно установили OpenNMS с Nginx на Alma Linux 8. Теперь вы можете добавлять удаленные хосты из панели управления OpenNMS и начинать их мониторинг из центрального места. Не стесняйтесь задавать вопросы, если они у вас есть.
Get new posts in your inbox
No spam. Unsubscribe anytime.