OpenNMS Netwerk Monitoring gereedschap installeren in CentOS 8

OpenNMS is een gratis en open-source netwerk monitoring en netwerk management platform dat gebruikt wordt voor het beheer van bedrijfsnetwerken over de hele wereld. Het is gebaseerd op Java en is ontworpen om duizenden apparaten vanuit een centrale plaats te beheren. Het heeft de mogelijkheid om automatisch de diensten of knooppunten in je netwerk te ontdekken en te bewaken.

Kenmerken

  • Ondersteunt SNMP, JMX, WMI, NPRE, NSCLient++ en XMP
  • Gebeurtenis-gestuurde Architectuur
  • Ondersteunt apparaat- en toepassingsbewaking
  • Typologie opsporing en paduitval
  • Configureer en voer Service Monitors uit
  • Ondersteunt Layer 2 en Layer 3 Netwerk Topologieën

In deze handleiding laten we je zien hoe je OpenNMS op CentOS 8 server installeert en configureert.

Vereisten

  • Een server die CentOS 8 draait.
  • Een root wachtwoord is op de server geconfigureerd.

Aan de slag

OpenNMS is een Java-gebaseerde toepassing. Je zult dus Java in je systeem moeten installeren. Je kunt het samen met andere benodigde pakketten installeren door het volgende commando uit te voeren:

dnf install java-11-openjdk-devel curl unzip -y

Na de installatie van Java kun je de java versie verifiëren met het volgende commando:

java -version

Je zou de volgende uitvoer moeten krijgen:

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)

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer OpenNMS

OpenNMS is standaard niet beschikbaar in de CentOS 8 standaard repository. Je zult dus de OpenNMS repository aan je systeem moeten toevoegen.

Voeg eerst de GPG sleutel toe met het volgende commando:

rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY

Als de GPG sleutel is toegevoegd, voer je het volgende commando uit om de OpenNMS repo toe te voegen.

dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm

Vervolgens kun je OpenNMS installeren door het volgende commando uit te voeren:

dnf install opennms -y

Dit zal OpenNMS, PostgreSQL en andere pakketten in je server installeren.

Configureer PostgreSQL

OpenNMS gebruikt PostgreSQL als database backend. Je kunt de PostgreSQL database initialiseren met het volgende commando:

postgresql-setup --initdb --unit postgresql

Je zou de volgende uitvoer moeten krijgen:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Start vervolgens de PostgreSQL service en zet hem aan om te starten bij het herstarten van het systeem met het volgende commando:

systemctl enable postgresql
systemctl start postgresql

Vervolgens moet je een database en een gebruiker voor PostgreSQL aanmaken.

Log eerst in op PostgreSQL met het volgende commando:

su - postgres

Eenmaal ingelogd maak je een gebruiker aan met het volgende commando:

[[email protected] ~]$ createuser -P opennms

Je wordt gevraagd een wachtwoord in te stellen zoals hieronder:

Enter password for new role: 
Enter it again: 

Maak vervolgens een database aan met het volgende commando:

[[email protected] ~]$ createdb -O opennms opennms

Stel vervolgens het wachtwoord voor de PostgreSQL gebruiker in met het volgende commando;

[[email protected] ~]$ psql -c "ALTER USER postgres WITH PASSWORD 'password';"

Verlaat vervolgens de PostgreSQL shell met het volgende commando:

[[email protected] ~]$ exit;

Vervolgens moet je het toegangsbeleid voor PostgreSQL wijzigen. Je kunt dat doen door het bestand /var/lib/pgsql/data/pg_hba.conf te bewerken:

nano /var/lib/pgsql/data/pg_hba.conf

Zoek de volgende regels:

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

En vervang ze door de volgende regels:

host    all             all             127.0.0.1/32            md5 
host    all             all             ::1/128                 md5

Bewaar en sluit het bestand en herstart dan de PostgreSQL dienst om de veranderingen toe te passen:

systemctl restart postgresql

Vervolgens moet je je database definiëren in het bestand /opt/opennms/etc/opennms-datasources.xml.

nano /opt/opennms/etc/opennms-datasources.xml

Verander de volgende regels die bij je database passen:

<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" />

Bewaar en sluit het bestand als je klaar bent.

Initialiseer en start OpenNMS

Vervolgens moet je OpenNMS initialiseren. Voeg eerst de Java instellingen toe met het volgende commando:

/opt/opennms/bin/runjava -s

Je zou de volgende uitvoer moeten krijgen:

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.

Initialiseer vervolgens de database door het volgende commando uit te voeren:

/opt/opennms/bin/install -dis

Schakel vervolgens OpenNMS in om te starten bij het herstarten van het systeem met het volgende commando:

systemctl enable --now opennms

Je zou de volgende uitvoer moeten krijgen:

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.

Nu kun je de status van de OpenNMS dienst controleren met het volgende commando:

systemctl status opennms

Je zou de volgende uitvoer moeten krijgen:

? 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.

Op dit moment is OpenNMS gestart en luistert het op poort 8980. Je kunt dit controleren met het volgende commando:

ss -antpl | grep :8980

Je zou de volgende uitvoer moeten krijgen:

LISTEN   0        50                          *:8980                   *:*       users:(("java",pid=27928,fd=988)) 

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer SELinux en Firewall

Standaard is SELinux ingeschakeld in de CentOS 8 server. Je zult het dus eerst moeten uitschakelen. Je kunt het uitschakelen door het bestand /etc/selinux/config te bewerken:

nano /etc/selinux/config

Zoek de volgende regel:

SELINUX=enforcing

En vervang het door de volgende regel:

SELINUX=permissive

Bewaar en sluit het bestand en herstart dan het systeem om de veranderingen toe te passen.

Sta vervolgens poort 8980 toe via firewalld met het volgende commando:

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

Herlaad vervolgens firewalld om de veranderingen toe te passen:

firewall-cmd --reload

Als je klaar bent, kun je verder gaan met de volgende stap.

Toegang tot de OpenNMS Web Interface

Open nu je web browser en ga naar de OpenNMS webinterface met de URL http://your-server-ip:8980/opennms. Je wordt doorverwezen naar de OpenNMS login pagina:

OpenNMS

Geef standaard gebruikersnaam als admin en wachtwoord als admin en klik dan op de knop Login. Je zou de volgende pagina moeten zien:

Inloggen op OpenNMS

Klik op de Opt-in om anonieme gebruiksstatistieken naar OpenNMS te sturen. Je zou het OpenNMS dashboard moeten zien op de volgende pagina:

openNMS dashboard

Klik op de knop Admin => Wijzig wachtwoord om het standaard wachtwoord te veranderen. Je zou de volgende pagina moeten zien:

Wijzig admin wachtwoord

Wijzig je standaard wachtwoord en klik op de Submit knop. Je zou de volgende pagina moeten zien:

Wachtwoord succesvol veranderd

Klik op het + icoon om de nieuwe host toe te voegen. Je zou de volgende pagina moeten zien:

Voeg nieuwe host toe aan openNMS monitoring

Geef de naam van de nieuwe vordering en klik op de OK knop. Je zou de volgende pagina moeten zien:

Knooppunt toevoegen

Gegevens van het apparaat

Geef je remote host gegevens op en klik op de Provision knop. Als de host is toegevoegd, zou je de volgende pagina moeten zien:

Nieuwe node succesvol toegevoegd

Klik nu op de Info => Nodes. Je zou details van de remote host moeten krijgen op de volgende pagina:

OpenNMS bewakingsknooppunt

Conclusie

Gefeliciteerd! Je hebt met succes OpenNMS op CentOS 8 server geïnstalleerd. Je kunt nu een onbeperkt aantal netwerk hosts en apparaten aan OpenNMS toevoegen en vanaf de centrale plaats beginnen te bewaken.