OpenNMS je bezplatná, open-source a jedna z nejvýkonnějších platforem pro monitorování sítě a správu sítě používaných pro monitorování vzdálených zařízení z centrálního místa. Podporuje mnoho funkcí včetně poskytování, monitorování služeb, správy událostí, podpory grafů a dalších. OpenNMS používá SNMP a JMX a shromažďuje informace ze vzdálených systémů. Běží na operačních systémech Linux a Windows a poskytuje webové rozhraní pro snadné monitorování.
V tomto tutoriálu vám ukážu, jak nainstalovat OpenNMS na Debian 11.
Předpoklady
- Server se systémem Debian 11.
- Platný název domény s adresou IP vašeho serveru.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalace Javy na Debian 11
OpenNMS je aplikace založená na Javě. Na vašem serveru tedy musí být nainstalována Java. Pokud není nainstalován, můžete jej nainstalovat spuštěním následujícího příkazu:
apt-get install default-jdk -y
Jakmile je Java nainstalována, ověřte verzi Java pomocí příkazu níže:
java --version
Verzi Java získáte v následujícím výstupu:
openjdk 11.0.13 2021-10-19 OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1) OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)
Instalovat OpenNMS na Debian 11
Ve výchozím nastavení není OpenNMS součástí hlavního úložiště Debian 11. Takže budete muset přidat oficiální úložiště OpenNMS do APT.
Nejprve nainstalujte všechny požadované závislosti pomocí následujícího příkazu:
apt-get install curl gnupg2 wget -y
Jakmile jsou všechny balíčky nainstalovány, vytvořte soubor úložiště OpenNMS pomocí příkazu níže:
nano /etc/apt/sources.list.d/opennms.list
Přidejte následující řádky:
deb https://debian.opennms.org stable main deb-src https://debian.opennms.org stable main
Uložte a zavřete soubor a poté importujte klíč GPG pomocí následujícího příkazu:
wget -O - https://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add -
Získáte následující výstup:
Connecting to debian.opennms.org (debian.opennms.org)|3.214.84.83|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1335 (1.3K) Saving to: ‘STDOUT’ - 100%[=================================================================>] 1.30K --.-KB/s in 0s 2021-11-28 07:58:07 (16.0 MB/s) - written to stdout [1335/1335] OK
Dále aktualizujte mezipaměť úložiště a nainstalujte OpenNMS pomocí následujícího příkazu:
apt-get update -y
apt-get install opennms -y
Během instalace se zobrazí následující chyba:
Failed to install iplike into the template1 or opennms databases. See /tmp/install_iplike.log for details. To skip this step and install manually, set the environment variable SKIP_IPLIKE_INSTALL before installing this package. To install iplike into your database, use the /usr/sbin/install_iplike.sh script. See `install_iplike.sh -h` for more details.
Chcete-li tuto chybu vyřešit, budete muset vytvořit databázi a uživatele pro OpenNMS v PostgreSQL.
Vytvoření databáze v PostgreSQL
PostgreSQL server se nainstaloval automaticky během procesu instalace OpenNMS.
Nejprve spusťte službu PostgreSQL pomocí následujícího příkazu:
systemctl start postgresql
Dále se připojte k instanci PostgreSQL pomocí následujícího příkazu:
su - postgres
Jakmile se připojíte, vytvořte uživatele pro OpenNMS a nastavte heslo pomocí následujícího příkazu:
createuser opennms
psql -c "ALTER USER opennms WITH PASSWORD 'opennms';"
Dále vytvořte databázi pro OpenNMS a nastavte heslo pro uživatele postgres:
createdb -O opennms opennms
psql -c "ALTER USER postgres WITH PASSWORD 'securepassword';"
Dále ukončete prostředí PostgreSQL pomocí následujícího příkazu:
exit
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Nakonfigurujte OpenNMS
Dále budete muset upravit soubor zdroje dat OpenNMS a definovat přihlašovací údaje k databázi:
nano /usr/share/opennms/etc/opennms-datasources.xml
Definujte přihlašovací údaje k databázi, jak je uvedeno níže:
<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="securepassword" /> </datasource-configuration>
Po dokončení uložte a zavřete soubor a poté spusťte následující příkaz pro zjištění prostředí Java:
sudo -u opennms /usr/share/opennms/bin/runjava -s
Získáte následující výstup:
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-amd64/bin/java". runjava: Value of "/usr/lib/jvm/java-11-openjdk-amd64/bin/java" stored in configuration file.
Dále spusťte následující příkaz k dokončení nastavení OpenNMS:
sudo -u opennms /usr/share/opennms/bin/install -dis
Získáte následující výstup:
Finished in 0 seconds Processing RemotePollerServiceConfigMigratorOffline: Remove deprecated RemotePoller service entry from service-configuration.xml, see NMS-12684 - Running pre-execution phase Creating backup of /usr/share/opennms/etc/service-configuration.xml Zipping /usr/share/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 /usr/share/opennms/etc/service-configuration.xml.zip Finished in 0 seconds Upgrade completed successfully!
Spusťte službu OpenNMS
Po nastavení OpenNMS spusťte službu OpenNMS a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start opennms
systemctl enable opennms
Stav OpenNMS můžete ověřit pomocí následujícího příkazu:
systemctl status opennms
Získáte následující výstup:
? opennms.service - OpenNMS server Loaded: loaded (/lib/systemd/system/opennms.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-28 08:10:51 UTC; 16s ago Process: 22990 ExecStart=/usr/share/opennms/bin/opennms -s start (code=exited, status=0/SUCCESS) Main PID: 24106 (java) Tasks: 68 (limit: 4679) Memory: 559.2M CPU: 48.083s CGroup: /system.slice/opennms.service ??24105 bash /usr/share/opennms/bin/opennms -s start ??24106 /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java.desktop,java.in> Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so. Attempting to loa> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp library. Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so. Attempting to l> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp6 library. Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so. Attempting to loa> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp library. Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so. Attempting to l> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp6 library. Nov 28 08:11:07 debian11 opennms[24106]: Nov 28, 2021 8:11:07 AM org.hibernate.validator.internal.util.VersionNov 28 08:11:07 debian11 opennms[24106]: INFO: HV000001: Hibernate Validator 4.3.2.Final
V tomto okamžiku se OpenNMS spustí a naslouchá na portu 8980. Můžete to zkontrolovat pomocí následujícího příkazu:
ss -antpl | grep 8980
Získáte následující výstup:
LISTEN 0 50 *:8980 *:* users:(("java",pid=24106,fd=1046))
Nakonfigurujte Nginx jako reverzní proxy pro OpenNMS
Dále se doporučuje nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro OpenNMS. Nejprve nainstalujte server Nginx pomocí následujícího příkazu:
apt-get install nginx -y
Jakmile je Nginx nainstalován, vytvořte konfigurační soubor virtuálního hostitele Nginx:
nano /etc/nginx/conf.d/opennms.conf
Přidejte následující konfiguraci:
server { listen 80; server_name opennms.example.com; access_log /var/log/nginx/opennms.access.log; error_log /var/log/nginx/opennms.error.log; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-OpenNMS-Server-URL https://nms.hacc.edu/; proxy_pass http://server-ip:8980; } }
Uložte a zavřete soubor a poté ověřte, zda Nginx neobsahuje nějakou chybu konfigurace syntaxe:
nginx -t
Získáte následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Poté restartujte službu Nginx, aby se změny aplikovaly:
systemctl restart nginx
Chcete-li zkontrolovat stav spuštění Nginx, spusťte následující příkaz:
systemctl status nginx
Měli byste vidět následující výstup:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-28 08:17:14 UTC; 6s ago Docs: man:nginx(8) Process: 25964 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 25965 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 25967 (nginx) Tasks: 3 (limit: 4679) Memory: 3.2M CPU: 53ms CGroup: /system.slice/nginx.service ??25967 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??25968 nginx: worker process ??25969 nginx: worker process Nov 28 08:17:14 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server... Nov 28 08:17:14 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
Přístup k řídicímu panelu OpenNMS
Nyní otevřete webový prohlížeč a přejděte na webové rozhraní OpenNMS pomocí adresy URL http://opennms.example.com . Měli byste vidět přihlašovací stránku OpenNMS:
Zadejte výchozí uživatelské jméno a heslo jako správce a klikněte na Přihlásit knoflík. Na následující obrazovce byste měli vidět řídicí panel OpenNMS:
Nyní klikněte na admin> Změnit heslo změnit výchozí heslo správce, jak je uvedeno níže:
Změňte své výchozí heslo a klikněte na Odeslat knoflík. Měli byste vidět následující obrazovku:
Závěr
Gratulujeme! úspěšně jste nainstalovali OpenNMS s Nginx jako reverzní proxy na serveru Debian 11. Nyní můžete přidat vzdálená zařízení do OpenNMS a začít je sledovat z webového prohlížeče. Pokud máte nějaké dotazy, neváhejte se mě zeptat.