Utilisez LoongCollector pour collecter les journaux Nginx d'une instance ECS vers Simple Log Service (SLS). En 30 minutes, configurez la collecte des journaux, analysez les données avec SQL, affichez un tableau de bord, définissez des alertes et nettoyez les ressources pour éviter les frais.
Prérequis
Activer SLS et préparer un compte
Activez SLS : si c'est votre première utilisation, connectez-vous à la console Simple Log Service et suivez les instructions à l'écran pour activer le service.
-
Préparez un compte :
Compte Alibaba Cloud : dispose par défaut de toutes les autorisations.
-
Utilisateur RAM : si vous utilisez un utilisateur RAM, accordez-lui les stratégies d'autorisation requises :
AliyunLogFullAccess: accorde les autorisations nécessaires pour créer et gérer les ressources SLS, telles que les projets et les logstores.AliyunECSFullAccess: accorde les autorisations nécessaires pour installer l'agent de collecte sur une instance ECS.AliyunOOSFullAccess: accorde les autorisations nécessaires pour installer automatiquement l'agent de collecte sur une instance ECS via Operation Orchestration Service (OOS).
Dans un environnement de production, vous pouvez créer des stratégies d'autorisation personnalisées pour un contrôle plus granulaire des autorisations des utilisateurs RAM.
Préparer une instance ECS
Assurez-vous que le groupe de sécurité de l'instance ECS autorise le trafic sortant sur les ports 80 (HTTP) et 443 (HTTPS).
Générer des journaux fictifs
-
Créez un fichier de script nommé
generate_nginx_logs.shet collez-y le contenu suivant. Ce script écrit une entrée de journal d'accès Nginx standard dans/var/log/nginx/access.logtoutes les 5 secondes. Accordez les droits d'exécution :
chmod +x generate_nginx_logs.sh.Exécutez le script en arrière-plan :
nohup ./generate_nginx_logs.sh &.
Créer un projet et un logstore
Un projet isole et gère les données dans SLS. Un logstore contient les données de journal au sein d'un projet.
Connectez-vous à la console Simple Log Service.
-
Cliquez sur Create Project :
Region : sélectionnez la même région que votre instance ECS pour collecter les journaux via le réseau interne.
Project Name : saisissez un nom globalement unique, par exemple
nginx-quickstart-abc.
Conservez les paramètres par défaut pour les autres configurations et cliquez sur Create.
Une fois le projet créé, cliquez sur Create Logstore.
-
Saisissez un Logstore Name (par exemple,
nginx-access-log), conservez les paramètres par défaut pour les autres configurations, puis cliquez sur OK.Par défaut, un logstore Standard est créé ; sa facturation est basée sur le volume de données écrites .
Installer LoongCollector
Une fois le logstore créé, cliquez sur OK dans la boîte de dialogue de confirmation pour ouvrir le panneau Quick Data Import.
Sur la carte Nginx - Text Logs, cliquez sur Integrate Now.
-
Machine Group Configurations :
Scenario : Servers
Installation Environment : ECS
Cliquez sur Create Machine Group. Dans le panneau qui s'affiche, sélectionnez l'instance ECS cible.
-
Cliquez sur Install and Create Machine Group. Une fois l'installation réussie, saisissez un Name pour le groupe de machines, par exemple
my-nginx-server, puis cliquez sur OK.RemarqueSi l'installation échoue ou reste en attente, assurez-vous que la région de l'ECS est identique à celle du projet.
-
Cliquez sur Next pour vérifier l'état du heartbeat.
Lors de la création initiale d'un groupe de machines, si l'état du heartbeat est FAIL, cliquez sur Automatic Retry . L'état passe à OK en environ deux minutes.
Créer une configuration de collecte
-
Une fois l'état du heartbeat OK, cliquez sur Next pour accéder à la page Logtail Configurations :
: saisissez un nom pour la configuration, par exemple
nginx-access-log-config.: saisissez
/var/log/nginxdans la première zone etaccess.logdans la seconde.-
Processor Configurations :
-
Log Sample : cliquez sur Add Sample Log et collez un exemple d'entrée de journal :
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 : cliquez sur Data Parsing (NGINX Mode). Dans la section NGINX Log Configuration, configurez log_format en copiant et collant le contenu suivant. Ensuite, cliquez sur Confirm.
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $request_time $request_length';Dans un environnement de production, le
log_formatspécifié ici doit correspondre à la définition de votre fichier de configuration Nginx (généralement dans/etc/nginx/nginx.conf).Exemple d'analyse de journal :
Journal brut
Journal structuré
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
-
Cliquez sur Next pour accéder à la page Query and Analysis Configurations. La prise en compte de la configuration de collecte prend environ 1 minute. Cliquez sur Automatic Refresh. L'aperçu des données indique que la configuration est effective.
Interroger et analyser les journaux
Cliquez sur End pour accéder à la page End, puis cliquez sur Query Log. Vous êtes redirigé vers la page d'interrogation et d'analyse du logstore cible. Utilisez SQL pour extraire les métriques clés des journaux structurés. Définissez la plage de temps sur Last 15 Minutes :
Si une fenêtre d'erreur apparaît, l'index n'est pas encore configuré. Fermez-la et attendez environ 1 minute jusqu'à ce que vous puissiez afficher le contenu du journal depuis le fichier access.log.
-
Exemple 1 : Nombre total de pages vues (PV)
Comptez le nombre total d'entrées de journal dans la plage de temps spécifiée.
* | SELECT count(*) AS pv -
Exemple 2 : Requêtes et taux d'erreur par minute
Calculez le total des requêtes, des requêtes en erreur (code d'état HTTP ≥ 400) et le taux d'erreur par minute.
* | 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 -
Exemple 3 : PV par méthode de requête (GET, POST, etc.)
Regroupez et comptez les pages vues par minute et par méthode de requête (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
Visualiser les données sur un tableau de bord
Après avoir configuré le processeur d'analyse Nginx, SLS crée automatiquement un tableau de bord prédéfini nommé nginx-access-log_Nginx Access Log.
Dans le volet de navigation de gauche, choisissez
.Cliquez sur le nom du tableau de bord pour afficher les graphiques des métriques clés : PV, UV, taux d'erreur et répartition des méthodes de requête.
Personnalisez les graphiques en fonction de vos besoins métier.

Configurer la surveillance et les alertes
Créez une règle d'alerte pour recevoir des notifications en cas de comportement anormal, tel qu'une augmentation soudaine des erreurs.
Dans le volet de navigation de gauche, cliquez sur
Alerts.-
Créez une stratégie d'action :
Dans l'onglet , cliquez sur Create.
Configurez l'ID et le Name (par exemple,
send-notification-to-admin).Dans Primary Action Policy, cliquez sur
Action Group.Sélectionnez une Notification Method (par exemple, SMS), configurez le Recipient et sélectionnez un Alert Template.
Cliquez sur Confirm.
-
Créez une règle d'alerte :
Basculez vers l'onglet Alert Monitoring Rule et cliquez sur Create Alert.
Nom de la règle : saisissez un nom descriptif, par exemple
Too many server 5xx errors.-
Query Statistics : cliquez sur Add et configurez les conditions de requête.
Logstore : sélectionnez
nginx-access-log.Query Time Range : 15 minutes (Relative).
: saisissez
status >= 500 | SELECT *.Cliquez sur Preview pour confirmer que vous pouvez interroger les données, puis cliquez sur OK.
-
Trigger Condition : définissez la condition pour déclencher une alerte Critical lorsque le Specific number of entries est >100.
Cette configuration déclenche une alerte si plus de 100 erreurs 5xx se produisent en 15 minutes.
-
: sélectionnez SLS Notification et Enable-le.
Action Policy : sélectionnez la stratégie d'action créée à l'étape précédente.
Repeat Interval : définissez sur 15 minutes pour éviter les notifications répétées.
Cliquez sur OK pour enregistrer la règle d'alerte.
Vérification : lorsque la condition de déclenchement est remplie, le canal de notification configuré reçoit une alerte. Vous pouvez consulter toutes les alertes déclenchées sur la page Alert History.
Nettoyage des ressources
Nettoyez toutes les ressources créées dans ce tutoriel pour éviter des frais continus.
-
Arrêter le script de génération de journaux
Connectez-vous à l'instance ECS et exécutez la commande suivante pour arrêter le script en arrière-plan.
kill $(ps aux | grep '[g]enerate_nginx_logs.sh' | awk '{print $2}') -
Désinstaller LoongCollector (facultatif)
-
Remplacez
${region_id}parcn-hangzhou, ou pour des performances optimales, remplacez${region_id}par l'ID de la région de votre instance ECS.wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh; -
Exécutez la commande de désinstallation.
chmod +x loongcollector.sh; sudo ./loongcollector.sh uninstall;
-
-
Supprimer le projet
Sur la page de liste des projets de la console Simple Log Service, trouvez le projet que vous avez créé, par exemple
nginx-quickstart-xxx.Dans la colonne Actions, cliquez sur Delete.
Dans le panneau qui s'affiche, saisissez le nom du projet et sélectionnez une raison de suppression.
Cliquez sur OK. La suppression d'un projet supprime toutes les ressources associées, y compris les logstores, les configurations de collecte, les tableaux de bord et les règles d'alerte.
AvertissementLa suppression d'un projet supprime définitivement toutes les données de journal et les configurations. Cette action est irréversible.
Étapes suivantes
Maintenant que vous avez collecté, interrogé, visualisé et surveillé les journaux, explorez les ressources suivantes pour en savoir plus :
Méthodes de collecte de données : choisissez la méthode adaptée à votre scénario.
Hiérarchie des ressources de stockage : planifiez le cycle de vie des ressources et l'allocation des shards.
FAQ
Heure du journal incohérente après la collecte
Par défaut, le champ __time__ utilise l'heure d'arrivée sur le serveur. Pour utiliser l'horodatage du journal d'origine, ajoutez un plug-in d'analyse temporelle à la configuration de collecte.
Frais liés à la création d'un projet et d'un logstore
La création d'un logstore réserve par défaut des ressources de shard, ce qui peut entraîner des frais de location de shard actif. Pourquoi suis-je facturé pour les frais de location de shard actif ?
Dépannage des échecs de collecte de journaux
La collecte de journaux avec Logtail peut échouer en raison de heartbeats Logtail anormaux, d'erreurs de collecte ou de configurations Logtail incorrectes. Dépannage des échecs de collecte de journaux Logtail.
Échec de l'analyse des journaux
L'analyse des journaux nécessite des index de champs avec la fonctionnalité de statistiques activée. Vérifiez la configuration d'index de votre logstore.
Arrêt de la facturation
Simple Log Service ne peut pas être désactivé une fois activé. Si vous ne souhaitez plus utiliser le service, vous pouvez arrêter la facturation en supprimant tous les projets sous votre compte.