Este repositorio está en desuso. Hemos movido el código de compilación al repositorio de OpenNMS. El flujo de trabajo Publish and Build ahora está integrado como parte de nuestro flujo de trabajo CI/CD.
Archivaremos este repositorio con Horizon 25 y ya no mantendremos este repositorio.
bleeding , Versión diaria de borde de sangrado de Horizon 24 usando OpenJDK 1124.1.0 , última versión estable de Horizon usando OpenJDK 11 Este repositorio proporciona instantáneas para Horizon como imágenes de Docker. La imagen proporciona los servicios de monitoreo de Horizon Core y la aplicación web.
Se recomienda utilizar docker-compose para construir una pila de servicios utilizando la imagen oficial de PostgreSQL . En caso de que ya se ejecute una base de datos PostgreSQL , puede proporcionar la configuración de la base de datos en los archivos .opennms.env y .postgres.env de entorno, de lo contrario, los usuarios y la base de datos se crearán.
Los datos se persisten de forma predeterminada en su host Docker utilizando un controlador de volumen local para los siguientes datos:
# 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 Se requiere editar manualmente los archivos de configuración de OpenNMS Horizon , puede agregar sus propios archivos de configuración proporcionando un directorio etc-overlay . Al inicio, los archivos sobrescriben la configuración predeterminada.
- ./etc-overlay:/opt/opennms-etc-overlaySi prefiere tener la configuración de OpenNMS Horizon en su host de Docker en un directorio específico, puede montar un directorio con su configuración así:
volumes :
- ./myHorizonConfig:/opt/opennms/etc En caso de que el directorio esté vacío, se inicializará con una configuración prístina predeterminada de /opt/opennms/share/etc-pristine .
IMPORTANTE: Tenga cuidado con las configuraciones que se pueden cambiar a través de la interfaz de usuario web que persisten en el sistema de archivos, por ejemplo, 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 -dLa aplicación web está expuesta en el puerto TCP 8980. Puede iniciar sesión con el administrador de usuarios predeterminado con contraseña admin . Cambie inmediatamente la contraseña predeterminada a una contraseña segura.
Para obtener una ayuda para todas las opciones de contenedores disponibles, simplemente se ejecute:
docker run --rm opennms/horizon-core-web Es fácilmente posible agregar opciones de Java para controlar el comportamiento del JVM para la sintonización o la depuración de rendimiento. La variable de entorno JAVA_OPTS se pasa en el comando Java y se puede usar para extender o sobrescribir opciones JVM.
IMPORTANTE: Para dar más control, el comando binario Java de forma nativa en Docker-entrypoint.sh y Java Opciones en opennms.conf no se evalúan. El proceso de Java tiene PID 1 y
Utilizado en un archivo de entorno:
env_file :
- .java.env
cat .java.env
JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinalUtilizado en la definición del entorno de servicio Docker-Compose:
opennms :
container_name : opennms.core.web
image : opennms/horizon-core-web:latest
environment :
- JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinal Para controlar y aislar el uso de recursos de los procesos, se utiliza la característica del kernel (grupos de control) . Con la combinación de Java, hay algunas cosas adicionales a las que cuidar con respecto al tamaño máximo del montón y limitar el uso de la memoria del contenedor.
Por defecto, JVM Ergonomics calcula el tamaño máximo de los montones en función de la memoria de host de Docker y no por la memoria establecida con CGROUPS .
Para asegurarse de que el JVM calcule el tamaño máximo del montón correcto, tiene dos opciones:
-Xmx , consulte la sección arriba Establecer opciones de JavaJAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap A partir de Java SE 8U131, el JVM es consciente de Docker con los límites de la CPU de Docker de manera transparente. Tan largo si -XX:ParallelGCThreads o -XX:CICompilerCount , el JVM aplicará el límite de CPU de Docker como el número de CPU y calcula el número de hilos de compilador GC y JIT como se ejecuta en metal desnudo.
El script del punto de entrada se usa para controlar el comportamiento inicial:
-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 desea hacer cumplir una actualización, cree un archivo A /opt/opennms/etc/do-upgrade . Comenzando con -i o -s ejecutará el comando install -dis una vez para actualizar el esquema de configuración y base de datos.
Todas las opciones que realizan actualizaciones o inician OpenNMS Horizon Verifique si la configuración es válida y pasan la prueba de configuración.
Si solo desea mantener archivos de configuración personalizados fuera de OpenNMS, puede usar un directorio ETC-Overlay. Todos los archivos en este directorio se simplemente copiados en/opt/opennms/etc en el contenedor en ejecución. Puede montar un directorio local como este:
volumes :
- ./etc-overlay:/opt/opennms-etc-overlay Si solo desea mantener archivos de configuración personalizados para el contenedor de aplicaciones de jetty, puede usar un directorio de jetty-superlay. Todos los archivos en este directorio se solo se copian en/opt/opennms/jetty-webapps/opennms/web-inf en el contenedor en ejecución. Puede montar un directorio local como este:
volumes :
- ./jetty-overlay:/opt/opennms-jetty-webinf-overlay Para superponer los archivos de configuración arbitrarios/estructuras de directorio, puede usar un directorio OpenNMS-Overlay. El contenido de este directorio se copia en/opt/opennms/en el contenedor en ejecución. Puede montar un directorio local como este:
volumes :
- ./opennms-overlay:/opt/opennms-overlay Esta imagen permite probar archivos de configuración si son XML válidos y si se pueden cargar en el inicio. Se ejecuta automáticamente en el inicio, pero también se puede ejecutar como un comando de disparo único.
Obtenga la salida de uso del probador de configuración con:
docker run --rm opennms/horizon-core-web:latest -tAlgunos ejemplos cómo usar el probador de configuración con esta imagen:
Pruebe todos los archivos de configuración:
docker run --rm opennms/horizon-core-web:latest -t -a
Pruebe solo un archivo de configuración específico con salida detallada -v :
docker run --rm opennms/horizon-core-web:latest -t -v snmp-config.xml
Pruebe los archivos de configuración con un directorio ETC-Overlay:
docker run --rm -v $(pwd)/etc-overlay:/opt/opennms-etc-overlay opennms/horizon-core-web:latest -t -v snmp-config.xml
POSTGRES_HOST : host de base de datos PostgreSQL, predeterminado: databasePOSTGRES_PORT : puerto para acceder a la base de datos PostgreSQL, predeterminado: 5432POSTGRES_USER : Usuario administrador de PostgreSQL, predeterminado: postgresPOSTGRES_PASSWORD : PostgreSQL Admin Password, predeterminado: postgresOPENNMS_DBNAME : Nombre de la base de datos para OpenNMS Horizon, predeterminado: opennmsOPENNMS_DBUSER : usuario para acceder a la base de datos OpenNMS Horizon, predeterminado: opennmsOPENNMS_DBPASS : contraseña para el usuario de la base de datos OpenNMS Horizon, predeterminado: opennmsOPENNMS_KARAF_SSH_HOST : dirección de escucha para el puerto KARAF SSH, predeterminado: 0.0.0.0OPENNMS_KARAF_SSH_PORT : puerto SSH para KARAF, predeterminado: 8101Usando un clúster de Cassandra:
${OPENNMS_CASSANDRA_HOSTNAMES} : nombre de host o dirección IP del clúster Cassandra, una lista separada de comas también se acepta${OPENNMS_CASSANDRA_KEYSPACE} : espacio de nombre para persistir los datos de rendimiento en, predeterminado: newts${OPENNMS_CASSANDRA_PORT} : puerto Cassandra, predeterminado: 9042${OPENNMS_CASSANDRA_USERNAME} : Nombre de usuario que accede a Cassandra${OPENNMS_CASSANDRA_PASSWORD} : Contraseña Acceder a Cassandra Por defecto, la imagen OpenNMS Horizon se ejecutará utilizando RRDTool para el almacenamiento de datos de rendimiento. Sin embargo, OpenNMS Horizon también se puede configurar para ejecutarse en Cassandra utilizando el esquema de la serie temporal de Newts .
Las opciones de configuración se pueden encontrar en la sección Variables de entorno . Se proporciona el opennms-cassandra-helm.yml que ilustra cómo ejecutar OpenNMS Horizon con un pequeño nodo Cassandra en la misma máquina.
MIRROR_HOST : servidor con paquetes RPM, predeterminado: yum.opennms.orgOPENNMS_VERSION : Versión de los archivos RPM de OpenNMS Horizon, predeterminado: stable