Autocorreção com apigee-monit

O Apigee Edge para nuvem privada inclui apigee-monit, uma ferramenta baseada em código aberto utilitário monit (link em inglês). apigee-monit periodicamente pesquisa os serviços do Edge; se um serviço estiver indisponível, o apigee-monit tentará reiniciá-lo.

Para usar o apigee-monit, você precisa instalá-lo manualmente. Ele não faz parte na instalação padrão.

Por padrão, apigee-monit verifica o status dos serviços de borda a cada 60 segundos.

Início rápido

Esta seção mostra como começar a usar o apigee-monit rapidamente.

Se estiver usando o Amazon Linux, instale o Fedora primeiro. Caso contrário, pule esta etapa.

sudo yum install -y https://kojipkgs.fedoraproject.org/packages/monit/5.25.1/1.el6/x86_64/monit-5.25.1-1.el6.x86_64.rpm

Para instalar o apigee-monit, siga estas etapas:

  Instalar apigee-monit
/opt/apigee/apigee-service/bin/apigee-service apigee-monit install
/opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

Isso instala apigee-monit e começa a monitorar todos os componentes no nó por padrão.

  Parar de monitorar componentes
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
  Começar a monitorar componentes
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all
  Receber informações resumidas sobre o status
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
  Analise os arquivos de registro apigee-monit
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log

Esses e outros tópicos são descritos em detalhes nas seções a seguir.

Sobre a apigee-monit

apigee-monit ajuda a garantir que todos os componentes de um nó permaneçam em execução. Ele faz isso prestando vários serviços, incluindo:

  • Reiniciar serviços com falha
  • Exibição de informações resumidas
  • Status de monitoramento do Logging
  • Como enviar notificações
  • Como monitorar serviços não Edge

A Apigee recomenda que você monitore o apigee-monit para garantir que ele esteja em execução. Para mais informações, consulte Monitorar a apigee-monit.

arquitetura apigee-monit

Durante a instalação e configuração da Apigee Edge para nuvem privada, você tem a opção de instalar uma instância separada de apigee-monit em cada nó no cluster. Essas instâncias apigee-monit separadas operam independentemente em outro: eles não comunicam o status de seus componentes aos outros nós, nem comunicar falhas do próprio utilitário de monitoramento a qualquer serviço central.

A imagem a seguir mostra a arquitetura de apigee-monit em um cluster de cinco nós:

Arquitetura
  do monitoramento da Apigee em um cluster de cinco nós
Figura 1: uma instância separada de apigee-monit é executada isoladamente em cada nó de um cluster

Plataformas compatíveis

apigee-monit oferece suporte às seguintes plataformas para seu cluster de nuvem privada. (O sistema operacional compatível para apigee-monit depende da versão da nuvem privada.)

Sistema operacional Versão da nuvem privada
v4.50.00 v4.51.00 v4.52.00
CentOS 7,5, 7,6, 7,7, 7,8 7,5, 7,6, 7,7, 7,8 7,5, 7,6, 7,7, 7,8
RedHat Enterprise Linux (RHEL) 7,5, 7,6, 7,7, 7,8 7,5, 7,6, 7,7, 7,8, 7,9, 8,0 7,5, 7,6, 7,7, 7,8, 7,9, 8,0
Oracle Linux 7,5, 7,6, 7,7, 7,8 7,5, 7,6, 7,7, 7,8 7,5, 7,6, 7,7, 7,8
* Embora isso não tenha suporte técnico, você pode instalar e usar apigee-monit no CentOS/RHEL/Oracle versão 6.9 para Apigee Edge para nuvem privada versão 4.19.01.

Configurações dos componentes

O apigee-monit usa configurações de componentes para determinar quais componentes monitorar, quais aspectos do componente a serem verificados e que ação realizar em caso de falha.

Por padrão, apigee-monit monitora todos os componentes do Edge em um nó usando o componente predefinido. personalizadas. Para acessar as configurações padrão, consulte a configuração do componente apigee-monit . Não é possível mudar as configurações padrão dos componentes.

O apigee-monit verifica diferentes aspectos de um componente, dependendo do componente que está sendo verificado. A A tabela a seguir lista o que apigee-monit verifica para cada componente e mostra onde ele é definida para cada componente. Alguns componentes são definidos em uma única configuração que outros têm configurações próprias.

Componente Local da configuração O que é monitorado?
Servidor de gerenciamento /opt/apigee/edge-management-server/monit/default.conf Verificações apigee-monit:
  • As portas especificadas estão abertas e aceitando solicitações
  • Os protocolos especificados são compatíveis
  • Status da resposta

Além disso, para esses componentes apigee-monit:

  • Requer várias falhas em um determinado número de ciclos antes de agir
  • Define um caminho de solicitação personalizado
Processador de mensagens /opt/apigee/edge-message-processor/monit/default.conf
Servidor Postgres /opt/apigee/edge-postgres-server/monit/default.conf
Servidor Qpid /opt/apigee/edge-qpid-server/monit/default.conf
Roteador /opt/apigee/edge-router/monit/default.conf
Cassandra
interface do Edge
OpenLDAP
Postgres
Qpid
O tratador
/opt/apigee/data/apigee-monit/monit.conf Verificações apigee-monit:
  • O serviço está em execução

O exemplo a seguir mostra a configuração padrão do componente para o edge-router. componente:

check host edge-router with address localhost
  restart program = "/opt/apigee/apigee-service/bin/apigee-service edge-router monitrestart"
  if failed host 10.1.1.0 port 8081 and protocol http
    and request "/v1/servers/self/uuid"
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

  if failed port 15999 and protocol http
    and request "/v1/servers/self"
    and status < 600
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

O exemplo a seguir mostra a configuração padrão da interface clássica (edge-ui) componente:

check process edge-ui
 with pidfile /opt/apigee/var/run/edge-ui/edge-ui.pid
 start program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui start" with timeout 55 seconds
 stop program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui stop"

Isso se aplica à interface clássica, não à nova interface do Edge, cujo nome do componente é edge-management-ui:

Não é possível alterar as configurações padrão de componentes do Apigee Edge para nuvem privada. Você pode, No entanto, adicione suas próprias configurações de componentes para serviços externos, como o endpoint de destino ou o serviço httpd. Para mais informações, consulte Configurações de componentes que não são da Apigee.

Por padrão, apigee-monit monitora todos os componentes em um nó em que está sendo executado. É possível ativar ou desativá-la para todos os componentes ou para componentes individuais. Confira mais informações em:

Instale o apigee-monit

apigee-monit não é instalado por padrão. é possível instalá-lo manualmente depois de fazer upgrade ou versão 4.19.01 ou posterior do Apigee Edge para nuvem privada.

Esta seção descreve como instalar o apigee-monit na plataforma plataformas.

Para mais informações sobre como desinstalar apigee-monit, consulte Desinstale o app apigee-monit.

Instalar o apigee-monit em uma plataforma compatível

Esta seção descreve como instalar o apigee-monit em uma plataforma compatível.

Para instalar o apigee-monit em uma plataforma compatível:

  1. Instale apigee-monit com o seguinte comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit install
  2. Configure apigee-monit com o seguinte comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
  3. Inicie apigee-monit com o seguinte comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit start
  4. Repita esse procedimento em cada nó do cluster.

Parar e iniciar o monitoramento de componentes

Quando um serviço é interrompido por qualquer motivo, o apigee-monit tenta reiniciá-lo.

Isso pode causar um problema se você quiser interromper um componente intencionalmente. Por exemplo, talvez você você quiser interromper um componente quando precisar fazer backup ou upgrade dele. Se o apigee-monit reiniciar o serviço durante o backup ou o upgrade, o procedimento de manutenção poderá ser interrompido, possivelmente causando uma falha.

Nas seções a seguir, mostramos as opções para interromper o monitoramento de componentes.

Interromper um componente e desmonitorá-lo

Para interromper e cancelar o monitoramento de um componente, execute o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
component_name pode ser um dos seguintes:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (banco de dados PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (SSO de borda)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Servidor de gerenciamento)
  • edge-management-ui (nova IU do Edge)
  • edge-message-processor (processador de mensagens)
  • edge-postgres-server (Servidor Postgres)
  • edge-qpid-server (servidor Qpid)
  • edge-router (roteador Edge)
  • edge-ui (IU clássica)

Observe que "todos" não é uma opção válida para stop-component. Você pode parar e cancelar o monitoramento de apenas um componente por vez com stop-component.

Para reiniciar o componente e retomar o monitoramento, execute o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start-component -c component_name

Observe que "todos" não é uma opção válida para start-component.

Para obter instruções sobre como parar e cancelar o monitoramento de todos os componentes, consulte Interrompa todos os componentes e remova o monitoramento deles.

Cancelar o monitoramento de um componente (mas não interrompê-lo)

Para desmonitorar um componente (mas não interrompê-lo), execute o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
component_name pode ser um dos seguintes:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (banco de dados PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (SSO de borda)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Servidor de gerenciamento)
  • edge-management-ui (nova IU do Edge)
  • edge-message-processor (processador de mensagens)
  • edge-postgres-server (Servidor Postgres)
  • edge-qpid-server (servidor Qpid)
  • edge-router (roteador Edge)
  • edge-ui (IU clássica)

Para retomar o monitoramento do componente, execute o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name

Cancelar o monitoramento de todos os componentes (mas não interrompê-los)

Para cancelar o monitoramento de todos os componentes (mas não interrompê-los), execute o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

Para retomar o monitoramento de todos os componentes, execute o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Interromper todos os componentes e cancelar o monitoramento

Para interromper e cancelar o monitoramento de todos os componentes, execute os seguintes comandos:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
/opt/apigee/apigee-service/bin/apigee-all stop

Para reiniciar todos os componentes e retomar o monitoramento, execute os seguintes comandos:

/opt/apigee/apigee-service/bin/apigee-all start
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Para interromper o monitoramento de todos os componentes, você também pode desativar apigee-monit, conforme descrito em Interrompa, inicie e desative o apigee-monit.

Interromper, iniciar e desativar o apigee-monit

Como em qualquer serviço, você pode interromper e iniciar o apigee-monit usando apigee-service. kubectl. Além disso, apigee-monit oferece suporte ao comando unmonitor, que permite interromper temporariamente o monitoramento de componentes.

Parar o apigee-monit

Para interromper apigee-monit, use o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop

Iniciar apigee-monit

Para iniciar apigee-monit, use o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

Desativar o apigee-monit

É possível suspender o monitoramento de todos os componentes no nó usando o seguinte comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

Como alternativa, você pode desativar permanentemente o apigee-monit desinstalando-o do nó, conforme descrito em Desinstalar apigee-monit.

Desinstalar o apigee-monit

Para desinstalar o apigee-monit:

    conf_monit_httpd_port A porta do daemon httpd. apigee-monit usa httpd no painel e para ativar relatórios/resumos. O valor padrão é 2812. conf_monit_httpd_allow Restrições em solicitações para o daemon httpd. apigee-monit usos httpd para executar o aplicativo de painel e ativar relatórios/resumos. Esse valor deve apontar para o localhost (o host em que o httpd está sendo executado.

    Para exigir que as solicitações incluam nome de usuário e senha, use a seguinte sintaxe:

    conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1

    Ao adicionar um nome de usuário e uma senha, insira um "\n" entre cada restrição. Não inserir novas linhas ou retornos de carro no valor.

    conf_monit_monit_datadir O diretório em que os detalhes do evento são armazenados. conf_monit_monit_delay_time O tempo que apigee-monit aguarda depois de ser carregado pela primeira vez na memória antes de ser é executado. Isso afeta apigee-monit apenas na primeira verificação de processo. conf_monit_monit_logdir O local do arquivo de registros apigee-monit. conf_monit_monit_retry_time A frequência com que apigee-monit tenta verificar cada processo. o padrão é 60 segundos. conf_monit_monit_rundir A localização do PID e dos arquivos de estado, que o apigee-monit usa para verificar processos.

    Para personalizar as configurações padrão de controle de apigee-monit:

    1. Edite o seguinte arquivo:
      /opt/apigee/customer/application/monit.properties

      Se o arquivo não existir, crie-o e defina o proprietário como "apigee" usuário:

      chown apigee:apigee /opt/apigee/customer/application/monit.properties

      Se o arquivo já existir, poderá haver outras propriedades de configuração definidas além do que está listado na tabela acima. Não modifique propriedades que não sejam os listados acima.

    2. Defina ou substitua os valores das propriedades pelos novos valores.

      Por exemplo, para mudar o local do arquivo de registro para /tmp, adicione ou edite a seguinte propriedade:

      conf_monit_monit_logdir=/tmp/apigee-monit.log

    3. Salve suas alterações no arquivo monit.properties.
    4. Atualize apigee-monit com o seguinte comando:
      /opt/apigee/apigee-service/bin/apigee-service apigee-monit reload

      Se o apigee-monit não for reiniciado, verifique se há erros no arquivo de registros, conforme descrito em Acesse os arquivos de registro apigee-monit.

    5. Repita este procedimento para cada nó do cluster.

    Isso vale apenas para componentes que não são do Edge. Não é possível personalizar as configurações do componente para componentes Edge.

    Acessar arquivos de registro do apigee-monit

    apigee-monit registra todas as atividades, incluindo eventos, reinicializações, mudanças de configuração e alertas em um registro .

    O local padrão do arquivo de registro é:

    /opt/apigee/var/log/apigee-monit/apigee-monit.log

    É possível alterar o local padrão personalizando o controle apigee-monit configurações.

    As entradas do arquivo de registro têm o seguinte formato:

    'edge-message-processor' trying to restart
    [UTC Dec 14 16:20:42] info     : 'edge-message-processor' trying to restart
    'edge-message-processor' restart: '/opt/apigee/apigee-service/bin/apigee-service edge-message-processor monitrestart'

    Não é possível personalizar o formato das entradas do arquivo de registros apigee-monit.

    Visualizar status agregado com o apigee-monit

    apigee-monit inclui os seguintes comandos que dão informações agregadas de status sobre os componentes em um nó:

    Comando Uso
    report
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    summary
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    Cada um desses comandos é explicado com mais detalhes nas seções a seguir.

    relatório

    O comando report apresenta um resumo completo de quantos componentes estão ativos, está sendo inicializado, ou está não monitorado em um nó. A O exemplo a seguir invoca o comando report:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report

    O exemplo a seguir mostra a saída report em um AIO (tudo em um) configuração:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    up:            11 (100.0%)
    down:           0 (0.0%)
    initialising:   0 (0.0%)
    unmonitored:    1 (8.3%)
    total:         12 services

    Neste exemplo, 11 dos 12 serviços são informados pela apigee-monit como ativos. Um serviço não está que estão sendo monitoradas.

    Você pode receber um erro Connection refused ao executar a primeira vez comando report. Nesse caso, aguarde a duração conf_monit_monit_delay_time e tente de novo.

    resumo

    O comando summary lista cada componente e informa o status dele. O seguinte exemplo invoca o comando summary:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    O exemplo a seguir mostra a saída summary em um AIO (tudo em um) configuração:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
    Monit 5.25.1 uptime: 4h 20m
     Service Name                     Status                      Type
     host_name                        OK                          System
     apigee-zookeeper                 OK                          Process
     apigee-cassandra                 OK                          Process
     apigee-openldap                  OK                          Process
     apigee-qpidd                     OK                          Process
     apigee-postgresql                OK                          Process
     edge-ui                          OK                          Process
     edge-qpid-server                 OK                          Remote Host
     edge-postgres-server             OK                          Remote Host
     edge-management-server           OK                          Remote Host
     edge-router                      OK                          Remote Host
     edge-message-processor           OK                          Remote Host

    Se você receber um erro Connection refused ao executar pela primeira vez summary, aguarde a duração do conf_monit_monit_delay_time e tente de novo.

    Monitorar o apigee-monit

    É uma prática recomendada verificar regularmente se o apigee-monit está em execução em cada nó.

    Para verificar se apigee-monit está em execução, use o seguinte comando:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

    A Apigee recomenda que você emita esse comando periodicamente em cada nó que esteja executando apigee-monit. Uma maneira de fazer isso é com um utilitário como o cron, que executa tarefas agendadas em com intervalos predefinidos.

    Para usar cron para monitorar apigee-monit:

    1. Adicione suporte a cron copiando o apigee-monit.cron. para o diretório /etc/cron.d, conforme o exemplo a seguir:
      cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
    2. Abra o arquivo apigee-monit.cron para editá-lo.

      O arquivo apigee-monit.cron define o job cron a ser executado bem como a frequência de execução dele. O exemplo a seguir mostra o padrão valores:

      # Cron entry to check if monit process is running. If not start it
      */2 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

      Esse arquivo usa a seguinte sintaxe, na qual os primeiros cinco campos definem o horário em que o apigee-monit executa a ação:

      min hour day_of_month month day_of_week task_to_execute

      Por exemplo, o tempo de execução padrão é */2 * * * *, que instrui cron para verificar o processo apigee-monit a cada dois minutos.

      Não é possível executar um job cron com mais frequência do que uma vez por minuto.

      Para mais informações sobre como usar o cron, consulte a documentação do SO do servidor ou o manual páginas de destino.

    3. Mude as configurações do cron de acordo com as políticas da sua organização. Por exemplo, para altere a frequência de execução para a cada cinco minutos, defina a definição do job como a seguinte:
      */5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
    4. Salve o arquivo apigee-monit.cron.
    5. Repita este procedimento para cada nó do cluster.

    Se cron não começar a assistir apigee-monit, verifique se:

    • Há uma linha em branco após a definição do job cron.
    • Há apenas um job de cron definido no arquivo. (As linhas comentadas não count.)

    Se você quiser interromper ou desativar temporariamente apigee-monit, desative este job cron, também. Caso contrário, cron reiniciará apigee-monit.

    Para desativar o cron, siga um destes procedimentos:

    • Exclua o arquivo /etc/cron.d/apigee-monit.cron:
      sudo rm /etc/cron.d/apigee-monit.cron

      Você terá que copiá-lo novamente se depois quero reativar cron para assistir apigee-monit.

      OU

    • Edite o arquivo /etc/cron.d/apigee-monit.cron e comente o job definição adicionando um "#" ao início da linha; Por exemplo:
      # 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit