Este repositório está preguiçoso. Mudamos o código de construção para o repositório OpenNMS. O fluxo de trabalho de publicação e construção agora está integrado como parte do nosso fluxo de trabalho de CI/CD.
Arquivaremos esse repositório com o Horizon 25 e não manteremos mais esse repositório.
bleeding de arestas de sangramento diário do horizonte 24 usando o OpenJDK 1124.1.0 , último lançamento estável do horizonte usando o OpenJDK 11 Este repositório fornece instantâneos para o horizonte como imagens do Docker. A imagem fornece os serviços de monitoramento do núcleo do horizonte e o aplicativo da web.
Recomenda-se usar docker-compose para criar uma pilha de serviços usando a imagem oficial do PostGresql . Caso você já tenha um banco de dados PostgreSQL em execução, pode fornecer a configuração do banco de dados nos arquivos de ambiente .opennms.env e .postgres.env , caso contrário, os usuários e o banco de dados serão criados.
Os dados são, por padrão, persistidos no seu host do Docker usando um driver de volume local para os seguintes dados:
# 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 É necessário editar manualmente os arquivos de configuração do OpenNMS Horizon , você pode adicionar seus próprios arquivos de configuração fornecendo um diretório etc-overlay Na inicialização, os arquivos substituem a configuração padrão.
- ./etc-overlay:/opt/opennms-etc-overlaySe você preferir ter a configuração do Horizon OpenNMS no host do Docker em um diretório específico, você pode montar um diretório com sua configuração como esta:
volumes :
- ./myHorizonConfig:/opt/opennms/etc Caso o diretório esteja vazio, ele será inicializado com uma configuração intocada padrão de /opt/opennms/share/etc-pristine .
IMPORTANTE: Cuide-se com configurações que podem ser alteradas através da interface da web que são persistidas no sistema de arquivos, por exemplo, 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 -dO aplicativo da Web está exposto na porta TCP 8980. Você pode fazer login com o administrador do usuário padrão com admin . Altere imediatamente a senha padrão para uma senha segura.
Para obter uma ajuda para todas as opções de contêiner disponíveis, basta executar:
docker run --rm opennms/horizon-core-web É facilmente possível adicionar opções de Java para controlar o comportamento da JVM para ajustar ou depuração de desempenho. A variável de ambiente JAVA_OPTS é passada no comando java e pode ser usada para estender ou substituir as opções JVM.
IMPORTANTE: Para dar mais controle, o comando binário Java nas opções do Docker-EntryPoint.SH e Java em opennms.conf não são avaliadas. O processo Java tem PID 1 e
Usado em um arquivo de ambiente:
env_file :
- .java.env
cat .java.env
JAVA_OPTS=-XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintFlagsFinalUsado na definição do ambiente de serviço do 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 e isolar o uso de recursos dos processos, o recurso Kernel CGROUPS (grupos de controle) é usado. Com a combinação de Java, existem algumas coisas adicionais para cuidar do tamanho máximo da pilha e do uso da memória limitando o contêiner.
Por padrão, a ergonomia da JVM calcula o tamanho máximo dos montes com base na memória do host do Docker e não pela memória definida com os cgroups .
Para garantir que a JVM calcule o tamanho máximo da pilha correto, você tem duas opções:
-Xmx , consulte a seção acima, defina opções javaJAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap A partir de Java SE 8U131, a JVM é consciente do docker com o Docker CPU limita de forma transparente. Durante o tempo, não forem especificados -XX:ParallelGCThreads ou -XX:CICompilerCount , a JVM aplicará o limite da CPU do docker como o número de CPUs e calcula o número de threads GC e JIT compiladores, assim como a execução em metal nu.
O script de ponto de entrada é usado para controlar o comportamento 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 Se você deseja aplicar uma atualização, crie o arquivo A /opt/opennms/etc/do-upgrade . Começando com -i ou -s executará o comando install -dis uma vez para atualizar o esquema de configuração e banco de dados.
Todas as opções que fazem atualizações ou iniciam o OpenNMS Horizon Verificam se a configuração é válida e passa no teste de configuração.
Se você deseja apenas manter arquivos de configuração personalizados fora do OpenNMS, poderá usar um diretório de overlay etc. Todos os arquivos neste diretório são copiados para/opt/opennms/etc no contêiner em execução. Você pode simplesmente montar um diretório local como este:
volumes :
- ./etc-overlay:/opt/opennms-etc-overlay Se você deseja apenas manter arquivos de configuração personalizados para o contêiner de aplicativos Jetty, poderá usar um diretório de overlay de jetty. Todos os arquivos neste diretório são copiados para/opt/opennms/jetty-webapps/opennms/web-inf no contêiner em execução. Você pode simplesmente montar um diretório local como este:
volumes :
- ./jetty-overlay:/opt/opennms-jetty-webinf-overlay Para sobrepor arquivos de configuração arbitrária/estruturas de diretório, você pode usar um diretório OpenNMS-Overlay. O conteúdo deste diretório é copiado para/opt/opennms/no contêiner em execução. Você pode simplesmente montar um diretório local como este:
volumes :
- ./opennms-overlay:/opt/opennms-overlay Esta imagem permite testar arquivos de configuração se eles forem válidos XML e se puderem ser carregados na inicialização. Ele é executado automaticamente na inicialização, mas também pode ser executado como um comando de tiro único.
Obtenha a saída de uso do testador de configuração com:
docker run --rm opennms/horizon-core-web:latest -tAlguns exemplos de como usar o testador de configuração com esta imagem:
Teste todos os arquivos de configuração:
docker run --rm opennms/horizon-core-web:latest -t -a
Teste apenas um arquivo de configuração específico com saída verbosa -v :
docker run --rm opennms/horizon-core-web:latest -t -v snmp-config.xml
Teste arquivos de configuração com um diretório 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 banco de dados PostGresql, padrão: databasePOSTGRES_PORT : Porta para acessar o banco de dados PostgreSQL, padrão: 5432POSTGRES_USER : PostGresql Admin User, Padrão: postgresPOSTGRES_PASSWORD : PostGresql Admin Senha, Padrão: postgresOPENNMS_DBNAME : nome do banco de dados para o OpenNMS Horizon, padrão: opennmsOPENNMS_DBUSER : Usuário para acessar o banco de dados OpenNMS Horizon, padrão: opennmsOPENNMS_DBPASS : Senha para OpenNMS Horizon Database User, padrão: opennmsOPENNMS_KARAF_SSH_HOST : Endereço de escuta para Karaf SSH Port, Padrão: 0.0.0.0OPENNMS_KARAF_SSH_PORT : porta ssh para karaf, padrão: 8101Usando um cluster de Cassandra:
${OPENNMS_CASSANDRA_HOSTNAMES} : nome do host ou endereço IP do cluster Cassandra, uma lista separada por vírgula também é aceita${OPENNMS_CASSANDRA_KEYSPACE} : espaço de nome para persistir dados de desempenho, padrão: newts${OPENNMS_CASSANDRA_PORT} : porta Cassandra, padrão: 9042${OPENNMS_CASSANDRA_USERNAME} : Nome de usuário Acessando Cassandra${OPENNMS_CASSANDRA_PASSWORD} : senha acessando Cassandra Por padrão, a imagem OpenNMS Horizon será executada usando o RRDTOOL para armazenamento de dados de desempenho. No entanto, o OpenNMS Horizon também pode ser configurado para ser executado no Cassandra usando o esquema de séries temporais do Newts .
As opções de configuração podem ser encontradas na seção Variáveis de ambiente . É fornecido o opennms-cassandra-helm.yml o que ilustra como executar o OpenNMS Horizon com um pequeno nó Cassandra único na mesma máquina.
MIRROR_HOST : servidor com pacotes RPM, padrão: yum.opennms.orgOPENNMS_VERSION : versão dos arquivos OpenNMs Horizon RPM, padrão: stable