Use o LoongCollector para coletar logs do Nginx de uma instância ECS no Simple Log Service (SLS). Em até 30 minutos, configure a coleta de logs, analise dados com SQL, visualize um painel, defina alertas e limpe os recursos para evitar cobranças.
Pré-requisitos
Ative o SLS e prepare uma conta
Ative o SLS: se for sua primeira vez, faça login no console do Simple Log Service e siga as instruções na tela para ativar o service.
-
Prepare uma conta:
Conta Alibaba Cloud: possui permissões totais por padrão.
-
Usuário RAM: ao utilizar um usuário RAM, conceda as políticas de permissão obrigatórias:
AliyunLogFullAccess: concede permissões para criar e gerenciar recursos do SLS, como projetos e logstores.AliyunECSFullAccess: concede permissões para instalar o agente de coleta em uma instância ECS.AliyunOOSFullAccess: concede permissões para instalar automaticamente o agente de coleta em uma instância ECS por meio do Operation Orchestration Service (OOS).
Em ambientes de produção, crie políticas de permissão personalizadas para obter um controle mais granular sobre as permissões do usuário RAM.
Prepare uma instância ECS
Verifique se o grupo de segurança da instância ECS permite tráfego de saída nas portas 80 (HTTP) e 443 (HTTPS).
Gere 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 &.
Crie um projeto e um logstore
Um projeto isola e gerencia dados no SLS. O logstore armazena os dados de log dentro de um projeto.
Faça login no console do Simple Log Service.
-
Clique em Create Project:
Region: selecione a mesma região da sua instância ECS para coletar logs pela rede interna.
Project Name: insira um nome globalmente exclusivo, como
nginx-quickstart-abc.
Mantenha as configurações padrão para as outras configurações e clique em Create.
Após a criação do projeto, clique em Create Logstore.
-
Insira um Logstore Name (por exemplo,
nginx-access-log), mantenha as configurações padrão para as outras configurações e clique em OK.Por padrão, um logstore Standard é criado e faturado com base no volume de dados gravados.
Instale o LoongCollector
Depois de criar o logstore, clique em OK na caixa de diálogo de confirmação 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, insira um Name para o machine group, como
my-nginx-server, e clique em OK.NotaSe a instalação falhar ou permanecer pendente, verifique se a região do ECS corresponde à região do projeto.
-
Clique em Next para prosseguir com a verificação do status de heartbeat.
Ao criar um machine group pela primeira vez, caso o status do heartbeat seja FAIL, clique em Automatic Retry . O status mudará para OK em aproximadamente dois minutos.
Crie uma configuração de coleta
-
Quando o status do heartbeat for OK, clique em Next para acessar a página Logtail Configurations:
: insira um nome para a configuração, como
nginx-access-log-config.: insira
/var/log/nginxno primeiro campo eaccess.logno segundo.-
Processor Configurations:
-
Log Sample: clique em Add Sample Log 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: clique em Data Parsing (NGINX Mode). Na seção NGINX Log Configuration, configure o log_format copiando e colando o conteúdo abaixo. Em seguida, clique em Confirm.
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_formatespecificado 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 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 ir à página Query and Analysis Configurations. A configuração de coleta leva cerca de 1 minuto para entrar em vigor. Clique em Automatic Refresh. A visualização dos dados indica que a configuração está ativa.
Consulte e analise logs
Clique em End para acessar a página End e, em seguida, clique em Query Log. Você será redirecionado para a página de consulta e análise do logstore de destino. Utilize SQL para extrair métricas principais dos logs estruturados. Defina o intervalo de tempo como Last 15 Minutes:
Caso surja um pop-up de erro, significa que o índice ainda não foi configurado. Feche-o e aguarde cerca de 1 minuto até conseguir visualizar o conteúdo do log no arquivo access.log.
-
Exemplo 1: Total de visualizações de página (PV)
Conte o número total de entradas de log dentro do intervalo de tempo especificado.
* | SELECT count(*) AS pv -
Exemplo 2: Requisições e taxa de erro por minuto
Calcule o total de requisições, requisiçõ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: PVs por método de requisição (GET, POST, etc.)
Agrupe e conte as visualizações de página por minuto e método de requisiçã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
Visualize dados em um painel
Ao configurar o processador 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, escolha
.Clique no nome do painel para visualizar gráficos das métricas principais: PVs, UVs, taxa de erro e distribuição de métodos de requisição.
Personalize os gráficos conforme as necessidades do seu negócio.

Configure monitoramento e alertas
Crie uma regra de alerta para receber notificações quando ocorrerem comportamentos anormais, como um pico 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).Em Primary Action Policy, clique em
Action Group.Selecione um Notification Method (por exemplo, SMS), configure o Recipient e escolha um Alert Template.
Clique em Confirm.
-
Crie uma regra de alerta:
Mude para a aba Alert Monitoring Rule e clique em Create Alert.
Nome da regra: insira um nome descritivo, como
Too many server 5xx errors.-
Query Statistics: clique em Add e configure as condições de consulta.
Logstore: selecione
nginx-access-log.Query Time Range: 15 minutes (Relative).
: insira
status >= 500 | SELECT *.Clique em Preview para confirmar que é possível consultar dados e, depois, clique em OK.
-
Trigger Condition: defina a condição para acionar um alerta Critical quando o Specific number of entries for >100.
Esta configuração dispara um alerta se ocorrerem mais de 100 erros 5xx em 15 minutos.
-
: selecione SLS Notification e Enable a opçã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.
Clique em OK para salvar a regra de alerta.
Verificação: quando a condição de gatilho for atendida, o canal de notificação configurado receberá um alerta. É possível visualizar todos os alertas disparados na página Alert History.
Limpeza de recursos
Limpe todos os recursos criados neste tutorial para evitar cobranças contínuas.
-
Pare o script de geração de logs
Faça login na instância ECS e execute o comando a seguir para parar o script em segundo plano.
kill $(ps aux | grep '[g]enerate_nginx_logs.sh' | awk '{print $2}') -
Desinstale o LoongCollector (opcional)
-
Substitua
${region_id}porcn-hangzhouou, para melhor desempenho, substitua${region_id}pelo ID da 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;
-
-
Exclua o projeto
Na página de lista de projetos do console do Simple Log Service, localize o projeto criado, como
nginx-quickstart-xxx.Na coluna Actions, clique em Delete.
No painel exibido, insira o nome do projeto e selecione um motivo para a exclusão.
Clique em OK. A exclusão de um projeto remove todos os recursos associados, incluindo logstores, configurações de coleta, painéis e regras de alerta.
AvisoA exclusão de um projeto remove permanentemente todos os dados de log e configurações. Esta ação não pode ser desfeita.
Próximas etapas
Agora que você coletou, consultou, visualizou e monitorou logs, explore os seguintes recursos para saber mais:
Métodos de coleta de dados: escolha o método adequado para o seu cenário.
Hierarquia de recursos de armazenamento: planeje o ciclo de vida dos recursos e a alocação de shards.
FAQ
Horário do log inconsistente após a coleta
Por padrão, o campo __time__ utiliza o horário de chegada ao servidor. Para usar o carimbo de data/hora do log original, adicione um plug-in de análise de tempo à configuração de coleta.
Cobranças pela criação de projeto e logstore
A criação de um logstore reserva recursos de shard por padrão, o que pode gerar taxas de aluguel de shard ativo. Por que sou cobrado pelas taxas de aluguel de shard ativo?
Solução de problemas para falhas na coleta de logs
A coleta de logs com o Logtail pode falhar devido a heartbeats anormais, erros de coleta ou configurações incorretas do Logtail. Solução de problemas para falhas na coleta de logs do Logtail.
Falha ao analisar logs
A análise de logs exige índices de campo com o recurso de estatísticas ativado. Verifique a configuração de índice do seu logstore.
Interrupção do faturamento
Não é possível desativar o Simple Log Service após a ativação. Se não desejar mais utilizar o service, você pode parar o faturamento excluindo todos os projetos da sua conta.