OpenNMS je bezplatná platforma pro monitorování a správu sítě s otevřeným zdrojovým kódem, která se používá pro správu podnikových sítí po celém světě. Je založen na Javě a je navržen pro správu tisíců zařízení z centrálního místa. Má schopnost automaticky zjišťovat a monitorovat služby nebo uzly ve vaší síti.
Funkce
- Podporuje SNMP, JMX, WMI, NPRE, NSCLient++ a XMP
- Architektura řízená událostmi
- Podporuje monitorování zařízení a aplikací
- Zjištění typologie a výpadek trasy
- Konfigurovat a spouštět sledování služeb
- Podporuje topologie sítě vrstvy 2 a 3
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat OpenNMS na serveru CentOS 8.
Předpoklady
- Server se systémem CentOS 8.
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
OpenNMS je aplikace založená na Javě. Budete tedy muset do svého systému nainstalovat Javu. Můžete jej nainstalovat s dalšími požadovanými balíčky spuštěním následujícího příkazu:
dnf install java-11-openjdk-devel curl unzip -y
Po instalaci Javy můžete ověřit verzi Javy pomocí následujícího příkazu:
java -version
Měli byste získat následující výstup:
openjdk version "11.0.9" 2020-10-20 LTS OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat OpenNMS
Ve výchozím nastavení není OpenNMS k dispozici ve výchozím úložišti CentOS 8. Budete tedy muset do svého systému přidat úložiště OpenNMS.
Nejprve přidejte klíč GPG pomocí následujícího příkazu:
rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY
Po přidání klíče GPG spusťte následující příkaz pro přidání repozitáře OpenNMS.
dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm
Dále můžete nainstalovat OpenNMS spuštěním následujícího příkazu:
dnf install opennms -y
To nainstaluje OpenNMS, PostgreSQL a další balíčky na váš server.
Konfigurace PostgreSQL
OpenNMS používá PostgreSQL jako databázový backend. Databázi PostgreSQL můžete inicializovat pomocí následujícího příkazu:
postgresql-setup --initdb --unit postgresql
Měli byste získat následující výstup:
* Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
Dále spusťte službu PostgreSQL a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl enable postgresql
systemctl start postgresql
Dále budete muset vytvořit databázi a uživatele pro PostgreSQL.
Nejprve se přihlaste do PostgreSQL pomocí následujícího příkazu:
su - postgres
Po přihlášení vytvořte uživatele pomocí následujícího příkazu:
[[email protected] ~]$ createuser -P opennms
Budete požádáni o nastavení hesla, jak je uvedeno níže:
Enter password for new role: Enter it again:
Dále vytvořte databázi pomocí následujícího příkazu:
[[email protected] ~]$ createdb -O opennms opennms
Dále nastavte heslo pro uživatele PostgreSQL pomocí následujícího příkazu;
[[email protected] ~]$ psql -c "ALTER USER postgres WITH PASSWORD 'password';"
Dále ukončete prostředí PostgreSQL pomocí následujícího příkazu:
[[email protected] ~]$ exit;
Dále budete muset upravit zásady přístupu pro PostgreSQL. Můžete to udělat úpravou souboru /var/lib/pgsql/data/pg_hba.conf:
nano /var/lib/pgsql/data/pg_hba.conf
Najděte následující řádky:
# IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
A nahraďte je následujícími řádky:
host all all 127.0.0.1/32 md5 host all all ::1/128 md5
Uložte a zavřete soubor a poté restartujte službu PostgreSQL, aby se změny projevily:
systemctl restart postgresql
Dále budete muset definovat svou databázi v souboru /opt/opennms/etc/opennms-datasources.xml.
nano /opt/opennms/etc/opennms-datasources.xml
Změňte následující řádky, které odpovídají vaší databázi:
<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="password" />
Po dokončení uložte a zavřete soubor.
Inicializace a spuštění OpenNMS
Dále budete muset inicializovat OpenNMS. Nejprve přidejte nastavení Java pomocí následujícího příkazu:
/opt/opennms/bin/runjava -s
Měli byste získat 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-11.0.9.11-0.el8_2.x86_64/bin/java". runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java" stored in configuration file.
Dále inicializujte databázi spuštěním následujícího příkazu:
/opt/opennms/bin/install -dis
Dále povolte OpenNMS spuštění při restartu systému pomocí následujícího příkazu:
systemctl enable --now opennms
Měli byste získat následující výstup:
Synchronizing state of opennms.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable opennms Created symlink /etc/systemd/system/multi-user.target.wants/opennms.service → /usr/lib/systemd/system/opennms.service.
Nyní můžete zkontrolovat stav služby OpenNMS pomocí následujícího příkazu:
systemctl status opennms
Měli byste získat následující výstup:
? opennms.service - OpenNMS server Loaded: loaded (/usr/lib/systemd/system/opennms.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-11-25 09:21:32 EST; 13s ago Process: 26880 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS) Main PID: 27928 (java) Tasks: 67 (limit: 12523) Memory: 555.6M CGroup: /system.slice/opennms.service ??27927 bash /etc/init.d/opennms -s start ??27928 /usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java> Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so. Attempting to load ji> Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so. Attempting to load ji> Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so. Attempting to load > Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so. Attempting to load ji> Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so. Attempting to load > Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library.
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
Měli byste získat následující výstup:
LISTEN 0 50 *:8980 *:* users:(("java",pid=27928,fd=988))
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurovat SELinux a bránu firewall
Ve výchozím nastavení je SELinux povolen na serveru CentOS 8. Nejprve jej tedy budete muset deaktivovat. Můžete jej zakázat úpravou souboru /etc/selinux/config:
nano /etc/selinux/config
Najděte následující řádek:
SELINUX=enforcing
A nahraďte jej následujícím řádkem:
SELINUX=permissive
Uložte a zavřete soubor a poté restartujte systém, aby se změny projevily.
Dále povolte port 8980 přes firewalld pomocí následujícího příkazu:
firewall-cmd --permanent --add-port=8980/tcp
Poté znovu načtěte firewall, aby se změny projevily:
firewall-cmd --reload
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Přístup k webovému rozhraní OpenNMS
Nyní otevřete webový prohlížeč a přejděte na webové rozhraní OpenNMS pomocí adresy URL http://ip-ip-vašeho-serveru:8980/opennms . Budete přesměrováni na přihlašovací stránku OpenNMS:
Zadejte výchozí uživatelské jméno správce jako správce a heslo jako správce a poté klikněte na Přihlásit knoflík. Měli byste vidět následující stránku:
Klikněte na Přihlásit se k odesílání anonymních statistik používání do OpenNMS. Na následující stránce byste měli vidět řídicí panel OpenNMS:
Klikněte na Admin => Změnit heslo pro změnu výchozího hesla. Měli byste vidět následující stránku:
Změňte své výchozí heslo a klikněte na Odeslat knoflík. Měli byste vidět následující stránku:
Klikněte na + ikonu pro přidání nového hostitele. Měli byste vidět následující stránku:
Zadejte název nové žádanky a klikněte na OK knoflík. Měli byste vidět následující stránku:
Zadejte podrobnosti o vzdáleném hostiteli a klikněte na Provision knoflík. Po přidání hostitele byste měli vidět následující stránku:
Nyní klikněte na Info => Nodes . Podrobnosti o vzdáleném hostiteli byste měli získat na následující stránce:
Závěr
Gratulujeme! úspěšně jste nainstalovali OpenNMS na server CentOS 8. Nyní můžete do OpenNMS přidat neomezený počet síťových hostitelů a zařízení a zahájit monitorování z centrálního umístění.