KB 2803 : RÉCUPÉRER LE NOMBRE D’UTILISATEURS PASSANT LE PROXY OLFEO
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.