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:
[postgres@centos8 ~]$ 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:
[postgres@centos8 ~]$ createdb -O opennms opennms
Stel vervolgens het wachtwoord voor de PostgreSQL gebruiker in met het volgende commando;
[postgres@centos8 ~]$ psql -c "ALTER USER postgres WITH PASSWORD 'password';"
Verlaat vervolgens de PostgreSQL shell met het volgende commando:
[postgres@centos8 ~]$ 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:
Geef standaard gebruikersnaam als admin en wachtwoord als admin en klik dan op de knop Login. Je zou de volgende pagina moeten zien:
Klik op de Opt-in om anonieme gebruiksstatistieken naar OpenNMS te sturen. Je zou het OpenNMS dashboard moeten zien op de volgende pagina:
Klik op de knop Admin => Wijzig wachtwoord om het standaard wachtwoord te veranderen. Je zou de volgende pagina moeten zien:
Wijzig je standaard wachtwoord en klik op de Submit knop. Je zou de volgende pagina moeten zien:
Klik op het + icoon om de nieuwe host toe te voegen. Je zou de volgende pagina moeten zien:
Geef de naam van de nieuwe vordering en klik op de OK knop. Je zou de volgende pagina moeten zien:
Geef je remote host gegevens op en klik op de Provision knop. Als de host is toegevoegd, zou je de volgende pagina moeten zien:
Klik nu op de Info => Nodes. Je zou details van de remote host moeten krijgen op de volgende pagina:
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.