Ce référentiel est obsolète. Nous avons déplacé le code de build dans le référentiel OpenNMS. Le workflow Publish and Build est désormais intégré dans le cadre de notre flux de travail CI / CD.
Nous archiverons ce référentiel avec Horizon 25 et ne maintiendrons plus ce référentiel.
bleeding , version quotidienne de bord de saignement de l'horizon 24 en utilisant OpenJDK 1124.1.0 , dernière version stable de Horizon en utilisant OpenJDK 11 Ce référentiel fournit des instantanés pour Horizon sous forme d'images Docker. L'image fournit les services de surveillance Horizon Core et l'application Web.
Il est recommandé d'utiliser docker-compose pour créer une pile de services à l'aide de l'image PostgreSQL officielle. Dans le cas où vous avez déjà une base de données PostgreSQL en cours d'exécution, vous pouvez fournir la configuration de la base de données dans les fichiers d'environnement .opennms.env et .postgres.env , sinon les utilisateurs et la base de données seront créés.
Les données sont par défaut qui ont persisté sur votre hôte Docker à l'aide d'un pilote de volume local pour les données suivantes:
# 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 Il est nécessaire de modifier manuellement les fichiers de configuration d'OpenNMS Horizon , vous pouvez ajouter vos propres fichiers de configuration en fournissant un répertoire etc-overlay Au démarrage, les fichiers écrasent la configuration par défaut.
- ./etc-overlay:/opt/opennms-etc-overlaySi vous préférez vous avoir une configuration d'OpenNMS Horizon sur votre hôte Docker dans un répertoire spécifique, vous pouvez monter un répertoire avec votre configuration comme ceci:
volumes :
- ./myHorizonConfig:/opt/opennms/etc Dans le cas où le répertoire est vide, il sera initialisé avec une configuration vierge par défaut de /opt/opennms/share/etc-pristine .
IMPORTANT: Prenez soin des configurations qui peuvent être modifiées via l'interface utilisateur Web qui sont persistées sur le système de fichiers, par exemple users.xml , groups.xml , surveillance-categories.xml , snmp-config.xml , etc.
git clone https://github.com/opennms-forge/docker-horizon-core-web.git
cd docker-horizon-core-web
docker-compose up -dL'application Web est exposée sur le port TCP 8980. Vous pouvez vous connecter avec l'administrateur utilisateur par défaut avec l'administrateur de mot de passe. Veuillez modifier immédiatement le mot de passe par défaut en un mot de passe sécurisé.
Pour obtenir une aide pour toutes les options de conteneurs disponibles, il suffit de fonctionner:
docker run --rm opennms/horizon-core-web Il est facilement possible d'ajouter des options Java pour contrôler le comportement du JVM pour le réglage des performances ou le débogage. La variable d'environnement JAVA_OPTS est transmise sur la commande Java et peut être utilisée pour étendre ou écraser les options JVM.
Important: pour donner plus de contrôle, la commande binaire Java nativement dans le docker-entrypoint.sh et les options java dans opennms.conf ne sont pas évaluées. Le processus Java a le pid 1 et
Utilisé dans un fichier d'environnement:
env_file :
- .java.env
cat .java.env
JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinalUtilisé dans la définition de l'environnement de service Docker-Compose:
opennms :
container_name : opennms.core.web
image : opennms/horizon-core-web:latest
environment :
- JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinal Pour contrôler et isoler l'utilisation des ressources des processus, les cgroupes de caractéristiques du noyau (groupes de contrôle) sont utilisés. Avec la combinaison de Java, il y a des choses supplémentaires à prendre en charge la taille maximale du tas et la limitation de l'utilisation de la mémoire du conteneur.
Par défaut, l'ergonomie JVM calcule la taille maximale des tas en fonction de la mémoire hôte docker et non par l'ensemble de mémoire avec CGroups .
Pour vous assurer que le JVM calcule la taille maximale du tas correct, vous avez deux options:
-Xmx Voir la section ci-dessus définir les options JavaJAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap En ce qui concerne Java SE 8U131, le JVM est docker avec Docker CPU limite de manière transparente. Aussi long si -XX:ParallelGCThreads ou -XX:CICompilerCount ne sont pas spécifiés, le JVM appliquera la limite du processeur Docker comme le nombre de processeurs et calcule le nombre de fils de compilation GC et JIT comme fonctionnant sur le métal nus.
Le script de point d'entrée est utilisé pour contrôler le comportement de démarrage:
-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 Si vous souhaitez appliquer une mise à jour, créez un fichier A /opt/opennms/etc/do-upgrade . En commençant par -i ou -s exécutera la commande install -dis une fois pour mettre à jour le schéma de configuration et de base de données.
Toutes les options qui effectuent des mises à niveau ou démarrent l'OpenNMS Horizon Vérifiez si la configuration est valide et passe le test de configuration.
Si vous souhaitez simplement maintenir des fichiers de configuration personnalisés en dehors d'OpenNMS, vous pouvez utiliser un répertoire ETC-Oplay. Tous les fichiers de ce répertoire sont simplement copiés dans / opt / opennms / etc dans le conteneur en cours d'exécution. Vous pouvez simplement monter un répertoire local comme ceci:
volumes :
- ./etc-overlay:/opt/opennms-etc-overlay Si vous souhaitez simplement maintenir des fichiers de configuration personnalisés pour le conteneur de l'application de jetée, vous pouvez utiliser un répertoire de mise en place de jets. Tous les fichiers de ce répertoire sont simplement copiés dans / opt / opennms / jetty-webapps / opennms / web-inf dans le conteneur en cours d'exécution. Vous pouvez simplement monter un répertoire local comme ceci:
volumes :
- ./jetty-overlay:/opt/opennms-jetty-webinf-overlay Pour superposer des fichiers de configuration arbitraires / structures de répertoire, vous pouvez utiliser un répertoire OpenNMS-Overlay. Le contenu de ce répertoire est copié dans / opt / opennms / dans le conteneur en cours d'exécution. Vous pouvez simplement monter un répertoire local comme ceci:
volumes :
- ./opennms-overlay:/opt/opennms-overlay Cette image permet de tester des fichiers de configuration s'ils sont valides XML et s'ils peuvent être chargés au démarrage. Il est automatiquement exécuté sur le démarrage, mais il peut également être exécuté en tant que commande de tir unique.
Obtenez la sortie d'utilisation du testeur de configuration avec:
docker run --rm opennms/horizon-core-web:latest -tQuelques exemples comment utiliser le testeur de configuration avec cette image:
Testez tous les fichiers de configuration:
docker run --rm opennms/horizon-core-web:latest -t -a
Testez juste un fichier de configuration spécifique avec une sortie verbeux -v :
docker run --rm opennms/horizon-core-web:latest -t -v snmp-config.xml
Tester les fichiers de configuration avec un répertoire de dépassement etc:
docker run --rm -v $(pwd)/etc-overlay:/opt/opennms-etc-overlay opennms/horizon-core-web:latest -t -v snmp-config.xml
POSTGRES_HOST : Hôte de la base de données PostgreSQL, par défaut: databasePOSTGRES_PORT : port pour accéder à la base de données PostgreSQL, par défaut: 5432POSTGRES_USER : utilisateur d'administration PostgreSQL, par défaut: postgresPOSTGRES_PASSWORD : mot de passe d'administration postgresql, par défaut: postgresOPENNMS_DBNAME : Nom de la base de données pour OpenNMS Horizon, par défaut: opennmsOPENNMS_DBUSER : Utilisateur pour accéder à la base de données OpenNMS Horizon, par défaut: opennmsOPENNMS_DBPASS : Mot de passe pour l'utilisateur de la base de données OpenNMS Horizon, par défaut: opennmsOPENNMS_KARAF_SSH_HOST : Adresse d'écoute pour le port Karaf SSH, par défaut: 0.0.0.0OPENNMS_KARAF_SSH_PORT : port ssh pour karaf, par défaut: 8101Utilisation d'un cluster Cassandra:
${OPENNMS_CASSANDRA_HOSTNAMES} : nom d'hôte ou adresse IP du cluster Cassandra, une liste séparée par des virgules est également acceptée${OPENNMS_CASSANDRA_KEYSPACE} : nom d'espace pour persister les données de performance, par défaut: newts${OPENNMS_CASSANDRA_PORT} : port Cassandra, par défaut: 9042${OPENNMS_CASSANDRA_USERNAME} : nom d'utilisateur accès à Cassandra${OPENNMS_CASSANDRA_PASSWORD} : mot de passe accéder à Cassandra Par défaut, l'image OpenNMS Horizon s'exécutera à l'aide de RRDTool pour le stockage de données de performances. Cependant, OpenNMS Horizon peut également être configuré pour s'exécuter sur Cassandra en utilisant le schéma de séries chronologiques de nouvelles .
Les options de configuration peuvent être trouvées dans la section Variables d'environnement . L' opennms-cassandra-helm.yml est fourni qui illustre comment exécuter Opennms Horizon avec un petit nœud Cassandra unique sur la même machine.
MIRROR_HOST : serveur avec packages RPM, par défaut: yum.opennms.orgOPENNMS_VERSION : version des fichiers RPM OpenNMS Horizon, par défaut: stable