Dieses Repository ist veraltet. Wir haben den Build -Code in das OpenNMS -Repository verschoben. Der Publish and Build -Workflow ist jetzt im Rahmen unseres CI/CD -Workflows integriert.
Wir werden dieses Repository mit Horizon 25 archivieren und dieses Repository nicht mehr beibehalten.
bleeding , tägliche Blutungskante Version von Horizon 24 mit OpenJDK 1124.1.0 , letzte stabile Freisetzung von Horizon mit OpenJDK 11 Dieses Repository bietet Schnappschüsse für Horizon als Docker -Bilder. Das Bild bietet die Horizon -Kernüberwachungsdienste und die Webanwendung.
Es wird empfohlen docker-compose zu verwenden, um einen Service-Stapel mit dem offiziellen PostgreSQL- Image zu erstellen. Falls Sie bereits über eine PostgreSQL -Datenbank ausgeführt werden, können Sie die Datenbankkonfiguration in .opennms.env und .postgres.env -Umgebungsdateien angeben, ansonsten werden Benutzer und Datenbank erstellt.
Die Daten werden standardmäßig auf Ihrem Docker -Host anhalten, indem Sie einen lokalen Volumentreiber für die folgenden Daten verwenden:
# PostgreSQL database
psql.data :
driver : local
# OpenNMS Horizon RRD files, logs and generated PDF reports
opennms.data :
driver : local
# OpenNMS Horizon configuration files
opennms.etc :
driver : local Es ist erforderlich, OpenNMS Horizon- etc-overlay manuell zu bearbeiten. Beim Start der Dateien überschreiben Sie die Standardkonfiguration.
- ./etc-overlay:/opt/opennms-etc-overlayWenn Sie es vorziehen, dass Sie in einem bestimmten Verzeichnis eine Horizon -Konfiguration auf Ihrem Docker -Host öffnen , können Sie ein Verzeichnis mit Ihrer Konfiguration wie folgt montieren:
volumes :
- ./myHorizonConfig:/opt/opennms/etc Falls das Verzeichnis leer ist, wird es mit einer Standardkonfiguration von /opt/opennms/share/etc-pristine initialisiert.
users.xml : Achten Sie auf Konfigurationen, die über groups.xml Web-Benutzeroberfläche geändert werden können snmp-config.xml die auf dem Dateisystem, z surveillance-categories.xml
git clone https://github.com/opennms-forge/docker-horizon-core-web.git
cd docker-horizon-core-web
docker-compose up -dDie Webanwendung ist auf dem TCP -Port 8980 freigelegt . Bitte ändern Sie sofort das Standardkennwort in ein sicheres Passwort.
Um eine Hilfe für alle verfügbaren Containeroptionen zu erhalten, werden einfach ausgeführt:
docker run --rm opennms/horizon-core-web Es ist leicht möglich, Java -Optionen hinzuzufügen, um das Verhalten des JVM für die Leistungsabstimmung oder -Debuggierung zu steuern. Die Umgebungsvariable JAVA_OPTS wird dem Befehl java weitergegeben und kann verwendet werden, um JVM -Optionen zu erweitern oder zu überschreiben.
Wichtig: Um mehr Kontrolle zu erhalten, werden die Optionen für Java-Binärbefehl in den Optionen Docker-Inrypoint.sh und Java in opennms.conf nicht bewertet. Der Java -Prozess hat PID 1 und
Wird in einer Umgebungsdatei verwendet:
env_file :
- .java.env
cat .java.env
JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinalVerwendet in Docker-Compose Service Environment Definition:
opennms :
container_name : opennms.core.web
image : opennms/horizon-core-web:latest
environment :
- JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinal Um die Ressourcenverbrauch von Prozessen zu kontrollieren und zu isolieren, wird die Kernel -Funktionsfunktion (Kontrollgruppen) verwendet. Mit der Kombination von Java gibt es einige zusätzliche Dinge, die Sie in Bezug auf die maximale Haufengröße und die Begrenzung des Speicherverbrauchs des Containers kümmern müssen.
Standardmäßig berechnet die JVM -Ergonomie die maximale Haufengröße basierend auf dem Docker -Hostspeicher und nicht nach dem Speichersatz mit CGroups .
Um sicherzustellen, dass der JVM die maximale Haufengröße korrekt berechnet, haben Sie zwei Optionen:
-Xmx einJAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap Ab Java SE 8U131 ist die JVM Docker-bewusst mit Docker CPU-Grenzen transparent. So lange, wenn -XX:ParallelGCThreads oder -XX:CICompilerCount werden nicht angegeben, wendet der JVM die Docker -CPU -Grenze als CPUs an und berechnet die Anzahl der GC- und JIT -Compiler -Threads, die genau wie das Laufen auf Bural Metal sind.
Das Einstiegspunkt -Skript wird verwendet, um das Startverhalten zu steuern:
-f: Apply overlay configuration if exist and just start OpenNMS Horizon
-h: Show help
-i: If necessary initialize database, create pristine configuration, do an upgrade and apply the overlay config but do * not * start OpenNMS Horizon
-s: Same as -i but start OpenNMS Horizon, this should be your default
-n: Initialize Newts on Cassandra and the PostgreSQL database, do * not * start OpenNMS Horizon
-c: Same as -n but start OpenNMS Horizon, this should be your default when you want to use Newts on Cassandra
-t: Just test you configuration Wenn Sie ein Update erzwingen möchten, erstellen Sie A /opt/opennms/etc/do-upgrade Datei. Beginnend mit -i oder -s wird der Befehl install -dis einmal ausgeführt, um das Konfigurations- und Datenbankschema zu aktualisieren.
Alle Optionen, die Upgrades durchführen oder OpenNMS Horizon starten, überprüfen, ob die Konfiguration gültig ist, und bestehen den Konfigurationstest.
Wenn Sie nur benutzerdefinierte Konfigurationsdateien außerhalb von OpenNMS verwalten möchten, können Sie ein usw.-Überlagungsverzeichnis verwenden. Alle Dateien in diesem Verzeichnis werden im laufenden Container nur in/opt/openNMS/usw. kopiert. Sie können einfach ein lokales Verzeichnis wie dieses montieren:
volumes :
- ./etc-overlay:/opt/opennms-etc-overlay Wenn Sie nur benutzerdefinierte Konfigurationsdateien für den Jetty-Anwendungscontainer verwalten möchten, können Sie ein Vegety-Overlay-Verzeichnis verwenden. Alle Dateien in diesem Verzeichnis werden gerade in/opt/openNMS/Jetty-Webapps/OpenNMS/Web-Inf im laufenden Container kopiert. Sie können einfach ein lokales Verzeichnis wie dieses montieren:
volumes :
- ./jetty-overlay:/opt/opennms-jetty-webinf-overlay Um willkürliche Konfigurationsdateien/Verzeichnisstrukturen zu überlagern, können Sie ein OpenNMS-Overlay-Verzeichnis verwenden. Der Inhalt dieses Verzeichnisses wird in/opt/openNMS/im laufenden Container kopiert. Sie können einfach ein lokales Verzeichnis wie dieses montieren:
volumes :
- ./opennms-overlay:/opt/opennms-overlay Mit diesem Bild können Konfigurationsdateien getestet werden, wenn sie gültig XML sind und wenn sie beim Start geladen werden können. Es wird automatisch beim Start ausgeführt, kann aber auch als einzelner Schussbefehl ausgeführt werden.
Holen Sie sich die Nutzungsausgabe des Konfigurationstesters mit:
docker run --rm opennms/horizon-core-web:latest -tEinige Beispiele, wie Sie den Konfigurationstester mit diesem Bild verwenden:
Testen Sie alle Konfigurationsdateien:
docker run --rm opennms/horizon-core-web:latest -t -a
Testen Sie nur eine bestimmte Konfigurationsdatei mit ausführlicher Ausgabe -v :
docker run --rm opennms/horizon-core-web:latest -t -v snmp-config.xml
Testen Sie Konfigurationsdateien mit einem usw.-Überlagenverzeichnis:
docker run --rm -v $(pwd)/etc-overlay:/opt/opennms-etc-overlay opennms/horizon-core-web:latest -t -v snmp-config.xml
POSTGRES_HOST : postgresql datenbank host, Standard: databasePOSTGRES_PORT : port, um auf die postgresql -Datenbank zuzugreifen, Standardeinstellung: 5432POSTGRES_USER : postgresql admin Benutzer, Standard: postgresPOSTGRES_PASSWORD : postgresql Administrator Passwort, Standard: postgresOPENNMS_DBNAME : Datenbankname für OpenNMS Horizon, Standard: opennmsOPENNMS_DBUSER : Benutzer zum Zugriff auf die OpenNMS -Horizon -Datenbank, Standardeinstellung: opennmsOPENNMS_DBPASS : Kennwort für OpenNMS Horizon Database -Benutzer, Standard: opennmsOPENNMS_KARAF_SSH_HOST : Höradresse für Karaf SSH Port, Standard: 0.0.0.0OPENNMS_KARAF_SSH_PORT : SSH -Port für Karaf, Standard: 8101Mit einem Cassandra -Cluster:
${OPENNMS_CASSANDRA_HOSTNAMES} : Hostname oder IP -Adresse des Cassandra -Clusters, wird auch eine von Kommas getrennte Liste akzeptiert${OPENNMS_CASSANDRA_KEYSPACE} : Name Speicherplatz, um Leistungsdaten in, Standard: newts zu bestehen${OPENNMS_CASSANDRA_PORT} : Cassandra Port, Standard: 9042${OPENNMS_CASSANDRA_USERNAME} : Benutzername zugreift auf Cassandra${OPENNMS_CASSANDRA_PASSWORD} : Passwort zugreift auf Cassandra Standardmäßig wird das OpenNMS -Horizon -Bild mit RRDTool für Leistungsdatenspeicher ausgeführt. OpenNMS Horizon kann jedoch auch so konfiguriert werden, dass sie mit dem Newts Time Series -Schema auf Cassandra ausgeführt werden.
Die Konfigurationsoptionen finden Sie im Abschnitt Umgebungsvariablen . Das opennms-cassandra-helm.yml wird zur Verfügung gestellt, die zeigt, wie man OpenNMS-Horizont mit einem kleinen einzelnen Cassandra- Knoten auf derselben Maschine betreibt.
MIRROR_HOST : Server mit RPM -Paketen, Standard: yum.opennms.orgOPENNMS_VERSION : Version von OpenNMS Horizon RPM -Dateien, Standard: stable