Show Menu
TÓPICOS×

Painel de operações

Introdução

O Painel de operações no AEM 6 ajuda os operadores do sistema a monitorar rapidamente a integridade do sistema do AEM. Ele também fornece informações de diagnóstico geradas automaticamente sobre aspectos relevantes do AEM e permite configurar e executar automação de manutenção autônoma para reduzir significativamente as operações do projeto e os casos de suporte. O Painel de Operações pode ser estendido com verificações de integridade personalizadas e tarefas de manutenção. Além disso, os dados do Painel de operações podem ser acessados de ferramentas de monitoramento externas via JMX.
O Painel de Operações:
  • É um status de sistema de um clique para ajudar os departamentos de operações a aumentar a eficiência
  • Fornece uma visão geral da integridade do sistema em um único local centralizado
  • Reduz o tempo para localizar, analisar e corrigir problemas
  • Oferece automação de manutenção independente que ajuda a reduzir significativamente os custos das operações do projeto
Ele pode ser acessado indo até Ferramentas - Operações na tela de boas-vindas do AEM.
Para poder acessar o Painel de Operações, o usuário conectado deve fazer parte do grupo de usuários "Operadores". Para obter mais informações, consulte a documentação sobre Administração de direitos de acesso, grupo e usuário.

Relatórios de integridade

O sistema de relatório de integridade fornece informações sobre a integridade de uma instância do AEM por meio das verificações de integridade do Sling. Isso pode ser feito por meio de solicitações OSGI, JMX, HTTP (via JSON) ou pela interface de usuário de toque. Ele oferece medidas e limites para certos contadores configuráveis e, em alguns casos, oferece informações sobre como resolver o problema.
Ele tem vários recursos, descritos abaixo.

Verificações de integridade

Os relatórios de saúde são um sistema de cartões que indica boa ou má saúde em relação a uma área específica do produto. Esses cartões são visualizações das Sling Health Checks, que agregam dados do JMX e de outras fontes e expõem informações processadas novamente como MBeans. Esses MBeans também podem ser inspecionados no console da Web JMX, no domínio org.apache.sling.saudcheck .
A interface de Relatórios de integridade pode ser acessada por meio do menu Ferramentas - Operações - Relatórios de integridade, na tela de Boas-vindas do AEM, ou diretamente pelo seguinte URL:
https://<serveraddress>:port/libs/granite/operations/content/healthreports/healthreportlist.html
O sistema de cartões expõe três estados possíveis: OK , AVISO e CRÍTICO . Os estados resultam de regras e limites, que podem ser configurados passando o mouse sobre o cartão e, em seguida, clicando no ícone de engrenagem na barra de ação:

Tipos de verificação de integridade

Há dois tipos de verificações de integridade no AEM 6:
  1. Verificações de integridade individuais
  2. Verificações de integridade compostas
Uma verificação de integridade individual é uma verificação de integridade única que corresponde a um cartão de status. As verificações de integridade individuais podem ser configuradas com regras ou limites e podem fornecer uma ou mais dicas e links para resolver problemas de integridade identificados. Vejamos a verificação "Erros de registro" como um exemplo: se houver entradas ERROR nos registros da instância, elas serão encontradas na página de detalhes da verificação de integridade. Na parte superior da página, você verá um link para o analisador "Mensagem de registro" na seção Ferramentas de diagnóstico, que permitirá que você analise esses erros com mais detalhes e reconfigure os registradores.
Uma Verificação de integridade composta é uma verificação que agrega informações de várias verificações individuais.
As verificações de integridade composta são configuradas com o auxílio de tags de filtro. Essencialmente, todas as verificações únicas que têm a mesma tag de filtro serão agrupadas como uma verificação de integridade composta. Uma verificação de integridade composta terá um status OK somente se todas as verificações únicas agregadas tiverem status OK também.

Como criar verificações de integridade

No Painel de operações, você pode visualizar o resultado de verificações de integridade individuais e compostas.

Criando uma verificação de integridade individual

A criação de uma verificação de integridade individual envolve duas etapas: implementar uma Verificação de integridade Sling e adicionar uma entrada para a Verificação de integridade nos nós de configuração do Painel.
  1. Para criar uma Verificação de integridade Sling, é necessário criar um componente OSGI que implemente a interface Sling HealthCheck. Você adicionará esse componente dentro de um pacote. As propriedades do componente identificarão completamente a verificação de integridade. Quando o componente estiver instalado, um MBean JMX será criado automaticamente para a verificação de integridade. Consulte a Documentação do Sling Health Check para obter mais informações.
    Exemplo de um componente Sling Health Check, gravado com anotações do componente de serviço OSGI:
    @Component(service = HealthCheck.class,
    property = {
        HealthCheck.NAME + "=Example Check",
        HealthCheck.TAGS + "=example",
        HealthCheck.TAGS + "=test",
        HealthCheck.MBEAN_NAME + "=exampleHealthCheckMBean"
    })
     public class ExampleHealthCheck implements HealthCheck {
        @Override
        public Result execute() {
            // health check code
        }
     }
    
    
    A MBEAN_NAME propriedade define o nome da mbean que será gerada para essa verificação de integridade.
  2. Depois de criar uma Verificação de integridade, é necessário criar um novo nó de configuração para torná-lo acessível na interface do Painel de operações. Para esta etapa, é necessário saber o nome do JMX Mbean da verificação de integridade (a MBEAN_NAME propriedade). Para criar uma configuração para a Verificação de integridade, abra o CRXDE e adicione um novo nó (do tipo nt:unstructed ) no seguinte caminho: /apps/settings/granite/operations/hc
    As seguintes propriedades devem ser definidas no novo nó:
    • Nome: sling:resourceType
      • Tipo: String
      • ​Valor: granite/operations/components/mbean
    • Nome: resource
      • Tipo: String
      • ​Valor: /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/exampleHealthCheck
    O caminho do recurso acima é criado da seguinte forma: se o nome da sua verificação de integridade for "test", adicione "test" ao final do caminho /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck
    Então o caminho final será:
    /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/test
    Verifique se o /apps/settings/granite/operations/hc caminho tem as seguintes propriedades definidas como true:
    sling:configCollectionInherit
    sling:configPropertyInherit
    Isso solicitará que o gerenciador de configuração mescle as novas configurações com as existentes de /libs .

Criando uma verificação de integridade composta

A função de uma verificação de integridade composta é agregar várias verificações de integridade individuais que compartilham um conjunto de recursos comuns. Por exemplo, o Security Composite Health Check agrupa todas as verificações de integridade individuais que realizam verificações relacionadas com a segurança. A primeira etapa para criar uma verificação composta é adicionar uma nova configuração OSGI. Para ser exibido no Painel de operações, é necessário adicionar um novo nó de configuração, da mesma forma que fizemos para uma verificação simples.
  1. Vá para o Web Configuration Manager no Console OSGI. Você pode fazer isso acessando https://serveraddress:port/system/console/configMgr
  2. Procure a entrada chamada Apache Sling Composite Health Check (Verificação de integridade composta do Apache Sling). Após encontrá-lo, observe que existem duas configurações disponíveis: um para as verificações do sistema e outro para as verificações de segurança.
  3. Crie uma nova configuração pressionando o botão "+" no lado direito da configuração. Uma nova janela será exibida, como mostrado abaixo:
  4. Crie uma configuração e salve-a. Uma Mbean será criada com a nova configuração.
    A finalidade de cada propriedade de configuração é a seguinte:
    • ​Nome (hc.name): O nome da verificação de integridade composta. Um nome significativo é recomendado.
    • ​Tags (hc.tags): As tags para esta verificação de integridade. Se essa verificação de integridade composta for parte de outra verificação de integridade composta (como em uma hierarquia de verificações de integridade), adicione as tags às quais esse composto está relacionado.
    • ​Nome do MBean (hc.mbean.name): O nome do Mbean que será fornecido ao JMX MBean desta verificação de integridade composta.
    • ​Tags de filtro (filter.tags): Esta é uma propriedade específica de verificações de integridade compostas. Essas são as tags que o composto deve agregar. A verificação de integridade composta agregará em seu grupo todas as verificações de integridade que tenham qualquer tag correspondente a qualquer uma das tags de filtro desse composto. Por exemplo, uma verificação de integridade composta que tenha as tags de filtro test e check agregará todas as verificações de integridade individuais e compostas que têm qualquer uma das tags test e check em sua propriedade tags ( hc.tags ).
    Um novo JMX Mbean é criado para cada nova configuração da Verificação de integridade composta do Apache Sling.**
  5. Finalmente, a entrada da verificação de integridade composta que acabou de ser criada precisa ser adicionada nos nós de configuração do Painel de Operações. O procedimento para o efeito é o mesmo que para os controlos sanitários individuais: um nó do tipo nt:unstruct precisa ser criado em /apps/settings/granite/operations/hc . A propriedade resource do nó será definida pelo valor de hc.medium.name na configuração OSGI.
    Se, por exemplo, você tiver criado uma configuração e definir o valor hc.mbean.name como diskusage , os nós de configuração terão a seguinte aparência:
    • Nome: Composite Health Check
      • Tipo: nt:unstructured
    Com as seguintes propriedades:
    • Nome: sling:resourceType
      • Tipo: String
      • ​Valor: granite/operations/components/mbean
    • Nome: resource
      • Tipo: String
      • ​Valor: /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/diskusage
    Se você criar verificações de integridade individuais que pertencem logicamente a uma verificação composta que já está presente no Painel por padrão, elas serão automaticamente capturadas e agrupadas sob a respectiva verificação composta. Por isso, não há necessidade de criar um novo nó de configuração para essas verificações.
    Por exemplo, se você criar uma verificação de integridade de segurança individual, tudo o que você precisa fazer é atribuí-la à tag " security " e ela for instalada, ela aparecerá automaticamente sob a verificação composta de Verificações de segurança no Painel de Operações.

Verificações de integridade fornecidas com o AEM

Nome da verificação completa Descrição
Desempenho da consulta
Essa verificação de integridade foi simplificada no AEM 6.4 e agora verifica o Oak QueryStats MBean recentemente refatorado, mais especificamente o SlowQueries atributo. Se as estatísticas contiverem consultas lentas, a verificação de integridade retornará um aviso. Caso contrário, retornará o status OK.
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=queriesStatus,type=HealthCheck .
Comprimento da Fila de Manutenção
A Duração da Fila de Observação repete todos os Ouvintes de Eventos e Observadores de Plano de Fundo, compara seus queueSize itens maxQueueSize e:
  • retorna o status Crítico se o queueSize valor exceder o maxQueueSize valor (ou seja, quando os eventos seriam descartados)
  • retorna Avisar se o queueSize valor estiver acima do maxQueueSize * WARN_THRESHOLD (o valor padrão é 0,75)
O comprimento máximo de cada fila provém de configurações separadas (Oak e AEM) e não é configurável a partir dessa verificação de integridade. O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=ObservationQueueLengthHealthCheck,type=HealthCheck .
Limites de cruzamento da consulta
Os Limites de cruzamento de consulta verificam o QueryEngineSettings MBean, mais especificamente os atributos LimitInMemory e LimitReads , e retorna o seguinte status:
  • retorna o status Avisar se um dos limites for igual ou superior ao Integer.MAX_VALUE
  • retorna o status Aviso se um dos limites for menor que 10000 (a configuração recomendada do Oak)
  • retorna o status Crítico se não for possível recuperar os limites QueryEngineSettings ou qualquer um deles
O Mbean para esta verificação de integridade é org.apache.sling.saudcheck:name=queryTraversalLimitsBundle,type=HealthCheck .
Relógios sincronizados
Essa verificação é relevante apenas para clusters de nodestore de documentos. Ele retorna o seguinte status:
  • retorna o status de Aviso quando os relógios de instância ficam fora de sincronização e passam por um limite baixo predefinido
  • retorna o status Crítico quando os relógios de instância ficam fora de sincronia e ultrapassam um limite alto predefinido
Índices assíncronos
A verificação Índices Assíncronos:
  • retorna o status Crítico se pelo menos uma linha de indexação estiver falhando
  • verifica todas as vias de indexação lastIndexedTime e:
    • retorna o status Crítico se estiver há mais de 2 horas
    • retorna o status Aviso se estiver entre 2 horas e 45 minutos atrás
    • retorna o status OK se estiver há menos de 45 minutos
  • se nenhuma dessas condições for atendida, retornará o status OK
Os limites de status Crítico e Avisar são configuráveis. O Mbean para esta verificação de integridade é org.apache.sling.saudcheck:name=asyncIndexHealthCheck,type=HealthCheck .
Observação: Esta verificação de integridade está disponível com o AEM 6.4 e foi compatível com o AEM 6.3.0.1.
Índices Lucene grandes
Essa verificação usa os dados expostos pelo Lucene Index Statistics MBean para identificar grandes índices e retornos:
  • um status de Aviso se houver um índice com mais de 1 bilhão de documentos
  • um status crítico se houver um índice com mais de 1,5 bilhão de documentos
Os limites são configuráveis e o MBean para a verificação de integridade é org.apache.sling.saudcheck:name=largeIndexHealthCheck,type=HealthCheck.
Observação: Esta verificação está disponível com o AEM 6.4 e foi compatível com o AEM 6.3.2.0.
Manutenção do sistema
A Manutenção do sistema é uma verificação composta que retorna o OK se todas as tarefas de manutenção estiverem sendo executadas como configuradas. Lembre-se de que:
  • cada tarefa de manutenção é acompanhada de um exame de saúde
  • se uma tarefa não for adicionada a uma janela de manutenção, sua verificação de integridade retornará Crítico
  • é necessário configurar as tarefas de manutenção Log de Auditoria e Expurgação do Fluxo de Trabalho ou removê-las das janelas de manutenção. Se não estiverem configuradas, essas tarefas falharão na primeira tentativa de execução, então a verificação de Manutenção do Sistema retornará o status Crítico.
  • Com o AEM 6.4 , também há uma verificação para a tarefa Manutenção de binários Lucene
  • no AEM 6.2 e inferior, a verificação de manutenção do sistema retorna um status de Aviso logo após a inicialização, pois as tarefas nunca são executadas. A partir do 6.3, eles retornarão OK se a primeira janela de manutenção ainda não tiver sido atingida.
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=systemcheck,type=HealthCheck .
Fila de replicação
Esta verificação repete os agentes de replicação e observa suas filas. Para o item na parte superior da fila, a verificação verifica quantas vezes o agente repetiu a replicação. Se o agente tiver repetido a replicação mais do que o valor do numberOfRetriesAllowed parâmetro, ele retornará um aviso. O numberOfRetriesAllowed parâmetro é configurável.
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=ReplicationQueue,type=HealthCheck .
Tarefas de arremesso
O Sling Jobs verifica o número de jobs na fila no JobManager, o compara ao maxNumQueueJobs limite e:
  • retorna Crítico se houver mais do que maxNumQueueJobs os na fila
  • retorna Crítico se houver trabalhos ativos de longa duração com mais de 1 hora
  • retorna Crítico se houver trabalhos em fila e o último tempo de trabalho concluído for superior a 1 hora
Somente o número máximo de parâmetros de trabalhos em fila é configurável e tem o valor padrão de 1000.
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=slingJobs,type=HealthCheck .
Desempenho da solicitação
Esta verificação analisa a métrica granite.request.metrics.timer Sling slingmetricse:
  • retorna Crítico se o valor do percentil 75 estiver acima do limite crítico (o valor padrão é 500 milissegundos)
  • retorna Avisar se o valor do 75º percentil estiver acima do limite de aviso (o valor padrão é 200 milissegundos)
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=requestStatus,type=HealthCheck .
Erros de log
Essa verificação retornará o status Avisar se houver erros no log.
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=logErrorHealthCheck,type=HealthCheck .
Espaço em disco
A verificação de Espaço em Disco verifica o FileStoreStats MBean, recupera o tamanho do Node Store e a quantidade de espaço em disco utilizável na partição do Node Store e:
  • retorna Avisar se a proporção de espaço em disco utilizável para o tamanho do repositório for menor que o limite de aviso (o valor padrão é 10)
  • retorna Crítico se a taxa de espaço em disco utilizável para o tamanho do repositório for menor que o limite crítico (o valor padrão é 2)
Ambos os limites são configuráveis. A verificação só funciona em instâncias com um Repositório de segmentos.
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=DiskSpaceHealthCheck,type=HealthCheck .
Verificação de integridade do assistente de agendamento
Essa verificação retornará um aviso se a instância tiver trabalhos do Quartz em execução por mais de 60 segundos. O limite de duração aceitável é configurável.
Verificações de segurança
A verificação de segurança é um composto que agrega os resultados de várias verificações relacionadas à segurança. Essas verificações de integridade individuais tratam de preocupações diferentes da lista de verificação de segurança disponível na página de documentação da Lista de verificação de segurança. A verificação é útil como um teste de segurança de fumaça quando a instância é iniciada.
Grupos ativos
Os Pacotes Ativos verificam o estado de todos os pacotes e:
  • retorna o status Aviso se algum dos pacotes não estiver ativo ou (iniciando, com ativação lenta)
  • ignora o status dos pacotes na lista de ignorados
O parâmetro ignore list é configurável.
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=inativeBundles,type=HealthCheck .
Verificação de Cache de Código
Esta é uma verificação de integridade que verifica várias condições JVM que podem disparar um erro CodeCache presente no Java 7:
  • retorna Avisar se a instância estiver em execução no Java 7, com o enfraquecimento do Cache de Código ativado
  • retorna Avisar se a instância estiver em execução no Java 7 e o tamanho do Cache de Código Reservado for menor que um limite mínimo (o valor padrão é 90 MB)
O minimum.code.cache.size limite é configurável. Para obter mais informações sobre o bug, verifique view_bug.do?bug_id=8012547view_bug.do?bug_id=8012547 esta página .
O MBean para esta verificação de integridade é org.apache.sling.saudcheck:name=codeCacheHealthCheck,type=HealthCheck .
Recurso Buscar erros de caminho
Verifica se há recursos no caminho /apps/foundation/components/primary e:
  • retorna Avisar se houver nós secundários em /apps/foundation/components/primary

Monitoramento com Nagios

O Painel de verificação de integridade pode se integrar ao Nagios por meio do Granite JMX Mbeans. O exemplo abaixo ilustra como adicionar uma verificação que mostre a memória usada no servidor que executa o AEM.
  1. Configure e instale Nagios no servidor de monitoramento.
  2. Em seguida, instale o executor de plug-in remoto Nagios (NRPE).
    Para obter mais informações sobre como instalar Nagios e NRPE em seu sistema, consulte a Documentação do Nagios.
  3. Adicione uma definição de host para o servidor AEM. Isso pode ser feito por meio da interface da Web Nagios XI, usando o Configuration Manager:
    1. Abra um navegador e aponte para o servidor Nagios.
    2. Pressione o botão Configure (Configurar ) no menu superior.
    3. No painel esquerdo, pressione o Core Config Manager em Configuração ​avançada.
    4. Pressione o link Hosts na seção Monitoramento .
    5. Adicione a definição do host:
    Abaixo está um exemplo de um arquivo de configuração de host, caso esteja usando o Nagios Core:
    define host {
       address 192.168.0.5
       max_check_attempts 3
       check_period 24x7
       check-command check-host-alive
       contacts admin
       notification_interval 60
       notification_period 24x7
    }
    
    
  4. Instale Nagios e NRPE no servidor AEM.
  5. Instale o plug-in check_http_json em ambos os servidores.
  6. Defina um comando de verificação JSON genérico em ambos os servidores:
    define command{
    
        command_name    check_http_json-int
    
        command_line    /usr/lib/nagios/plugins/check_http_json --user "$ARG1$" --pass "$ARG2$" -u 'https://$HOSTNAME$:$ARG3$/$ARG4$' -e '$ARG5$' -w '$ARG6$' -c '$ARG7$'
    
    }
    
    
  7. Adicione um serviço para memória usada no servidor AEM:
    define service {
    
        use generic-service
    
        host_name my.remote.host
    
        service_description AEM Author Used Memory
    
        check_command  check_http_json-int!<cq-user>!<cq-password>!<cq-port>!system/sling/monitoring/mbeans/java/lang/Memory.infinity.json!{noname}.mbean:attributes.HeapMemoryUsage.mbean:attributes.used.mbean:value!<warn-threshold-in-bytes>!<critical-threshold-in-bytes>
    
        }
    
    
  8. Verifique seu painel Nagios para obter o serviço recém-criado:

Diagnosis tools

O Painel de operações também fornece acesso às Ferramentas de diagnóstico que podem ajudar a encontrar e solucionar problemas das causas raiz dos avisos provenientes do Painel de verificação de integridade, além de fornecer informações importantes de depuração para os operadores do sistema.
Entre as suas características mais importantes estão:
  • Um analisador de mensagens de registro
  • A capacidade de acessar os despejos de heap e thread
  • Solicitações e analisadores de desempenho de consulta
Você pode acessar a tela Ferramentas de diagnóstico indo até Ferramentas - Operações - Diagnóstico na tela de boas-vindas do AEM. Você também pode acessar a tela acessando diretamente o seguinte URL: https://serveraddress:port/libs/granite/operations/content/diagnosis.html

Mensagens de registro

Por padrão, as mensagens de log da Interface do usuário exibirão todas as mensagens de ERRO. Se desejar que mais mensagens de log sejam exibidas, é necessário configurar um agente de log com o nível de log apropriado.
As mensagens de registro usam um anexo de registro de memória e, portanto, não estão relacionadas aos arquivos de registro. Outra consequência é que alterar os níveis de log nesta interface não alterará as informações que são registradas nos arquivos de log tradicionais. A adição e remoção de registradores nesta interface afetará apenas o registrador de memória. Além disso, observe que a alteração das configurações do agente de log será refletida no futuro do agente de log de memória - as entradas que já estão registradas e não são mais relevantes não serão excluídas, mas entradas semelhantes não serão registradas no futuro.
Você pode configurar o que é registrado fornecendo configurações de logger do botão de engrenagem superior esquerdo na interface do usuário. Lá, você pode adicionar, remover ou atualizar configurações de agente de log. Uma configuração de agente de log é composta por um nível de log (WARN / INFO / DEBUG) e um nome de filtro. O nome do filtro tem a função de filtrar a origem das mensagens de log que são registradas. Como alternativa, se um agente de log deve capturar todas as mensagens de log para o nível especificado, o nome do filtro deve ser " root ". Definir o nível de um agente de log acionará a captura de todas as mensagens com um nível igual ou superior ao especificado.
Exemplos:
  • Se você planeja capturar todas as mensagens de ERRO - nenhuma configuração é necessária. Todas as mensagens de ERRO são capturadas por padrão.
  • Se você planeja capturar todas as mensagens ERROR , WARN e INFO - o nome do agente de log deve ser definido como: " root " e o nível do agente de log para: INFORMAÇÕES .
  • Se você planeja capturar todas as mensagens provenientes de um determinado pacote (por exemplo, com.adobe.granite) - o nome do agente de log deve ser definido como: "com.adobe.granite" e o nível do agente de log para: DEBUG (isso capturará todas as mensagens de ERRO , AVISO , INFORMAÇÕES e DEPURAÇÃO ), conforme mostrado na imagem abaixo.
Não é possível definir um nome de agente de log para capturar somente mensagens ERROR por meio de um filtro especificado. Por padrão, todas as mensagens de ERRO são capturadas.
A interface do usuário das mensagens de log não reflete o log de erros real. A menos que você esteja configurando outros tipos de mensagens de log na interface do usuário, você verá apenas mensagens de ERRO. Para saber como exibir mensagens de registro específicas, consulte as instruções acima.
As configurações na página de diagnóstico não influenciam o que está registrado nos arquivos de log e vice-versa. Assim, embora o registro de erros possa capturar mensagens INFO, talvez você não as veja na interface do usuário das mensagens de registro. Além disso, por meio da interface do usuário é possível capturar mensagens DEBUG de determinados pacotes sem afetar o log de erros. Para obter mais informações sobre como configurar os arquivos de registro, consulte Registro .
Com o AEM 6.4 , as tarefas de manutenção são desconectadas da caixa em um formato mais rico em informações no nível de INFO. Isso permite uma melhor visibilidade do estado das tarefas de manutenção.
Caso esteja usando ferramentas de terceiros (como Splunk) para monitorar e reagir à atividade da tarefa de manutenção, você pode usar as seguintes declarações de log:
Log level: INFO
DATE+TIME [MaintanceLogger] Name=<MT_NAME>, Status=<MT_STATUS>, Time=<MT_TIME>, Error=<MT_ERROR>, Details=<MT_DETAILS>

Request performance

A página Desempenho da solicitação permite a análise das solicitações de página mais lentas processadas. Somente as solicitações de conteúdo serão registradas nesta página. Mais especificamente, as seguintes solicitações serão capturadas:
  1. Solicitações de acesso a recursos em /content
  2. Solicitações de acesso a recursos em /etc/design
  3. Pedidos com a ".html" extensão
A página exibe:
  • A hora em que a solicitação foi feita
  • O URL e o método de solicitação
  • A duração em milissegundos
Por padrão, as 20 solicitações de página mais lentas são capturadas, mas o limite pode ser modificado no Configuration Manager.

Desempenho da consulta

A página Desempenho da consulta permite a análise das consultas mais lentas executadas pelo sistema. Essas informações são fornecidas pelo repositório em um JMX Mbean. Em Jackrabbit, o com.adobe.granite.QueryStat JMX Mbean fornece essas informações, enquanto no repositório do Oak, ele é oferecido por org.apache.jackrabbit.oak.QueryStats.
A página exibe:
  • A hora em que a consulta foi feita
  • O idioma da consulta
  • O número de vezes que a consulta foi emitida
  • A instrução da consulta
  • A duração em milissegundos

Explicar consulta

Para qualquer consulta, Oak tenta descobrir a melhor maneira de executar com base nos índices Oak definidos no repositório no nó oak:index . Dependendo da consulta, diferentes índices podem ser escolhidos por Oak. Compreender como o Oak está executando uma consulta é a primeira etapa para otimizar a consulta.
A Consulta Explicar é uma ferramenta que explica como o Oak está executando uma consulta. Ele pode ser acessado indo até Ferramentas - Operações - Diagnóstico na tela de boas-vindas do AEM, e clicando em Desempenho da consulta e alternando para a guia Explicar consulta .
Recursos
  • Suporta os idiomas de consulta Xpath, JCR-SQL e JCR-SQL2
  • Relata o tempo de execução real da consulta fornecida
  • Detecta consultas lentas e avisa sobre consultas que podem ser potencialmente lentas
  • Relata o índice Oak usado para executar a consulta
  • Exibe a explicação real do mecanismo de Consulta Oak
  • Fornece uma lista de cliques para carregar de consultas Lentas e Populares
Depois que você estiver na interface de usuário Explorar consulta, tudo o que precisa fazer para usá-la é digitar a consulta e pressionar o botão Explicar :
A primeira entrada na seção Explicação da Consulta é a explicação real. A explicação mostrará o tipo de índice usado para executar a consulta.
A segunda entrada é o plano de execução.
Clicar na caixa Incluir tempo de execução antes de executar a consulta também mostrará a quantidade de tempo em que a consulta foi executada, permitindo obter mais informações que podem ser usadas para otimizar os índices para seu aplicativo ou implantação.

O Gerenciador de índice

A finalidade do Gerenciador de índice é facilitar o gerenciamento de índice, como manter índices, ou exibir seu status.
Para acessá-lo, acesse Ferramentas - Operações - Diagnóstico ​na tela de boas-vindas e clique no botão Gerenciador de índice.
Ele também pode ser acessado diretamente neste URL: https://serveraddress:port/libs/granite/operations/content/diagnosistools/indexManager.html
A interface do usuário pode ser usada para filtrar índices na tabela digitando os critérios do filtro na caixa de pesquisa no canto superior esquerdo da tela.

Baixar o ZIP de status

Isso acionará o download de um zip que contém informações úteis sobre o status e a configuração do sistema. O arquivo contém configurações de instância, uma lista de pacotes, OSGI, Métricas e estatísticas Sling, o que pode resultar em um arquivo grande. Você pode reduzir o impacto de arquivos de status grandes usando a janela Baixar Status ZIP. A janela pode ser acessada de: AEM > Ferramentas > Operações > Diagnóstico > Baixar ZIP de status.
Nessa janela, você pode selecionar o que exportar (arquivos de log e/ou despejos de thread) e o número de dias de logs incluídos no download em relação à data atual.

Baixar o despejo de encadeamento

Isso acionará o download de um zip que contém informações sobre os threads presentes no sistema. Informações sobre cada thread são fornecidas, como seu status, o carregador de classe e o rastreamento de pilha.

Baixar o despejo da pilha

Você também pode baixar um instantâneo do heap para analisá-lo posteriormente. Observe que isso acionará o download de um arquivo grande, da ordem de centenas de megabytes.

Tarefas de manutenção automatizadas

A página Tarefas de manutenção automatizadas é um local onde você pode visualizar e rastrear as tarefas de manutenção recomendadas programadas para execução periódica. As tarefas são integradas ao sistema de verificação de integridade. As tarefas também podem ser executadas manualmente a partir da interface.
Para acessar a página Manutenção no Painel de operações, é necessário acessar Ferramentas - Operações - Painel - Manutenção na tela de Boas-vindas do AEM ou seguir diretamente este link:
https://serveraddress:port/libs/granite/operations/content/maintenance.html
As seguintes tarefas estão disponíveis no Painel de Operações:
  1. A tarefa Limpar revisão, localizada no menu da janela Manutenção diária.
  2. A tarefa Limpeza de binários de Lucene, localizada no menu Janela de manutenção diária.
  3. A tarefa de expurgação do Workflow, localizada no menu Janela de Manutenção Semanal.
  4. A tarefa Coleta de Lixo do Repositório de Dados, localizada no menu Janela de Manutenção Semanal.
  5. A tarefa Manutenção do Log de Auditoria, localizada no menu Janela de Manutenção Semanal.
  6. A tarefa Manutenção de Expurgação de Versão, localizada no menu Janela de Manutenção Semanal.
O tempo padrão para a janela de manutenção diária é de 2 a 5 da manhã. As tarefas configuradas para execução na janela de manutenção semanal serão executadas entre 1 e 2 AM aos sábados.
Você também pode configurar os horários pressionando o ícone de engrenagem em qualquer uma das duas placas de manutenção:
Como o AEM 6.1, as janelas de manutenção existentes também podem ser configuradas para serem executadas mensalmente.

Limpeza da revisão

Para obter mais informações sobre como executar a limpeza de revisão, consulte este artigo dedicado.

Limpeza de binários do Lucene

Usando a tarefa Limpeza de binários de Lucene, é possível expurgar binários de lucene e reduzir o requisito de tamanho do armazenamento de dados em execução. Isso ocorre porque a geração binária do lucene será recuperada diariamente, em vez da dependência anterior em uma execução bem-sucedida da coleta de lixo do armazenamento de dados.
Embora a tarefa de manutenção tenha sido desenvolvida para reduzir o lixo de revisão relacionado a Lucene, há ganhos gerais de eficiência ao executar a tarefa:
  • A execução semanal da tarefa de coleta de lixo do armazenamento de dados será concluída mais rapidamente
  • Também pode melhorar ligeiramente o desempenho geral do AEM
Você pode acessar a tarefa Limpeza de binários de Lucene a partir de: AEM > Ferramentas > Operações > Manutenção > Janela de manutenção diária > Limpeza de binários Lucene.

Coleta de lixo do armazenamento de dados

Para obter detalhes sobre a coleta de lixo do Data Store, consulte a página de documentação dedicada.

Workflow purge

Os fluxos de trabalho também podem ser removidos do Painel de manutenção. Para executar a tarefa Expurgação do Fluxo de Trabalho, é necessário:
  1. Clique na página Janela de manutenção semanal.
  2. Na página a seguir, clique no botão Reproduzir no cartão de expurgação do fluxo de trabalho.
Para obter informações mais detalhadas sobre a Manutenção do fluxo de trabalho, consulte esta página .

Manutenção do Log de Auditoria

Para a Manutenção do Log de Auditoria, consulte a página de documentação separada.

Remoção da versão

Você pode agendar a tarefa de manutenção Expurgação da Versão para excluir versões antigas automaticamente. Como resultado, isso minimiza a necessidade de usar manualmente as ferramentas de Expurgação de versão. Você pode agendar e configurar a tarefa Expurgação da versão acessando Ferramentas > Operações > Manutenção > Janela de manutenção semanal e seguindo estas etapas:
  1. Click the Add button.
  2. Escolha Expurgação de versão no menu suspenso.
  3. Para configurar a tarefa Expurgação de versão, clique no ícone de engrenagens no cartão de manutenção de Expurgação de versão recém-criado.
Com o AEM 6.4 , você pode parar a tarefa de manutenção de Expurgação da Versão da seguinte maneira:
  • Automaticamente - Se a janela de manutenção programada for fechada antes que a tarefa possa ser concluída, a tarefa será interrompida automaticamente. Ele será retomado quando a próxima janela de manutenção for aberta.
  • Manualmente - Para interromper manualmente a tarefa, no cartão de manutenção Expurgação da versão, clique no ícone Parar . Na próxima execução, a tarefa será retomada com segurança.
Parar a tarefa de manutenção significa suspender sua execução sem perder o controle da tarefa já em andamento.
Para otimizar o tamanho do repositório, execute a tarefa de expurgação da versão com frequência. A tarefa deve ser programada fora do horário comercial quando houver uma quantidade limitada de tráfego.

Tarefas de manutenção personalizadas

As tarefas de manutenção personalizadas podem ser implementadas como serviços OSGi. Como a infraestrutura da tarefa de manutenção se baseia no gerenciamento de tarefas do Apache Sling, uma tarefa de manutenção deve implementar a interface java [org.apache.sling.event.jobs.consumer.JobExecutor](https://sling.apache.org/apidocs/sling7/org/apache/sling/event/jobs/consumer/JobExecutor.html) . Além disso, deve declarar várias propriedades de registro de serviço a serem detectadas como uma tarefa de manutenção, conforme listado abaixo:
Nome da propriedade do serviço Descrição Exemplo Tipo
granite.manutenção.isStoppable Atributo booliano que define se a tarefa pode ser interrompida pelo usuário. Se uma tarefa declarar que é parada, deverá verificar, durante a sua execução, se foi interrompida e, em seguida, agir em conformidade. O padrão é false. verdadeiro Opcional
granite.manutenção.mandatory Atributo booliano que define se uma tarefa é obrigatória e deve ser executada periodicamente. Se uma tarefa for obrigatória, mas não estiver em nenhuma janela de programação ativa, uma Verificação de integridade reportará isso como um erro. O padrão é false. verdadeiro Opcional
granite.manutenção.name Um nome exclusivo para a tarefa - é usado para referenciar a tarefa. Este é geralmente um nome simples. MyMaintenanceTask Obrigatório
granite.manutenção.title Um título exibido para esta tarefa Minha tarefa de manutenção especial Obrigatório
job.topics Este é um tópico exclusivo da tarefa de manutenção. A manipulação de tarefas do Apache Sling iniciará um trabalho com exatamente este tópico para executar a tarefa de manutenção e, à medida que a tarefa for registrada para este tópico, ela será executada. O tópico deve começar com com/adobe/granite/manutenção/job/ com/adobe/granite/manutenção/job/MyMaintenanceTask Obrigatório
Além das propriedades de serviço acima, o process() método da JobConsumer interface precisa ser implementado adicionando o código que deve ser executado para a tarefa de manutenção. O formulário fornecido JobExecutionContext pode ser usado para exibir informações de status, verificar se o trabalho foi interrompido pelo usuário e criar um resultado (sucesso ou falha).
Para situações em que uma tarefa de manutenção não deve ser executada em todas as instalações (por exemplo, executada apenas na instância de publicação), você pode fazer com que o serviço exija uma configuração para ficar ativo ao adicionar @Component(policy=ConfigurationPolicy.REQUIRE) . Você pode marcar a configuração de acordo como sendo o modo de execução dependente no repositório. Para obter mais informações, consulte Configuração do OSGi .
Veja abaixo um exemplo de uma tarefa de manutenção personalizada que exclui arquivos de um diretório temporário configurável que foi modificado nas últimas 24 horas:
src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java
/*
* #%L
* sample-maintenance-task
* %%
* Copyright (C) 2014 Adobe
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package com.adobe.granite.samples.maintenance.impl;
import java.io.File;
import java.util.Calendar;
import java.util.Collection;
import java.util.Map;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.event.jobs.Job;
import org.apache.sling.event.jobs.consumer.JobConsumer;
import org.apache.sling.event.jobs.consumer.JobExecutionContext;
import org.apache.sling.event.jobs.consumer.JobExecutionResult;
import org.apache.sling.event.jobs.consumer.JobExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.adobe.granite.maintenance.MaintenanceConstants;
@Component(metatype = true,
label = "Delete Temp Files Maintenance Task",
description = "Maintatence Task which deletes files from a configurable temporary directory which have been modified in the last 24 hours.")
@Service
@Properties({
@Property(name = MaintenanceConstants.PROPERTY_TASK_NAME, value = "DeleteTempFilesTask", propertyPrivate = true),
@Property(name = MaintenanceConstants.PROPERTY_TASK_TITLE, value = "Delete Temp Files", propertyPrivate = true),
@Property(name = JobConsumer.PROPERTY_TOPICS, value = MaintenanceConstants.TASK_TOPIC_PREFIX
+ "DeleteTempFilesTask", propertyPrivate = true) })
public class DeleteTempFilesTask implements JobExecutor {
private static final Logger log = LoggerFactory.getLogger(DeleteTempFilesTask.class);
@Property(label = "Temporary Directory", description="Temporary Directory. Defaults to the java.io.tmpdir system property.")
private static final String PROP_TEMP_DIR = "temp.dir";
private File tempDir;
@Activate
private void activate(Map<string, object=""> properties) {
this.tempDir = new File(PropertiesUtil.toString(properties.get(PROP_TEMP_DIR),
System.getProperty("java.io.tmpdir")));
}
@Override
public JobExecutionResult process(Job job, JobExecutionContext context) {
log.info("Deleting old temp files from {}.", tempDir.getAbsolutePath());
Collection<file> files = FileUtils.listFiles(tempDir, new LastModifiedBeforeYesterdayFilter(),
TrueFileFilter.INSTANCE);
int counter = 0;
for (File file : files) {
log.debug("Deleting file {}.", file.getAbsolutePath());
counter++;
file.delete();
// TODO - capture the output of delete() and do something useful with it
}
return context.result().message(String.format("Deleted %s files.", counter)).succeeded();
}
/**
* IOFileFilter which filters out files which have been modified in the last 24 hours.
*
*/
private static class LastModifiedBeforeYesterdayFilter implements IOFileFilter {
private final long minTime;
private LastModifiedBeforeYesterdayFilter() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
this.minTime = cal.getTimeInMillis();
}
@Override
public boolean accept(File dir, String name) {
// this method is never actually called.
return false;
}
@Override
public boolean accept(File file) {
return file.lastModified() <= this.minTime;
}
}
}
<file></string,>
Depois que o serviço é implantado, ele é exposto à interface do usuário do Painel de Operações. Você pode adicioná-lo a uma das programações de manutenção disponíveis:
Isso adicionará um recurso correspondente em /apps/granite/operations/config/manutenção/ schedule / taskname . Se a tarefa for dependente do modo de execução, a propriedade granite.operations.condition.runmode deverá ser definida nesse nó com os valores dos modos de execução que precisam estar ativos para essa tarefa de manutenção.

Visão geral do sistema

O Painel de visão geral do sistema exibe uma visão geral de alto nível da configuração, hardware e integridade da instância do AEM. Isso significa que o status de integridade do sistema é transparente e todas as informações são agregadas em um único painel.
Você também pode assistir a este vídeo para obter uma introdução ao Painel de visão geral do sistema.

Como acessar

Para acessar o Painel de visão geral do sistema, navegue até Ferramentas > Operações > Visão geral do sistema.

Explicação do painel Visão geral do sistema

A tabela abaixo descreve todas as informações exibidas no Painel de visão geral do sistema. Lembre-se de que quando não houver informações relevantes para mostrar (por exemplo, o backup não está em andamento, não há verificações de integridade críticas) a respectiva seção exibirá a mensagem "Nenhuma entrada".
Você também pode baixar um JSON arquivo resumindo as informações do painel clicando no botão Download no canto superior direito do painel.O JSON endpoint é /libs/granite/operations/content/systemoverview/export.json e pode ser usado em um curl script para monitoramento externo.
Seção Que informações são exibidas Quando é crítico Links para
Verificações de integridade
  • uma lista de verificações em estado crítico
  • uma lista de verificações que estão no status Avisar
Indicado visualmente:
  • uma tag vermelha para verificações Críticas
  • uma tag laranja para as verificações de Aviso
  • Página Relatórios de integridade
Tarefas de manutenção
  • uma lista de tarefas que falharam
  • uma lista de tarefas que estão em execução no momento
  • uma lista de tarefas que tiveram êxito na última execução
  • uma lista de tarefas que nunca foram executadas
  • uma lista de tarefas que não estão programadas
Indicado visualmente:
  • uma tag vermelha para tarefas com falha
  • uma tag laranja para executar tarefas (pois elas podem afetar o desempenho)
  • tags cinza para todos os outros status
  • Página Tarefas de manutenção
Sistema
  • sistema operacional e versão do SO (por exemplo, Mac OS X)
  • média de carga do sistema, conforme recuperado de OperatingSystemMXBeanusable
  • espaço em disco (na partição onde o diretório inicial está localizado)
  • heap máximo, conforme retornado por MemoryMXBean
N/A N/A
Instância
  • a versão do AEM
  • lista de modos de execução
  • a data em que a instância foi iniciada
N/A N/A
Repositório
  • a versão Oak
  • tipo de armazenamento de nó (barra de segmentos ou documento)
    • se o tipo for documento, o tipo de armazenamento de documento será exibido (RDB ou Mongo)
  • se houver um armazenamento de dados personalizado:
    • para um Arquivo de Dados, o caminho é exibido
    • para um armazenamento de dados S3, o nome do bucket S3 é exibido
    • para um armazenamento de Dados S3 Compartilhado, o nome do bucket S3 é exibido
    • para um Armazenamento de Dados do Azure, o contêiner é exibido
  • se não houver um armazenamento de dados externo personalizado, uma mensagem indicando esse fato será exibida
N/A N/A
Agentes de distribuição
  • uma lista de agentes com filas bloqueadas
  • uma lista de agentes configurados incorretamente ("Erro de configuração")
  • uma lista de agentes com processamento de fila pausado
  • uma lista de agentes ociosos
  • uma lista de agentes em execução (que estão processando entradas no momento)
Indicado visualmente:
  • uma tag vermelha para agentes bloqueados ou erros de configuração
  • uma tag laranja para agentes pausados
  • uma tag cinza para agentes pausados, ociosos ou em execução
Página de distribuição
Agentes de replicação
  • uma lista de agentes com filas bloqueadas
  • uma lista de agentes ociosos
  • uma lista de agentes em execução (que estão processando entradas no momento)
Indicado visualmente:
  • uma tag vermelha para agentes bloqueados
  • uma tag cinza para agentes pausados
Página Replicação
Fluxos de trabalhos
  • Trabalhos de Fluxo de Trabalho:
    • número de trabalhos de fluxo de trabalho com falha (se houver)
    • número de trabalhos de fluxo de trabalho cancelados (se houver)
  • Contagens de Fluxo de Trabalho - número de fluxos de trabalho em um determinado status (se houver):
    • execução
    • Falha
    • suspenso
    • abortado
Para cada um dos status apresentados acima, uma consulta é executada, com um limite de 400 milissegundos. Em 400 milissegundos, o número de entradas obtidas até esse ponto é exibido.
Não interpretado:
  • o usuário deve investigar quando há fluxos de trabalho e trabalhos em status inesperados.
Página Falhas de Fluxo de Trabalho
Tarefas de arremesso
Contagem de trabalhos de sling - número de trabalhos em um determinado status (se houver):
  • Falha
  • na fila
  • cancelado
  • ativo
Não interpretado:
  • o usuário deve investigar quando há trabalhos em status inesperados ou com contagens elevadas.
N/A
Contagens estimadas de nós
Número estimado de:
  • páginas
  • ativos
  • tags
  • autorizáveis
  • número total de nós
O número total de nós é obtido a partir de nodeCounterMBean, enquanto o restante das estatísticas é obtido a partir de IndexInfoService.
N/A N/A
Backup Exibe "Backup on-line em andamento", se esse for o caso. N/A N/A
Indexação
Exibições:
  • "Indexação em andamento"
  • "Consulta em andamento"
Se uma indexação ou um thread de consulta estiver presente no despejo de thread.
N/A N/A