该存储库已弃用。我们已经将构建代码移至OpenNMS存储库中。现在,发布和构建工作流是我们CI/CD工作流程的一部分集成的。
我们将使用Horizon 25存档该存储库,并且将不再维护此存储库。
bleeding OpenJDK 1124.1.0 ,使用OpenJDK 11的地平线的最后稳定版本11 该存储库作为Docker图像提供了地平线的快照。该图像提供了Horizon Core监视服务和Web应用程序。
建议使用docker-compose使用官方的PostgreSQL图像来构建服务堆栈。如果您已经运行了PostgreSQL数据库,则可以在.opennms.env和.postgres.env环境文件中提供数据库配置,否则将创建用户和数据库。
默认情况下,数据使用本地卷驱动程序以以下数据在Docker主机上持续存在:
# 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需要手动编辑OpenNMS Horizon配置文件,您可以通过提供etc-overlay目录来添加自己的配置文件。在启动时,文件覆盖默认配置。
- ./etc-overlay:/opt/opennms-etc-overlay如果您希望在特定目录中的Docker主机上使用OpenNMS Horizon配置,则可以使用以下配置安装一个目录:
volumes :
- ./myHorizonConfig:/opt/opennms/etc如果目录为空,则将使用/opt/opennms/share/etc-pristine初始化默认的原始配置。
重要:注意可以通过文件系统上坚持使用的Web UI更改的配置,例如users.xml , groups.xml , surveillance-categories.xml , snmp-config.xml等。
git clone https://github.com/opennms-forge/docker-horizon-core-web.git
cd docker-horizon-core-web
docker-compose up -dWeb应用程序已在TCP端口8980上公开。您可以使用默认用户管理员使用密码管理员登录。请立即将默认密码更改为安全密码。
为了获得所有可用容器选项的帮助,只需运行:
docker run --rm opennms/horizon-core-web可以很容易地添加Java选项来控制JVM进行性能调整或调试的行为。环境变量JAVA_OPTS通过Java命令传递,可用于扩展或覆盖JVM选项。
重要的是:在docker-entrypoint.sh和opennms.conf中的docker-entrypoint.sh和java选项中,给出更多控制java二进制命令。 Java过程具有PID 1和
在环境文件中使用:
env_file :
- .java.env
cat .java.env
JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinal用于Docker-Compose服务环境定义:
opennms :
container_name : opennms.core.web
image : opennms/horizon-core-web:latest
environment :
- JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinal 为了控制和隔离流程的资源使用情况,使用了内核特征cgroup(对照组) 。通过Java的组合,关于最大堆尺寸和限制容器的内存使用情况还有一些其他事情。
默认情况下,JVM人体工程学计算基于Docker主机内存的最大堆大小,而不是通过带有Cgroups的内存设置。
为了确保JVM计算最大堆大小正确,您有两个选择:
-Xmx手动设置正确的最大堆大小JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap从Java SE 8U131开始,JVM与Docker CPU透明地限制了Docker-ware。如果未指定-XX:ParallelGCThreads或-XX:CICompilerCount ,则JVM将应用Docker CPU限制,因为数字CPU并计算GC和JIT编译器线程的数量,就像在裸机上运行一样。
入口点脚本用于控制起始行为:
-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如果要执行更新,请创建A /opt/opennms/etc/do-upgrade文件。从-i或-s开始,将运行一次install -dis命令以更新配置和数据库架构。
所有进行升级或启动OpenNMS Horizon的选项验证配置是否有效并通过配置测试。
如果您只想在OpenNMS之外维护自定义配置文件,则可以使用ETC-Roverlay目录。此目录中的所有文件仅复制到运行容器中的/opt/openNMS/等。您只能在这样的本地目录上安装:
volumes :
- ./etc-overlay:/opt/opennms-etc-overlay 如果您只想维护Jetty应用程序容器的自定义配置文件,则可以使用Jetty-Roverlay目录。此目录中的所有文件仅复制到运行容器中的/Opt/OpenNMS/Jetty-Webapps/OpenNMS/Web-Inf中。您只能在这样的本地目录上安装:
volumes :
- ./jetty-overlay:/opt/opennms-jetty-webinf-overlay 为了覆盖任意配置文件/目录结构,您可以使用OpenNMS-Overlay目录。此目录的内容在运行容器中复制到/opt/openNMS/。您只能在这样的本地目录上安装:
volumes :
- ./opennms-overlay:/opt/opennms-overlay 此图像允许测试配置文件,如果它们是有效的XML,并且可以将其加载到启动时。它会在启动时自动执行,但也可以将其作为单个Shot命令执行。
使用以下方式获取配置测试仪的使用输出
docker run --rm opennms/horizon-core-web:latest -t一些示例如何使用此图像使用Config Tester:
测试所有配置文件:
docker run --rm opennms/horizon-core-web:latest -t -a
仅测试具有详细输出的特定配置文件-v :
docker run --rm opennms/horizon-core-web:latest -t -v snmp-config.xml
带有ETC-Roverlay目录的测试配置文件:
docker run --rm -v $(pwd)/etc-overlay:/opt/opennms-etc-overlay opennms/horizon-core-web:latest -t -v snmp-config.xml
POSTGRES_HOST :PostgreSQL数据库主机,默认值: databasePOSTGRES_PORT :访问postgresql数据库的端口,默认值: 5432POSTGRES_USER :PostgreSQL管理员用户,默认: postgresPOSTGRES_PASSWORD :PostgreSQL管理员密码,默认值: postgresOPENNMS_DBNAME :OpenNMS Horizon的数据库名称,默认值: opennmsOPENNMS_DBUSER :用户访问OpenNMS Horizon数据库,默认值: opennmsOPENNMS_DBPASS :OpenNMS Horizon数据库用户的密码,默认值: opennmsOPENNMS_KARAF_SSH_HOST :KARAF SSH端口的侦听地址,默认值: 0.0.0.0OPENNMS_KARAF_SSH_PORT :KARAF的SSH端口,默认值: 8101使用Cassandra群集:
${OPENNMS_CASSANDRA_HOSTNAMES}${OPENNMS_CASSANDRA_KEYSPACE} newts${OPENNMS_CASSANDRA_PORT} :Cassandra Port,默认值: 9042${OPENNMS_CASSANDRA_USERNAME} :用户名访问Cassandra${OPENNMS_CASSANDRA_PASSWORD} :密码访问Cassandra 默认情况下, OpenNMS Horizon映像将使用RRDTOOL进行性能数据存储。但是,也可以使用NEWTS时间序列架构配置OpenNMS Horizon在Cassandra上运行。
配置选项可以在“环境变量”部分中找到。提供了opennms-cassandra-helm.yml其中说明了如何在同一台机器上使用一个小单个Cassandra节点运行OpenNMS Horizon 。
MIRROR_HOST :带RPM软件包的服务器,默认值: yum.opennms.orgOPENNMS_VERSION :OpenNMS Horizon RPM文件的版本,默认值: stable