Tous les produits
Search
Centre de documentation

Simple Log Service:Interroger et analyser les journaux de site web

Dernière mise à jour :Aug 18, 2026

Créez des index et exécutez des instructions de recherche et d'analyse sur les journaux d'accès au site web dans Simple Log Service.

Prérequis

Les journaux d'accès au site web sont collectés à l'aide d'une configuration Logtail. Collecter des journaux textuels depuis des serveurs.

Étape 1 : Créer des index

Des index sont nécessaires pour interroger et analyser les journaux. Simple Log Service prend en charge les index plein texte et les index de champ. Cette rubrique utilise des index de champ pour les journaux d'accès au site web. Créer des index.

  1. Connectez-vous à la console Simple Log Service.

  2. Dans la section Projects, cliquez sur le projet souhaité.

    image

  3. Sous l'onglet Log Storage > Logstores, cliquez sur le logstore souhaité.

    image

  4. Dans le coin supérieur droit, choisissez Index Attributes > Attributes. Si l'indexation n'est pas activée, cliquez sur Enable.

  5. Configurez les index de champ et cliquez sur OK. Vous pouvez ajouter manuellement des index de champ ou cliquer sur Automatic Index Generation pour générer des index à partir du premier journal affiché dans l'aperçu de la collecte de données.

    Important
    • Les index s'appliquent uniquement aux données de journal écrites après leur configuration. Pour interroger des données historiques, utilisez la fonctionnalité de réindexation. Réindexer les journaux d'un Logstore.

    • Pour utiliser des instructions d'analyse (SELECT), activez Enable Analytics pour les champs cibles lors de la configuration des index.

    • Simple Log Service configure automatiquement des index pour certains champs réservés. Champs réservés.

    Dans la boîte de dialogue Index Attributes, cliquez sur Automatic Index Generation pour générer des index de champ. Les champs générés incluent body_bytes_sent (long), client_ip (text), host (text), http_host (text), http_user_agent (text), request_length (long) et request_method (text). Les champs text utilisent les délimiteurs par défaut ,"';=()[]{}?@&<>/:\n\t\r, avec Case-Sensitive et Include Chinese désactivés et Enable Analytics activé. Cliquez sur OK pour confirmer.

Étape 2 : Interroger et analyser les journaux

Exécutez des instructions de recherche et d'analyse au format instruction de recherche|instruction d'analyse. Une instruction de recherche peut s'exécuter indépendamment, mais une instruction d'analyse doit être combinée à une instruction de recherche. Interroger et analyser les journaux.

Important

Par défaut, une requête renvoie seulement 100 lignes. Utilisez la clause LIMIT pour modifier le nombre de lignes renvoyées.

Instruction de recherche

  • Interrogez les entrées de journal qui contiennent Chrome :

    Chrome
  • Interrogez les entrées de journal dont la durée de requête est supérieure à 60 secondes :

    request_time > 60
  • Interrogez les entrées de journal dont la durée de requête est comprise entre 60 et 120 secondes :

    request_time in [60 120]
  • Interrogez les requêtes GET réussies (code d'état 200–299) :

    request_method : GET and status in [200 299]
  • Interrogez les entrées de journal où request_uri est /request/path-2 :

    request_uri:/request/path-2/file-2

Instruction d'analyse

  • Calculez les pages vues (PV).

    Utilisez la fonction count pour calculer le total des PV.

    * | SELECT count(*) AS PV

    Le résultat affiche un PV de 9685.

  • Calculez les PV par minute.

    Utilisez la fonction date_trunc pour tronquer le temps à la minute, la fonction count pour compter les PV par minute, ainsi que GROUP BY et ORDER BY pour grouper et trier par temps.

    * | SELECT count(*) as PV, date_trunc('minute', __time__) as time GROUP BY time ORDER BY time

    Les résultats s'affichent sous forme de graphique linéaire montrant la tendance des PV par minute.

  • Calculez le nombre de requêtes par méthode par intervalles de 5 minutes.

    Utilisez __time__ - __time__ %300 pour tronquer le temps par intervalles de 5 minutes, la fonction count pour compter les requêtes, ainsi que GROUP BY et ORDER BY pour grouper et trier par temps.

    * | SELECT request_method, count(*) as count, __time__ - __time__ %300 as time GROUP BY time, request_method ORDER BY time

    Exemple de résultat : 778 requêtes GET, 242 requêtes PUT, 231 requêtes POST, 101 requêtes DELETE et 4 requêtes HEAD, toutes avec un horodatage de 1610673300.

  • Comparez les PV de cette semaine avec celles de la semaine dernière.

    Utilisez la fonction count pour le total des PV et la fonction ts_compare pour comparer les PV de cette semaine avec celles de la semaine dernière. Dans cette instruction, website_log est le nom du Logstore.

    * | SELECT diff[1] as this_week, diff[2] as last_week, time FROM (SELECT ts_compare(pv, 604800) as diff, time FROM (SELECT COUNT(*) as pv, date_trunc('week', __time__) as time FROM website_log GROUP BY time ORDER BY time) GROUP BY time)

    Week-over-week PV comparison

  • Analysez la distribution des adresses IP client par province.

    Utilisez la fonction ip_to_province pour mapper les adresses IP aux provinces, et la fonction count pour compter les occurrences. Utilisez GROUP BY et ORDER BY pour grouper et trier les résultats.

    * | SELECT count(*) as count, ip_to_province(client_ip) as address GROUP BY address ORDER BY count DESC

    Un exemple des résultats de la requête : 451 requêtes depuis la province du Guangdong, 447 depuis la province du Jiangsu, 433 depuis Pékin et 425 depuis la province du Shandong.

  • Trouvez les 10 URI de requête les plus consultées.

    Utilisez GROUP BY pour grouper les résultats par URI de requête, la fonction count pour compter les accès par URI, et ORDER BY pour trier par nombre.

    * | SELECT count(*) as PV, request_uri as PATH GROUP BY PATH ORDER BY PV DESC LIMIT 10

    Après avoir exécuté l'instruction de requête, les exemples de résultats affichent les 10 chemins de requête (PATH) les plus consultés et leurs nombres de visites correspondants (PV).

  • Interrogez les entrées de journal où request_uri se termine par %file-7.

    Important

    Dans les instructions de recherche, les caractères génériques astérisque (*) et point d'interrogation (?) prennent en charge les recherches floues, mais doivent apparaître au milieu ou à la fin d'un mot. Pour faire correspondre des champs se terminant par une chaîne spécifique, utilisez l'opérateur LIKE dans une instruction d'analyse.

    * | select * from website_log where request_uri like '%file-7'

    website_log est le nom du Logstore.

  • Calculez les statistiques d'accès par URI de requête.

    Utilisez la fonction regexp_extract pour extraire la partie fichier de request_uri, et la fonction count pour compter les accès par URI.

    * | SELECT regexp_extract(request_uri, '.*\/(file.*)', 1) file, count(*) as count group by file

    Par exemple, un résultat avec une valeur file de file-5 et un count de 17127 signifie que le fichier a été consulté 17 127 fois.

  • Interrogez les entrées de journal où request_uri contient %abc%.

    * | SELECT * where request_uri like '%/%abc/%%' escape '/'

    La requête renvoie l'entrée de journal correspondante. La valeur du champ request_uri est /request/path-1/file-92 %abc%qereqwr, dans laquelle la partie %abc% correspond à la recherche.

Exemples de journaux d'accès au site web

__tag__:__client_ip__:192.0.2.0
__tag__:__receive_time__:1609985755
__source__:198.51.100.0
__topic__:website_access_log
body_bytes_sent:4512
client_ip:198.51.100.10
host:example.com
http_host:example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; ja-jp) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:198.51.100.1
instance_id:i-02
instance_name:instance-01
network_type:vlan
owner_id:%abc%-01
referer:example.com
region:cn-shanghai
remote_addr:203.0.113.0
remote_user:neb
request_length:4103
request_method:POST
request_time:69
request_uri:/request/path-1/file-0
scheme:https
server_protocol:HTTP/2.0
slbid:slb-02
status:200
time_local:07/Jan/2021:02:15:53
upstream_addr:203.0.113.10
upstream_response_time:43
upstream_status:200
user_agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.33 (KHTML, like Gecko) Ubuntu/9.10 Chromium/13.0.752.0 Chrome/13.0.752.0 Safari/534.33
vip_addr:192.0.2.2
vpc_id:3db327b1****82df19818a72