Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Vídeos
Assista ao vídeo a seguir para saber mais sobre como resolver erros de serviço indisponível 503.
Vídeo | Descrição |
---|---|
Erro 503 de serviço indisponível do servidor de back-end | Saiba mais sobre o seguinte:
|
Sintoma
O aplicativo cliente recebe um status de resposta HTTP 503 com a mensagem Serviço indisponível logo após uma chamada de proxy de API.
Mensagens de erro
Você pode encontrar uma das seguintes mensagens de erro:
HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
Talvez você também receba uma mensagem de erro como esta: na resposta HTTP:
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Observação:o código de resposta e a mensagem de erro acima são apenas exemplos. Em alguns casos, você pode receber apenas o código de resposta de erro, sem nenhuma mensagem de erro. O formato e o conteúdo do código de resposta de erro e da mensagem de erro podem variar dependendo a implementação do servidor de back-end.
Causas
O código de status HTTP 503 significa que o servidor não pode lidar com o evento solicitações. Geralmente, esse erro ocorre porque o servidor está muito ocupado ou temporariamente fora do ar para manutenção.
As possíveis causas para a resposta 503 Service Unavailable são:
Causa | Descrição | Quem pode executar as etapas de solução de problemas |
---|---|---|
Servidor sobrecarregado | O servidor de back-end está sobrecarregado ou ultrapassado de capacidade e não consegue lidar solicitações recebidas de clientes. | Usuários de nuvem pública e privada de borda |
Servidor em manutenção | O servidor de back-end pode estar temporariamente em manutenção. | Usuários de nuvem pública e privada de borda |
Causa: servidor/servidor sobrecarregado em manutenção
No Apigee Edge, o erro 503 de serviço indisponível pode ser retornado de um servidor de back-end em uma das seguintes circunstâncias:
- Um servidor de back-end está sobrecarregado/ocupado e não pode processar novas solicitações.
- O servidor de back-end está inativo por um período temporário para fins de manutenção.
Diagnóstico
Para diagnosticar o erro, você pode usar qualquer um dos três métodos a seguir:
- Ferramenta Trace
- Registros de acesso do NGINX
- Chamada direta para o servidor de back-end
Clique nas guias abaixo para saber mais sobre cada método.
Ferramenta Trace
- Ative a sessão de trace, e faça a chamada de API para reproduzir o problema: 503 Serviço indisponível.
- Selecione uma das solicitações com falha e examine o trace.
- Navegue pelas várias fases do trace e localize onde a falha ocorreu.
- Se você achar que o erro 503 é retornado como uma resposta do servidor de destino,
a causa do erro 503 é o servidor de destino.
Confira um exemplo de captura de tela de rastreamento mostrando a resposta 503 de serviço indisponível recebida do servidor de destino:
- Clique na fase Resposta recebida do servidor de destino e siga as
Cabeçalhos de resposta e as seções "Conteúdo da resposta" para verificar se há informações úteis:
- Os cabeçalhos de resposta podem conter o cabeçalho Servidor, que indica de onde a resposta de erro foi enviada.
- O Conteúdo da Resposta pode conter informações adicionais sobre o motivo o servidor de destino enviou o código de resposta 503.
- Confirme se o erro 503 está vindo do servidor de destino verificando
os valores de X-Apigee-fault-source e X-Apigee-fault-code no AX
(Dados de análise registrados) Fase no rastreamento usando as etapas abaixo:
- Clique na fase AX (Analytics Data Recorded), conforme mostrado na captura de tela abaixo:
- Role para baixo até a seção "Response Headers" em "Detalhes da fase" e determine os valores. de X-Apigee-fault-code e X-Apigee-fault-source, conforme mostrado abaixo:
- Se os valores de X-Apigee-fault-source e X-Apigee-fault-code corresponderem aos valores
mostrados na tabela abaixo, você pode confirmar que o erro 503 está sendo
servidor de destino:
Cabeçalhos de resposta Valor X-Apigee-fault-source target X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
- Verifique se você está usando o encadeamento de proxy, ou seja, se o servidor de destino/endpoint de destino é
invocar outro proxy na Apigee. Para determinar isso:
- Navegue de volta para a fase Solicitação enviada ao servidor de destino e clique no botão Mostrar curl e determine o alias do host do servidor de destino.
- Se o alias de host do servidor de destino apontar para um alias de host virtual, ele encadeamento de proxy. Nesse caso, é necessário repetir todas as etapas acima para o cluster encadeado. proxy até determinar o que está realmente causando o erro 503 Serviço Indisponível. Nesses casos, o erro "503 Serviço indisponível" pode acontecer em outros proxies encadeados em outro que podem ser diagnosticados com neste manual.
- Se o alias de host do servidor de destino apontar para seu servidor de back-end, vá para Resolução.
Registros de acesso do NGINX
Também é possível consultar os registros de código do NGINX para determinar se o código de status 503 foi enviado. pelo servidor de back-end. Isso será muito útil se o problema já tiver ocorrido no passado. ou se o problema for intermitente e você não conseguir capturar o rastro na IU. Siga as etapas a seguir para determinar essas informações dos registros de acesso do NGINX:
- Verifique os registros de acesso do NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Procurar erros 503 no proxy de API específico durante um período específico (se o problema tiver acontecido no passado) ou por solicitações que ainda apresentam falha com 503.
- Se houver algum erro 503, verifique se ele está vindo do servidor de back-end.
Se os valores de X-Apigee-fault-source e X-Apigee-fault-code corresponderem ao
valores mostrados
na tabela abaixo, o erro 503 é proveniente do servidor de back-end:
Cabeçalhos de resposta Valor X-Apigee-fault-source target X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode Este é um exemplo de entrada que mostra o erro 503 causado pelo servidor de destino:
- Revise o proxy de API específico e verifique se você está usando o encadeamento de proxy, ou seja, se O servidor de destino/endpoint de destino não está invocando outro proxy na Apigee. Se você estiver usando encadeamento, você precisa repetir todas as etapas acima para o proxy encadeado até você determina o que está realmente causando o erro 503 Serviço indisponível. Nesses casos, 503 Serviço indisponível pode acontecer em outros proxies encadeados em outros estágios também, que podem ser diagnosticadas neste playbook.
- Se você confirmar que não está usando o encadeamento de proxy e o erro 503 estiver vindo do seu servidor de back-end e vá para Resolução.
Chamada para o servidor de back-end
Você pode fazer uma chamada direta para o servidor de back-end e verificar se está recebendo o mesmo Resposta 503 de serviço indisponível conforme recebida quando a solicitação foi feita pelo Apigee Edge.
- Verifique se você tem todos os cabeçalhos, parâmetros de consulta e credenciais necessários que precisam ser passados para o servidor de back-end como parte da solicitação.
- Se o serviço de back-end estiver acessível publicamente, use o comando curl. Postman ou qualquer outro cliente REST e invocar a API do servidor de back-end diretamente.
- Se o servidor de back-end só puder ser acessado pelos processadores de mensagens, você poderá usar o método comando curl, Postman ou qualquer outro cliente REST e invoca diretamente a API do servidor de back-end do processador de mensagens.
- Verifique se o serviço de back-end está realmente retornando o erro 503 Serviço indisponível.
Resolução
Se você confirmar que o erro 503 está vindo do servidor de back-end, poderá fazer a seguir para resolver o problema:
- Se o problema for causado porque o servidor de back-end está inativo para manutenção, é possível deixar o servidor de back-end on-line após o período de manutenção.
- Se o problema for causado porque o servidor de back-end está sobrecarregado, então: corrija o problema se você tiver acesso ao servidor de back-end. Caso contrário talvez seja necessário trabalhar com a equipe do servidor de back-end para corrigir o problema.
Diagnosticar problemas usando o monitoramento de APIs
O API Monitoring permite isolar áreas problemáticas para diagnosticar erros, desempenho problemas de latência e latência e a origem deles, como apps para desenvolvedores, proxies de API, destinos de back-end ou a plataforma de API.
Usar uma amostra cenário que demonstra como resolver problemas 5xx com suas APIs usando o monitoramento de APIs. Por exemplo, talvez você queira configurar um alerta para ser notificado quando o número de falhas Messaging.adaptors.http.flow.ErrorResponseCode excedem um determinado limite.
É necessário coletar informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, reúna as seguindo as informações de diagnóstico e entre em contato com Suporte da Apigee.
Se você é usuário da nuvem pública, forneça as seguintes informações:
- Nome da organização
- Nome do ambiente
- Nome do proxy da API
- Completar o comando curl para reproduzir o erro 503
- Arquivo de rastreamento contendo as solicitações com o erro 503 Serviço indisponível
- Se os erros 503 não estiverem ocorrendo atualmente, forneça o período com o fuso horário quando os erros 503 ocorreram.
Se você é usuário da nuvem privada, forneça as seguintes informações:
- Mensagem de erro completa observada para as solicitações com falha.
- Organização, nome do ambiente e nome do proxy da API para os quais você está observando os erros 503.
- o pacote do proxy de API.
- Arquivo de rastreamento que contém as solicitações com o erro 503 Serviço indisponível.
- registros de acesso do NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Registros do processador de mensagens.
/opt/apigee/var/log/edge-message-processor/logs/system.log
- O período com as informações de fuso horário em que os erros 503 ocorreram.