TRACE-625-4SIg9haAh - ESUP

Download Report

Transcript TRACE-625-4SIg9haAh - ESUP

AGIMUS-NG en ~15 minutes
Concepts
ENT
cas-trace.log
TRACE-625-4SIg9haAh → [email protected]
L’ENT le renvoie vers
l’authentification CAS
L’utilisateur
COOKIE → TRACE-625-4SIg9haAh
Authentification
validée
accède à son
ENT pour la première fois
Le CAS va, en parallèle, écrire dans un
fichier de log la valeur du cookie
déposé dans le navigateur
du client et
cas-service.log
l’identité de l’utilisateur
DATE: 19/Mar/2015:15:26:53 +0100
IP: 212.198.XXX.X
ID:ficher
[email protected]
Le CAS va aussi alimenter un
qui
TICKET:
ST-1857-q4G4eWz
contient l’identitéLedeCAS
l’utilisateur
va utiliseretlele
SERVICE: http://ent.univ.fr/Login
service qui a demandé
l’authentification
référenciel
afin
de valider
USER-AGENT:
Mozilla/5.0 (Macint...
les informations utilisateur
Le CAS va déposer sur la navigateur du
Le cookie « TRACEME » est
client un cookie supplémentaire au TGC.
transmis vers l’ENT Ce cookie (« TRACEME ») est opaque et
valable pour tout le domaine (.univ.fr)
Une fois l’authentification
validée, retour dans l’ENT
COOKIE → TRACE-625-4SIg9haAh
REFERENTIEL UTILISATEURS
apache-esup.log
DATE:19/Mar/2015:15:26:54
L’ENT+0100
ou le frontal (apache) va pouvoir écrire
IP: 212.198.XXX.X
dans un fichier les actions de l’utilisateur. Le
URI: /Login?ticket=ST-1857-q4G4eWz
cookie (« TRACEME ») positionné par le CAS
REFERER: https://www.google.fr/?gws_rd=ssl#q=ent
sera présent dans les lignes de logs
USER-AGENT: Mozilla/5.0 (Macint..
TRACE: TRACE-625-4SIg9haAh
ENT
Le cookie « TRACEME » est retransmis
vers l’ENT à chaque requête
L’utilisateur accède à son
ENT pour un autre service L’ENT ou le frontal (apache) va pouvoir écrire
dans un fichier toutes les actions de
(« accès LMS »)
l’utilisateur
COOKIE → TRACE-625-4SIg9haAh
apache-esup.log
COOKIE → TRACE-625-4SIg9haAh
DATE:19/Mar/2015:15:39:10 +0100
+0100
IP:DATE:19/Mar/2015:15:39:10
212.198.XXX.X
DATE:19/Mar/2015:15:39:10
+0100
IP:/p/mon-lms/max
212.198.XXX.X
URI:
IP:/p/mon-lms/max
212.198.XXX.X
URI:
REFERER:
https://ent.univ.fr/Login
URI: /p/mon-lms/max
REFERER:
USER-AGENT:https://ent.univ.fr/Login
Mozilla/5.0 (Macint..
REFERER: https://ent.univ.fr/Login
USER-AGENT:
Mozilla/5.0 (Macint..
TRACE: TRACE-625-4SIg9haAh
USER-AGENT:
Mozilla/5.0 (Macint..
TRACE: TRACE-625-4SIg9haAh
TRACE: TRACE-625-4SIg9haAh
REFERENTIEL UTILISATEURS
LMS
Le LMS renvoie vers
l’authentification CASL’authentification de
l’utilisateur est déjà valide
Le cookie TRACEME est transmis
au LMS
COOKIE → TRACE-625-4SIg9haAh
Une fois l’authentification
L’utilisateur accède
validé,
à son
retour
LMS
dans
pour
le LMS
la première fois
COOKIE → TRACE-625-4SIg9haAh
apache-moodle.log
DATE:19/Mar/2015:15:29:11 +0100
IP: 212.198.XXX.X
URI: /login.php?ticket= ST-1859-r7P9sKw
REFERER: https://ent.univ.fr/
USER-AGENT: Mozilla/5.0 (Macint..
TRACE: TRACE-625-4SIg9haAh
Le CAS va ajouter une ligne
d’accès au service LMS dans
son log
cas-service.log
DATE: 19/Mar/2015:15:29:10 +0100
IP: 212.198.XXX.X
ID: [email protected]
TICKET: ST-1859-r7P9sKw
SERVICE: http://moodle.univ.fr/login.php
USER-AGENT: Mozilla/5.0 (Macint...
REFERENTIEL UTILISATEURS
AUTRES
Votre
application
L’APPS renvoie vers
l’authentification CASL’authentification de
l’utilisateur est déjà valide
Le cookie TRACEME est transmis
à l’APPS
COOKIE → TRACE-625-4SIg9haAh
L’utilisateur accède dans
Une fois l’authentification validé,
une APPS pour la
retour dans une APPS
première fois
COOKIE → TRACE-625-4SIg9haAh
apache-apps.log
DATE:19/Mar/2015:15:39:10 +0100
IP: 212.198.XXX.X
URI: /entree.php?ticket= ST-1862-r9M3tQx
REFERER: https://ent.univ.fr/
USER-AGENT: Mozilla/5.0 (Macint..
TRACE: TRACE-625-4SIg9haAh
Le CAS va ajouter une ligne
d’accès au service APPS dans
son log
cas-service.log
DATE: 19/Mar/2015:15:39:09 +0100
IP: 212.198.XXX.X
ID: [email protected]
TICKET: ST-1862-r9M3tQx
SERVICE: http://apps.univ.fr/entree.php
USER-AGENT: Mozilla/5.0 (Macint...
REFERENTIEL UTILISATEURS
Et maintenant
cas-trace.log
cas-service.log
apache-esup.log
apache-moodle.log
+
=
REFERENTIEL UTILISATEURS
apache-apps.log
apache-apps.log
apache-apps.log
apache-apps.log
Etape 1 : cas trace
cas-trace.log
TRACE-625-4SIg9haAh → [email protected]
Traitement du fichier cas-trace.log
par LogStash
Découpe et injecte dans Elasticsearch
LogStash
Enregistrement dans
Elasticsearch
index : trace
{
"_type": "trace",
"cookie_id": "TRACE-625-4SIg9haAh ",
"ldap_uid": "[email protected]"
}
Elasticsearch
Etape 2 : ldap
REFERENTIEL UTILISATEURS
[email protected]
eduPersonPrimaryAffiliation=student
supannEntiteAffectation=FEA--, FEC-supannEtuInscription= [annee=2015][cur={SUPANN}M1][dip={VDI}XX-X][etape={VET}YY-Y]
attributMaison=ET
Extraction d’information depuis le ldap
par LogStash
Formate et injecte dans Elasticsearch
LogStash
Enregistrement dans
Elasticsearch
index : ldap
{
Elasticsearch
"_type": "ldap",
"uid": [ "[email protected]" ],
"eduPersonPrimaryAffiliation": [ "student" ],
"supannEntiteAffectation": [ "FEA--", "FEC--" ],
"supannEtuInscription": [ " [annee=2015][cur={…
"attributMaison= ": [ "ET" ],
}
Etape 3 : apache esup
apache-esup.log
DATE:19/Mar/2015:15:39:45 +0100
IP: 212.198.XXX.X
DATE:19/Mar/2015:15:39:29
+0100
URI: /p/lms-moodle/max
IP:
212.198.XXX.X
DATE:19/Mar/2015:15:39:17 +0100
https://ent.univ.fr/...
URI:REFERER:
/p/esup-portlet-annuaire-desktop/max
IP: 212.198.XXX.X
DATE:19/Mar/2015:15:39:10
+0100 (Macint..
USER-AGENT:
Mozilla/5.0
https://ent.univ.fr/...
URI:REFERER:
/p/iframe-planning-etu/max
IP: 212.198.XXX.X
TRACE:
TRACE-625-4SIg9haAh
USER-AGENT:
Mozilla/5.0 (Macint..
REFERER:
https://ent.univ.fr/...
URI: /p/zimbra-etud/max
TRACE: TRACE-625-4SIg9haAh
USER-AGENT:
Mozilla/5.0 (Macint..
REFERER:
https://ent.univ.fr/Login
TRACE: TRACE-625-4SIg9haAh
USER-AGENT:
Mozilla/5.0 (Macint..
TRACE: TRACE-625-4SIg9haAh
1 - Découpage des enregistrements
2 - Enrichissement « useragent »
3 - Enrichissement « geoip »
Mozilla/5.0 (Linux; U; Android 4.4.4; … →
4 -Android
Transformation
• os:
4.4.4 « trace »
212.198.XXX.X →
• os_name:
Android « ldap »
5 - Enrichissement
• Latitude:
6.178300000000007
TRACE-625-4SIg9haAh
→
• device: c6603
[email protected]
→48.66210000000001
•• 6 -Longitude:
Transformation
« anonymize »
[email protected]
• uid:
browser:
chrome mobile
•
eduPersonPrimaryAffiliation:
student
{
"_type": "esup4",
"clientip": "212.198.XXX.X",
"request": "/p/lms-moodle/max",
Traitement
du fichier apache-esup.log
"referer":
"https://ent.univ.fr/p/intranet/max",
"os": "Android 4.4.4", par LogStash
"os_name": "Android",
"device": "c6603",
"browser": "chrome mobile"
"geoip": { "location": [ 6.178, 48.662 ] },
"uid": "b4b4fab3b7ca5b4daa9e8ad66fea26f2",
"attributMaison": [ "ET" ],
"attributMaisonRead": [ "[ET] Etudiants inscrits" ],
"eduPersonPrimaryAffiliation": [ "student" ],
"primaryAffiliationRead": [ "étudiant" ],
"supannEntiteAffectation": [ "FEA--", "FEC--" ],
"supannEntiteAffectationRead": [
"[FEA] 1ère année de médecine",
"[FEC] PACES"
],
"anneeInscription": "2015"
}
LogStash
•
supannEntiteAffectation: FEA--, FEC—
•
attributMaison : ET
[email protected]
→ [annee=2015][cur={…
•
supannEtuInscription:
•
attributMaisonRead:
[ET] Etudiants inscrits
• b4b4fab3b7ca5b4daa9e8ad66fea26f2
•
primaryAffiliationRead: étudiant
•
anneeInscription: 2015
•
supannEntiteAffectationRead:
•
[FEA] 1ère année de médecine
•
[FEC] PACES
index : trace
index : ldap { {
"type":
"_type":
"trace",
« ldap« ,
index : logstash-YYYY.MM.DD
"cookie_id":
"uid": [ "[email protected]"
"TRACE-625-4SIg9haAh
],
",
type
:
esup4
"ldap_uid":
"eduPersonPrimaryAffiliation":
"[email protected]" [ "student" ],
Elasticsearch
} "supannEntiteAffectation": [ "FEA--", "FEC--" ],
"supannEtuInscription": [ " [annee=2015][cur={…
"attributMaison= ": [ "ET" ],
}
Etape X : autres
XXXXX.log
Possibilité d’ajouter son fichier
de log et son type dans
Elasticsearch
{
"_type": "casservice",
"clientip": "212.198.XXX.X",
"service": {
"request": "https://mail.etu.univ.fr/p_etu.jsp",
"proto": "https",
{
"host": "mail.etu.univ.fr",
"_type": "moodle",
LogStash
"uripath": "/p_etu.jsp"
"clientip": "212.198.XXX.X",
},
"request":
"lms.univ.fr/course/search.php?search=fouille",
"os": "Android
4.4.4",
"referrer":
"lms.univ.fr/course/index.php",
"os_name":
"os":
"Android"Android",
4.4.4",
"device": "c6603",
"os_name":
"Android",
"browser":
"chrome mobile"
"device":
"c6603",
"geoip": {"chrome
"location":
[ 6.178, 48.662 ] },
"browser":
mobile"
"uid": "b4b4fab3b7ca5b4daa9e8ad66fea26f2",
"geoip":
{ "location": [ 6.178, 48.662 ] },
"attributMaison":
[ "ET" ],
"uid":
"b4b4fab3b7ca5b4daa9e8ad66fea26f2",
"attributMaisonRead":
"attributMaison":
[ "ET" ],[ "[ET] Etudiants inscrits" ],
"eduPersonPrimaryAffiliation":
[ "student"
], ],
"attributMaisonRead":
[ "[ET] Etudiants
inscrits"
Type : Moodle
"primaryAffiliationRead": [ "étudiant"
], ],
"eduPersonPrimaryAffiliation":
[ "student"
"supannEntiteAffectation":
[ "FEA--",], "FEC--" ],
"primaryAffiliationRead":
[ "étudiant"
Type : casservice
Index : logstash-YYYY.MM.DD
"supannEntiteAffectationRead":
[ "FEC--" ],
"supannEntiteAffectation":
[ "FEA--",
"[FEA] 1ère année de médecine",
"supannEntiteAffectationRead":
[
type : esup4
"[FEC]
PACES"
"[FEA]
1ère
année de médecine",
],"[FEC] PACES"
type : moodle
], "anneeInscription": "2015"
type : casservice
}
"anneeInscription":
"2015"
Elasticsearch
}
Rendu la base
Résultat
{
"hits": {
Requêtes
Elasticsearch
"total": 59081020
},
"aggregations":
{
GET logstash-*
/esup4/_search
"2": {
{
"buckets": [
"query": {
{
"filtered": {
"key": "Windows 7",
"query": {
22158014
"query_string":"doc_count":
{
},
"query": "_type:esup4"
{
}
"key": "Mac OS X",
}
"doc_count": 7512285
}
},
},
{
"aggs": {
"key": "Android",
"2": {
"doc_count": 4758202
"terms": {
},
"field": "os_name.raw",
{
"size": 10,
"key": "iOS",
"order": {
"doc_count": 4643627
"_count": "desc
}, "
}
{
}
"key": "Windows 8",
}
"doc_count": 1549201
},
},
"size":0
{
}
"key": "Windows XP",
"doc_count": 1464605
},
index : logstash-YYYY.MM.DD
type : esup4Un
index : logstash-YYYY.MM.DD
…
•
•
•
•
•
•
Trouve dans tous les index « logstash-* »
Tous les types « esup4 »
Regroupe les résultats par l’attribut « os_name »
Trier les résultats par ordre décroissant
Et ne garde que les 10 premiers résultats
index par jour
index : logstash-YYYY.MM.DD type : moodle
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
type : casservice
index : logstash-YYYY.MM.DD
Elasticsearch
59 M documents qui correspondent
• Windows 7: 22 M
• Mac OS : 7,5 M
• Android : 4,7 M
• iOS : 4,6 M
• Windows 8 : 1,5 M
• …
Chaque index regroupe les
informations (type) de l’ENT, du LMS et
des services utilisant le CAS
Rendu Kibana visualisation
La création de "visualization" kibana
se fait grâce à une interface graphique
permettant de réaliser la requête
Elasticsearch et ses agrégations
Kibana
1.
2.
3.
4.
5.
6.
7.
« Create a new visualization »
Type de rendu « Pie Chart »
Index : « logstash-* »
Découper les parts : « Split Slices »
« Aggregation » : « Terms »
« Field » pour faire l’agrégation : « os_name.raw »
Combien en garder « top » : 60
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
Elasticsearch
Créateurs de graphique
Rendu Kibana visualisation
Kibana
Kibana traduit en requête Elasticsearch
Requêtes
GET logstash-*/esup4/_search
{
"query": { … },
"aggs": {
"2": {
"terms": {
"field": "os_name.raw",
…
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
Elasticsearch
Créateurs de graphique
Rendu Kibana visualisation
Résultat
Kibana
Kibana traduit le résultat en graphique
{
"hits": {
"total": 59081020
},
"aggregations": {
"2": {
"buckets": [
{
"key": "Windows 7",
"doc_count": 22158014
},
{
"key": "Mac OS X",
"doc_count": 7512285
},
…
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
index : logstash-YYYY.MM.DD
Elasticsearch
Créateurs de graphique
Rendu Kibana
Kibana peut aussi agréger plusieurs
visuablisations dans un « dashboard »
Kibana peut créer plusieurs types de
rendu
Merci
Pour participer ou poser vos questions
[email protected]
https://www.esup-portail.org/wiki/x/DQCfFg
https://github.com/EsupPortail/agimus-ng
https://trello.com/b/jp1aRH9q
https://listes.esup-portail.org/sympa/info/esup-utilisateurs