Este guia demonstra como coletar logs do NGINX de uma instância do Elastic Compute Service (ECS) usando o LoongCollector do Simple Log Service (SLS). Você aprenderá a configurar a coleta de logs, consultar dados com SQL, visualizar um painel, configurar alertas e limpar recursos para evitar cobranças.
Pré-requisitos
Ativar serviços e preparar uma conta
Ativar o SLS: Se esta for a primeira vez que você usa o SLS, faça login no console do Simple Log Service e ative o serviço conforme solicitado.
-
Preparar uma conta:
Faça login com uma conta Alibaba Cloud: Esta conta possui todas as permissões por padrão e pode ser usada diretamente.
-
Faça login com um usuário RAM: A conta Alibaba Cloud deve conceder as políticas de acesso necessárias ao usuário RAM:
AliyunLogFullAccess: Usada para criar e gerenciar recursos do SLS, como projetos e logstores.AliyunECSFullAccess: Usada para instalar o agente de coleta em uma instância ECS.AliyunOOSFullAccess: Usada para instalar automaticamente o agente de coleta em uma instância ECS por meio do Alibaba Cloud Operation Orchestration Service (OOS).
Em um ambiente de produção, você pode criar políticas de permissão personalizadas para gerenciar permissões de usuários RAM de forma mais granular.
Preparar uma instância ECS
Certifique-se de que o grupo de segurança da instância ECS permita tráfego de saída na porta 80 (HTTP) e na porta 443 (HTTPS).
Gerar logs simulados
-
Crie um arquivo de script chamado
generate_nginx_logs.she cole o conteúdo a seguir. Este script grava uma entrada de log de acesso padrão do NGINX no arquivo/var/log/nginx/access.loga cada 5 segundos. Conceda permissões de execução:
chmod +x generate_nginx_logs.sh.Execute o script em segundo plano:
nohup ./generate_nginx_logs.sh &.
Criar um projeto e um logstore
O projeto é a unidade de gerenciamento de recursos no SLS e serve para isolar dados de diferentes iniciativas. O logstore é a unidade de armazenamento para dados de log.
Faça login no console do Simple Log Service.
-
Clique em Create Project:
Region: Selecione a mesma região da sua instância ECS. Isso permite coletar logs pela rede interna da Alibaba Cloud, acelerando a coleta.
Project Name: Insira um nome globalmente exclusivo na Alibaba Cloud, como
nginx-quickstart-abc.
Mantenha as configurações padrão para as outras configurações e clique em Create.
Na página que confirma a criação do projeto, clique em Create Logstore.
-
Insira um Logstore Name, como
nginx-access-log. Não altere as outras configurações e clique em OK.Por padrão, o sistema cria um logstore médio , cujo faturamento é baseado no volume de dados gravados .
Instalar o LoongCollector
Na caixa de diálogo exibida após a criação do logstore, clique em OK para abrir o painel Quick Data Import.
No cartão Nginx - Text Logs, clique em Integrate Now.
-
Machine Group Configurations:
Scenario: Servers
Installation Environment: ECS
Clique em Create Machine Group. No painel exibido, selecione a instância ECS de destino.
-
Clique em Install and Create Machine Group. Após a instalação bem-sucedida, configure o Name do grupo de máquinas, como
my-nginx-server, e clique em OK.NotaSe a instalação falhar ou permanecer pendente, verifique se a região do ECS é a mesma do projeto.
-
Clique em Next para verificar o status de heartbeat do grupo de máquinas.
Ao criar um grupo de máquinas pela primeira vez, se o status do heartbeat for FAIL, clique em Automatic Retry . O status mudará para OK após cerca de dois minutos.
Criar uma configuração de coleta
-
Quando o status do heartbeat for OK, clique em Next para acessar a página Logtail Configuration:
: Insira um nome para a configuração, como
nginx-access-log-config.: Caminho para coleta de logs. Na primeira caixa de entrada, insira o caminho do diretório, como
/var/log/nginx. Na segunda, insira o nome do arquivo, comoaccess.log.-
Processor Configurations:
-
Log Sample: Clique em Add Log Sample e cole uma entrada de log de exemplo:
192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36" -
Processing Method: Selecione Data Parsing (NGINX Mode). No campo NGINX Log Configuration, configure o
log_format. Copie e cole o conteúdo a seguir e clique em OK.log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $request_time $request_length';Em ambientes de produção, o
log_formatdefinido aqui deve corresponder à definição no seu arquivo de configuração do NGINX, geralmente localizado em /etc/nginx/nginx.conf.Exemplo de análise de log:
Log bruto
Log analisado estruturado
192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36"body_bytes_sent: 368 http_referer: - http_user_agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.x.x Safari/537.36 remote_addr:192.168.*.* remote_user: - request_length: 514 request_method: GET request_time: 0.000 request_uri: /nginx-logo.png status: 200 time_local: 15/Apr/2025:16:40:00
-
Clique em Next para acessar a página Query and Analysis Configurations. A aplicação da configuração de coleta leva cerca de um minuto. Clique em Automatic Refresh. Se dados de pré-visualização aparecerem, a configuração foi aplicada.
Consultar e analisar logs
Clique em Next para ir à página final e, em seguida, clique em Query Logs. O sistema redirecionará você para a página de consulta e análise do logstore de destino. Escreva instruções analíticas SQL para extrair métricas essenciais de negócios e O&M dos logs analisados. Defina o intervalo de tempo como Last 15 Minutes:
Se uma janela pop-up de erro aparecer, significa que o índice ainda não está configurado. Feche a janela e aguarde um minuto. Depois disso, visualize o conteúdo do log do arquivo access.log.
-
Exemplo 1: Visualizações de página do site (PVs)
Conte o número total de entradas de log dentro do intervalo de tempo especificado.
* | SELECT count(*) AS pv -
Exemplo 2: Estatísticas de solicitações e taxa de erro por minuto
Calcule o número total de solicitações, o número de solicitações com erro (código de status HTTP ≥ 400) e a taxa de erro por minuto.
* | SELECT date_trunc('minute', __time__) as time, count(1) as total_requests, count_if(status >= 400) as error_requests, round(count_if(status >= 400) * 100.0 / count(1), 2) as error_rate GROUP BY time ORDER BY time DESC LIMIT 100 -
Exemplo 3: Estatísticas de PVs por método de solicitação (GET, POST, etc.)
Agrupe e conte visualizações de página por minuto e método de solicitação (GET, POST, etc.).
* | SELECT date_format(minute, '%m-%d %H:%i') AS time, request_method, pv FROM ( SELECT date_trunc('minute', __time__) AS minute, request_method, count(*) AS pv FROM log GROUP BY minute, request_method ) ORDER BY minute ASC LIMIT 10000
Visualizar dados em um painel
Após configurar o plug-in de análise do NGINX, o SLS cria automaticamente um painel predefinido chamado nginx-access-log_NGINX Access Log.
No painel de navegação à esquerda, clique em
e escolha .Localize e clique no nome do painel para visualizar gráficos de métricas principais, como visualizações de página (PVs), visitantes únicos (UVs), taxa de erro e distribuição de métodos de solicitação.
É possível personalizar e modificar todos os gráficos conforme necessário.
Configurar monitoramento e alertas
Configure uma regra de alerta para enviar notificações automaticamente quando houver anomalias no serviço, como um aumento repentino no número de erros.
No painel de navegação à esquerda, clique em
Alerts.-
Crie uma política de ação:
Na aba , clique em Create.
Configure o ID e o Name, por exemplo,
send-notification-to-admin.Na Primary Action Policy, clique em
Action Group.Selecione um Notification Method, como SMS Message, configure o Recipient e selecione um Alert Template.
Clique em Confirm.
-
Crie uma regra de alerta:
Mude para a aba Alert Rules e clique em Create Alert.
Insira um nome para a regra, como
Too many server 5xx errors.-
No campo Query Statistics, clique em Create para definir as condições de consulta.
Logstore: Selecione o
nginx-access-logcriado anteriormente.Time Range: 15 minutes (Relative).
: Insira
status >= 500 | SELECT *.Clique em Preview para confirmar a consulta dos dados e, em seguida, clique em OK.
-
Trigger Condition: Configure a regra para acionar um alerta crítico quando o resultado da consulta contiver mais de 100 entradas.
Esta configuração aciona um alerta se ocorrerem mais de 100 erros 5xx em 15 minutos.
-
: Selecione Simple Log Service Notification e ative-o.
Action Policy: Selecione a política de ação criada na etapa anterior.
Repeat Interval: Defina como 15 minutos para evitar notificações repetidas excessivas.
Clique em OK para salvar a regra de alerta.
Verificação: Quando a condição de alerta for atendida, o canal de notificação configurado receberá um alerta. Visualize todos os registros de alerta acionados na página Alert History.
Limpar recursos
Para evitar cobranças desnecessárias, limpe todos os recursos criados após concluir as tarefas.
-
Parar o script de geração de logs
Faça login na instância ECS e execute o comando a seguir para parar o script de geração de logs em execução em segundo plano.
kill $(ps aux | grep '[g]enerate_nginx_logs.sh' | awk '{print $2}') -
Desinstalar o LoongCollector (Opcional)
-
No código de exemplo, substitua
${region_id}porcn-hangzhou. Para acelerar a execução, substitua${region_id}pela região da sua instância ECS.wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh; -
Execute o comando de desinstalação.
chmod +x loongcollector.sh; sudo ./loongcollector.sh uninstall;
-
-
Excluir o projeto.
No console do Simple Log Service, acesse a página Project List e localize o projeto criado, como
nginx-quickstart-xxx.Na coluna Actions, clique em Delete.
No painel de exclusão, insira o nome do projeto e selecione um motivo para a exclusão.
Clique em OK. A exclusão de um projeto também remove todos os seus recursos associados, incluindo logstores, configurações de coleta, painéis e regras de alerta.
AvisoApós a exclusão de um projeto, todos os seus dados de log e informações de configuração são liberados e não podem ser recuperados. Confirme a ação antes de excluir um projeto para evitar perda de dados.
Próximos passos
Você concluiu o processo de coleta de logs, consulta e análise, visualização em painel e configuração de alertas. Recomendamos a leitura dos documentos a seguir para compreender melhor os conceitos principais e planejar seu sistema de recursos de log com base nas necessidades do seu negócio:
Familiarize-se com os métodos de coleta de dados e escolha o mais adequado para o seu cenário de negócios.
Entenda a hierarquia de recursos de armazenamento, planeje o ciclo de vida dos recursos e aloque um número adequado de shards.
FAQ
O que devo fazer se o horário exibido for diferente do horário original do log após a coleta?
Por padrão, o campo de tempo (__time__) no SLS utiliza o momento em que o log chega ao servidor. Para usar o horário do log original, adicione um plug-in de análise de tempo à configuração de coleta.
Serei cobrado apenas por criar um projeto e um logstore?
Ao criar um logstore, o SLS reserva recursos de shard por padrão. Isso pode gerar taxas de concessão de shards ativos. Para mais informações, consulte Por que sou cobrado por concessões de shards ativos?
Como soluciono falhas na coleta de logs?
A coleta de logs com o Logtail pode falhar devido a motivos como heartbeats anormais do Logtail, erros de coleta ou configurações incorretas de coleta do Logtail. Para informações sobre solução de problemas, consulte Solucionar falhas na coleta de logs do Logtail.
Por que consigo consultar logs, mas não analisá-los?
Para analisar logs, configure um índice de campo para os campos relevantes e ative o recurso de estatísticas. Verifique a configuração de índice do seu logstore.
Como paro o faturamento do SLS?
O SLS não pode ser desativado após a ativação. Se você não for mais usar o SLS, pare o faturamento excluindo todos os projetos da sua conta.