KB 2803 : RÉCUPÉRER LE NOMBRE D’UTILISATEURS PASSANT LE PROXY OLFEO

Publié le 28 novembre 2023

Obtenir les informations d’utilisation de votre proxy telles que le nombre d’utilisateurs sur les 30 derniers jours et le nom de ceux-ci.

CONTEXTE

Il n’est pas possible d’obtenir le nombre d’utilisateurs étant passés par le proxy Olfeo sur une durée donnée directement dans la partie Statistiques d’olfeo. En effet une limite à 300 entités a été placée pour des raisons de performance.

Cette information peut néanmoins être obtenue simplement en interrogeant la base de données Elasticsearch qui abrite les logs de navigation d’olfeo.

ÉTAPES

Pour obtenir cette information, veuillez-vous rendre en ssh sur le proxy Olfeo (le maître si vous avez un cluster).

Une fois connecté, entrez dans l’environnement chrooté si vous êtes sur une machine virtuelle avec la commande:

chroot /opt/olfeo/chroot

Vous pouvez ensuite lancer la requête à Elasticsearch qui retournera le nombre d’utilisateurs uniques sur 30 jours présents dans la base données:

curl -d '{"size":0,"aggs":{"primary":{"terms":{"field":"user","size":1000000},"aggs":{"count":{"sum":{"field":"hits"}}}}},"query":{"bool":{"must":[{"range":{"timerange":{"lte":"now/d","gte":"now/d-30d"}}}]}}}' -H "Content-Type: application/json" -X POST "http://127.0.0.1:9200/url_*/_search" | python3 -c 'import json,sys;print("Nombre utilisateurs: ", len(json.load(sys.stdin)["aggregations"]["primary"]["buckets"]))'

Obtenir la liste des utilisateurs

Pour obtenir une liste détaillée des utilisateurs, lancez la commande suivante:

curl -H "Content-Type: application/json" -d '{"aggs":{"names": {"terms": {"field": "name.keyword", "size":"5000"}}}, "query":{"bool":{"must":[{"range":{"timerange":{"lte":"now/d","gte":"now/d-30d"}}}]}}}' 'http://127.0.0.1:9200/url_*/_search?pretty=true&size=0'  | python3 -c 'import json,sys;[print(e["key"]) for e in json.load(sys.stdin)["aggregations"]["names"]["buckets"]]'

Rediriger la liste des utilisateurs vers un fichier

Si vous souhaitez rediriger cette liste d’utilisateurs vers un fichier:

curl -H "Content-Type: application/json" -d '{"aggs":{"names": {"terms": {"field": "name.keyword", "size":"5000"}}}, "query":{"bool":{"must":[{"range":{"timerange":{"lte":"now/d","gte":"now/d-30d"}}}]}}}' 'http://127.0.0.1:9200/url_*/_search?pretty=true&size=0'  | python3 -c 'import json,sys;[print(e["key"]) for e in json.load(sys.stdin)["aggregations"]["names"]["buckets"]]' > /tmp/liste_utilisateurs.txt

Inspecter la liste des utilisateurs interactivement

Enfin pour inspecter cette liste interactivement tapez:

curl -H "Content-Type: application/json" -d '{"aggs":{"names": {"terms": {"field": "name.keyword", "size":"5000"}}}, "query":{"bool":{"must":[{"range":{"timerange":{"lte":"now/d","gte":"now/d-30d"}}}]}}}' 'http://127.0.0.1:9200/url_*/_search?pretty=true&size=0'  | python3 -c 'import json,sys;[print(e["key"]) for e in json.load(sys.stdin)["aggregations"]["names"]["buckets"]]' | less

VALIDATION

Vous pouvez ensuite obtenir des informations plus poussées (domaines visités, volume de navigation) sur un utilisateur donné via le moteur de statistiques de la Webadmin olfeo.