Ative o módulo stub_status do Nginx para expor métricas em tempo real, como conexões ativas e estados de leitura, escrita e espera. Em seguida, use um plug-in do Logtail para coletar e analisar logs de monitoramento do Nginx e garantir a observabilidade contínua do desempenho do cluster.
Pré-requisitos
Instale o Logtail no servidor. Instalar o Logtail (Linux) | Instalar o Logtail (Windows).
Este recurso requer o Logtail v0.16.0 ou posterior para Linux e o Logtail v1.0.0.8 ou posterior para Windows.
Etapa 1: Configurar o módulo stub_status
Este exemplo usa o sistema operacional Linux.
-
Instale e reinicie o Nginx.
sudo yum install -y nginx sudo systemctl restart nginx -
Verifique se o Nginx oferece suporte ao módulo stub_status.
nginx -V 2>&1 | grep -o with-http_stub_status_moduleSaída esperada:
with-http_stub_status_module -
Configure o servidor Nginx.
-
Adicione o código abaixo ao bloco
server {..}no arquivo de configuração do Nginx. Consulte o tutorial da página de status do Nginx para obter detalhes sobre onginx_status.location /nginx_status { stub_status on; # Enable the stub_status module. access_log off; allow ${YOUR_SERVER_IP}; # The IP address of the server that is allowed to access the page. deny all; # Deny access from all other IP addresses to this status page. } -
Valide a configuração.
nginx -t sudo systemctl restart nginx curl http://${YOUR_SERVER_IP}/nginx_statusSaída esperada em caso de sucesso:
Active connections: 1 server accepts handled requests 2507455 2507455 2512972 Reading: 0 Writing: 1 Waiting: 0
-
Etapa 2: Coletar logs de monitoramento do Nginx
Faça login no console do Simple Log Service.
-
No lado direito da página exibida, clique em Quick Data Import.

Na página Data Import, clique em Custom Data Plug-in.
Selecione o projeto e o Logstore de destino e clique em Next.
-
Crie um grupo de máquinas.
Se você já tiver um grupo de máquinas, clique em Use Existing Machine Groups.
-
Se ainda não tiver um grupo de máquinas, siga as etapas abaixo para criar um. Este exemplo usa uma instância ECS.
-
Na aba ECS Instance, selecione a instância ECS desejada e clique em Create.
Para mais informações, consulte Instalar o Logtail em instâncias ECS.
ImportanteSe o servidor for uma instância ECS de outra conta Alibaba Cloud, um servidor de outro provedor de nuvem ou um servidor em seu próprio data center, instale o Logtail manualmente. Para mais detalhes, consulte Instalar o Logtail em um servidor Linux ou Instalar o Logtail em um servidor Windows.
Após instalar o Logtail manualmente, configure um identificador de usuário no servidor. Para mais informações, consulte Configurar um identificador de usuário.
Após concluir a instalação, clique em Complete Installation.
-
Na página Create Machine Group, insira um Name e clique em Next.
O Log Service oferece suporte a grupos de máquinas baseados em endereços IP e grupos baseados em identificadores personalizados. Para mais detalhes sobre os parâmetros, consulte Criar um grupo de máquinas baseado em endereço IP e Criar um grupo de máquinas baseado em identificador personalizado.
-
-
Confirme se o grupo de máquinas aparece na seção Applied Server Groups e clique em Next.
ImportanteAo aplicar um grupo de máquinas logo após sua criação, o status de heartbeat pode aparecer como FAIL. Isso ocorre porque o grupo ainda não estabeleceu conexão com o Simple Log Service. Para resolver, clique em Automatic Retry. Se o problema persistir, consulte O que fazer se nenhuma conexão de heartbeat for detectada no Logtail?
-
Na aba Data source settings, cole o código abaixo em Plug-in configuration, substitua ${YOUR_SERVER_IP} pelo endereço IP do servidor e clique em Next.
{ "inputs": [ { "type": "metric_http", "detail": { "IntervalMs": 60000, "Addresses": [ "http://${YOUR_SERVER_IP}/nginx_status" ], "IncludeBody": true } } ], "processors": [ { "type": "processor_regex", "detail": { "SourceKey": "content", "Regex": "Active connections: (\\d+)\\s+server accepts handled requests\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+Reading: (\\d+) Writing: (\\d+) Waiting: (\\d+)[\\s\\S]*", "Keys": [ "connection", "accepts", "handled", "requests", "reading", "writing", "waiting" ], "FullMatch": true, "NoKeyError": true, "NoMatchError": true, "KeepSource": false } } ] }-
O campo inputs é obrigatório e define as configurações da fonte de dados para a configuração do Logtail.
ImportanteÉ possível especificar apenas um tipo de fonte de dados em inputs.
-
O campo processors é opcional e serve para configurar o processamento de dados na configuração do Logtail, permitindo a análise das informações. Defina um ou mais métodos de processamento.
Se os logs não puderem ser analisados apenas com a configuração de inputs, configure processors no campo Plug-in Configuration para adicionar plug-ins de processamento de dados. Exemplos incluem extração de campos, extração de horário do log, mascaramento de dados e filtragem de logs. Para mais informações, consulte Plug-ins do Logtail para processamento de dados.
Principais parâmetros:
Parâmetro
Tipo
Obrigatório
Descrição
type
string
Sim
Tipo da fonte de dados. Valor fixo: metric_http.
IntervalMs
int
Sim
Intervalo entre requisições, em milissegundos.
Addresses
Array
Sim
URLs a serem monitoradas.
IncludeBody
boolean
Não
Indica se o corpo da requisição deve ser coletado. Padrão: false. Quando definido como true, o corpo é armazenado no campo content.
-
Os logs começam a aparecer aproximadamente um minuto após a configuração. O Simple Log Service gera automaticamente um painel nginx_status para consulta e análise dos resultados. Exemplo de log:
_address_: http://127.0.0.1/nginx_status
_method_: GET
_result_: success
_http_response_code_: 200
_response_time_ms_: 0.418
accepts: 6
connection: 3
handled: 6
reading: 0
requests: 6
waiting: 2
writing: 1
Etapa 3: Consultar e analisar logs
Faça login no console do Simple Log Service.
-
Na seção Projects, clique em projeto desejado.

-
Na aba , clique em Logstore desejado.

-
Insira uma instrução de consulta e análise e clique em Last 15 minutes para definir o intervalo de tempo da consulta.
Para mais informações, consulte Etapa 1: Configurar índices.
-
Consultar logs
-
Buscar um endereço IP específico.
_address_: 10.10.0.0 -
Filtrar requisições com tempo de resposta superior a 100 ms.
_response_time_ms_ > 100 -
Identificar respostas diferentes de 200.
not _http_response_code_ : 200
-
-
Analisar logs
-
Calcular a média dos valores de
waiting,reading,writingeconnectiona cada 5 minutos.*| select avg(waiting) as waiting, avg(reading) as reading, avg(writing) as writing, avg(connection) as connection, from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440 -
Listar os 10 principais servidores por conexões em espera.
*| select max(waiting) as max_waiting, _address_, from_unixtime(max(__time__)) as time group by address order by max_waiting desc limit 10 -
Contar endereços IP únicos.
* | select count(distinct(_address_)) as total -
Quantificar IPs únicos com falhas nas requisições.
not _result_ : success | select count(distinct(_address_)) -
Exibir os 10 IPs mais recentes com requisições falhas.
not _result_ : success | select _address_ as address, from_unixtime(__time__) as time order by __time__ desc limit 10 -
Total de requisições a cada 5 minutos.
*| select avg(handled) * count(distinct(_address_)) as total_handled, avg(requests) * count(distinct(_address_)) as total_requests, from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440 -
Latência média das requisições a cada 5 minutos.
*| select avg(_response_time_ms_) as avg_delay, from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440 -
Contabilizar requisições com falha e com sucesso.
not _http_response_code_ : 200 | select count(1)_http_response_code_ : 200 | select count(1)
-
-