Transformando Plugins de Log para Melhorar a Observabilidade
Yong Qian
February 24, 2023
Atualmente, os logs são cruciais em gateways de API, especialmente para detecção de falhas e solução de problemas, economizando custos de operação e manutenção. O log do gateway de API também tem grande valor no suporte à coleta de dados. Para melhorar a observabilidade e a estabilidade do sistema, o gateway de API de código aberto Apache APISIX suporta muitos plugins de log, como
elasticsearch-logger
,kafka-logger
,loggly
eerror-log-logger
.
O valor dos logs do gateway
Com o rápido crescimento dos negócios na era digital, as arquiteturas de software tornam-se cada vez mais complexas, tornando a detecção e o diagnóstico de falhas muito mais desafiadores. Mais uma vez, isso ressalta a importância da observabilidade do software.
Os logs são um dos três pilares da observabilidade. Eles fornecem aos administradores de sistema e desenvolvedores insights sobre o status operacional de um sistema, o que facilita a identificação e resolução oportuna de problemas.
Além disso, os logs podem servir a propósitos adicionais, como mineração de dados, auditoria e monitoramento de segurança, ajudando a manter a conformidade e a segurança do sistema.
Um gateway de API conecta a aplicação ao mundo exterior, permitindo que as organizações gerenciem e monitorem melhor as chamadas de API, incluindo a função crítica de registrar logs de chamadas de API.
Analisaremos o valor dos logs do gateway de API a partir de duas perspectivas nas seções a seguir.
O valor da operação e manutenção (O&M)
Seja em operação e manutenção de sistemas tradicionais ou em SRE (Engenharia de Confiabilidade de Sites), descobrir e corrigir falhas é sempre a prioridade máxima para garantir a estabilidade do sistema. Isso porque cada segundo de inatividade pode causar perdas significativas de negócios e prejudicar a experiência do usuário em qualquer grande negócio online.
O gateway de API está na linha de frente de todo o sistema e pode atuar como um "sentinela". Podemos extrair uma riqueza de dados críticos de seus logs de acesso, que são cruciais para o sistema de O&M:
- Analisar códigos de status de upstream e downstream para monitorar a disponibilidade do site e a disponibilidade de serviços upstream específicos.
- Usar logs de acesso para monitorar o tráfego do site e detectar prontamente ataques como DDoS.
- Analisar tendências de tráfego para fornecer uma referência para escalar sistemas de negócios para cima ou para baixo.
- Acompanhar tempos de processamento de solicitações para gerar relatórios de desempenho em nível de interface como uma referência de dados para otimizar o desempenho do sistema de negócios.
As práticas acima são algumas das melhores práticas para logs de gateway de API que são amplamente adotadas na indústria e implementadas em sistemas de operação e manutenção de muitas empresas.
O valor do negócio
Em comparação com o valor operacional amplamente reconhecido, o valor do negócio dos logs do gateway é frequentemente negligenciado.
Por exemplo, na análise do comportamento do usuário, a codificação é a maneira mais comum de coletar dados por meio de rastreamento de eventos em programas. No entanto, para uma API bem projetada, os logs do gateway podem naturalmente atender a tais requisitos. Como resultado, podemos fazer muitas coisas, como:
- Analisar o IP do cliente para determinar a distribuição geográfica do tráfego.
- Analisar o HTTP Referer para entender a origem do acesso do usuário a cada página.
- Podemos obter diretamente indicadores de negócios críticos para as estatísticas agregadas de APIs-chave. Por exemplo, ao contar as chamadas bem-sucedidas de APIs para registro de usuários e colocação de pedidos, podemos obter o número de novos usuários e pedidos dentro de um período especificado.
Claro, os logs do gateway são menos flexíveis do que o rastreamento de eventos e não podem atender a requisitos personalizados de coleta de dados; eles têm valor de negócio suficiente para atender às necessidades básicas de mineração de dados.
Apache APISIX é um gateway de API nativo em nuvem dinâmico, em tempo real e de alto desempenho que fornece funções ricas de gerenciamento de tráfego, como balanceamento de carga, upstream dinâmico, lançamento canário, interrupção de circuito, autenticação de identidade e observabilidade.
Muitas de suas capacidades são fornecidas por meio de plugins, incluindo dezenas de plugins de log. O seguinte usará o plugin de log típico no APISIX como exemplo para explicar como integrar logs do gateway com um sistema de análise de logs para desbloquear mais valor.
Introdução aos plugins de log típicos do APISIX
elasticsearch-logger
Elastic Search é um mecanismo de busca e análise distribuído de código aberto usado para processar grandes quantidades de dados e é altamente renomado em análise de logs. Seu painel de dados complementar Kibana pode facilmente personalizar vários gráficos estatísticos para atender às necessidades de análise de consulta visual da organização.
Em aplicações práticas, como a maioria dos logs de software tradicionais são salvos em arquivos locais, um projeto no ecossistema do Elastic Search chamado Filebeat
é usado para monitorar arquivos de log em máquinas locais e enviar logs incrementais para o servidor do Elastic Search.
No entanto, o plugin elasticsearch-logger fornecido pelo APISIX pode enviar diretamente logs de acesso do APISIX para o servidor do Elastic Search, o que pode trazer vários benefícios:
- A implantação do componente Filebeat é desnecessária, resultando em uma cadeia de processamento mais curta e redução de recursos de computação.
- Os logs não são armazenados em disco, então não há necessidade de se preocupar com o uso de espaço em disco. No entanto, os logs de acesso podem ser enormes em volume, e se a rotação de arquivos não for tratada corretamente, pode rapidamente encher o disco da máquina e causar falhas. Além disso, a interação com o disco também pode reduzir o desempenho do gateway.
kafka-logger
Os logs de acesso do gateway têm uma característica proeminente: o volume de dados de log é proporcional ao volume de solicitações de negócios: quanto mais solicitações, mais logs.
Os negócios online geralmente exibem padrões periódicos no volume de solicitações. Por exemplo, plataformas de entrega de comida tendem a experimentar alto tráfego durante as refeições, enquanto sites de vídeo experimentam picos durante as horas após o trabalho.
Isso apresenta um desafio significativo para sistemas de armazenamento de logs, e garantir que o sistema possa funcionar adequadamente durante picos de tráfego é uma habilidade crucial para cada administrador do ElasticSearch.
Uma fila de mensagens é a melhor ferramenta para equilibrar o tráfego. Introduzir uma fila de mensagens entre o gateway e o sistema de armazenamento para fornecer um buffer de logs reduzirá significativamente a pressão no sistema de armazenamento durante períodos de pico de tráfego.
Para esse propósito, o APISIX fornece kafka-logger, que entrega logs de acesso a servidores Kafka, evitando o impacto direto no armazenamento de logs.
loggly
Nos últimos anos, o conceito de [SaaS (Software como serviço)] (https://en.wikipedia.org/wiki/Software_as_a_service) tornou-se gradualmente popular, favorecido por muitas pequenas e médias empresas por seu baixo limiar de entrada e modelo de preços pay-as-you-go. No campo de análise de logs, muitos produtos SaaS emergiram, e loggly tornou-se um líder com suas ricas fontes de logs e capacidades de análise.
Nesse contexto, a comunidade ativa do APISIX desenvolveu plugins prontos para uso do Loggly, que só exigem a configuração das informações de credenciais para enviar diretamente logs de acesso do APISIX para o serviço Loggly, tornando-o altamente conveniente de usar.
Assim como o plugin Loggly, o APISIX também fornece google-cloud-logging, sls-logger e tencent-cloud-cls, que podem facilmente integrar-se com os serviços de log dos principais fornecedores de nuvem.
error-log-logger
Os plugins introduzidos acima são todos usados para coletar logs de acesso. No entanto, há outro tipo de log no APISIX, ou seja, o log de erro (error.log
), que é crítico para diagnosticar mau funcionamento do gateway.
Portanto, o APISIX fornece o error-log-logger para enviar logs de erro para um servidor remoto para armazenamento e análise. Na prática, a configuração do nível de log do APISIX pode ser usada para imprimir mais logs de nível debug ou info, que contêm logs mais detalhados do status de operação do gateway. Usando esses logs, poderíamos localizar a maioria dos problemas.
Resumo
Os logs do gateway contêm um valor enorme, e podemos ver pelos abundantes plugins de log no projeto Apache APISIX que os usuários empresariais na comunidade reconhecem o valor dos logs do gateway. Além disso, esses plugins reduzem ainda mais o custo de configurar um sistema de log para novos usuários.
Além disso, o APISIX tem dois outros tipos de plugins de observabilidade: metrics
e tracing
. Combinados com plugins de log, eles aprimorarão ainda mais a observabilidade do gateway e ajudarão a construir a estabilidade do sistema.