Haka-resurssirekisterin yhteyteen on toteutettu palvelu, joka kerää kotiorganisaatioilta tilastotietoa tunnistuslähteen suorittamien Haka-kirjautumisten määrästä. Haka-resurssirekisterissä on myös käyttöliittymä, jolla tilastotietoa pääsee kaavioiden avulla tarkastelemaan. Käyttöliittymän kaavioista pääsee pureutumaan syvemmälle kirjautumistapahtumien määriin kutakin tietoa klikkaamalla aina kuukauden, tunnistuslähteen tai palvelun tarkkuudella. Tilastotiedon tarkastelu vaatii Haka-kirjautumisen. Käyttöliittymä on osoitteessa https://rr.funet.fi/rr/stats.php
Tilastointi uudistettiin vuoden 2013 lopulla. Uudella menetelmällä kerättävät tiedot käsittävät kirjautumisten yhteismäärän sekä kirjautumisten jakaantumisen palvelukohtaisesti. Sellaista tietoa, josta pystyisi yksilöimään kirjautuneen käyttäjän, ei kerätä.
Hakan kirjautumistilastoja kerätään IdP-palvelimilta haettavien siirtotiedostojen avulla. Haka-operointitiimi lataa siirtotiedostot IdP-ylläpitäjien ilmoittamista https-osoitteista kerran kuussa.
1. Siirtotiedosto-osoitteen lisääminen Resurssirekisteriin
IdP-ylläpitäjä voi lisätä kotiorganisaationsa IdP:n tilastosiirtotiedostoja sisältävän kansion polun suoraan Resurssirekisteriin IdP:n tietoihin(Muokkaa --> Statistics-välilehti).
2. Tilastosiirtotiedoston luonti IdP:llä
CSC:n käyttämä tilastosiirtotiedosto pohjautuu Shibboleth-ohjelmiston yhteyteen toteutettuun lokianalyysityökaluun. Scriptin avulla voidaan lasketaan IdP:stä eri SP-palvelimille kohdistuneita kirjautumisia IdP:n audit-logeja hyödyntäen.
Tilastosiirtotiedostot tulee pitää jaossa siten, että operaattori pääsee lukemaan niitä https-yhteyden ylitse.
Hakan tilastosiirtotiedoston nimeämiskäytäntö IdP:n luomille tiedostoille on seuraava:
HakaStatistics_[vvvv-kk]_[IdP_hostname].txt esim. HakaStatistics_2013-10_idp.csc.fi.txt
Haka-operaattorin vaatima tilastosiirtotiedostomuoto on seuraava ('date' viittaa kuukauteen, jota tilastot koskevat):
IdPEntityId | [IdP EntityId] date | [yyyy-mm] logins | relyingPartyId ------------------------- [num of logins] | [SP EntityId 1] [num of logins] | [SP EntityId 2] [num of logins] | [SP EntityId.....n]
Esimerkki Hakan tilastosiirtotiedoston sisällöstä:
IdPEntityId | https://idp.csc.fi/idp/shibboleth date | 2013-08 logins | relyingPartyId ------------------------- 7890 | https://sui.csc.fi/shibboleth 456 | https://kotaplus.csc.fi 123 | https://aai.csc.fi
Scriptiä on muokattu hieman jotta se osuu RelyingPartyId:hen sekä käyttäjään ja msg_profile ei ole käytössä joten se osuu POST kenttään. muokatun scriptin saa tästä loganalysisCSC.py
Skriptiä voi käyttää testailla komentorivillä tyyliin alustasta riippuen:
# zgrep: Purkaa pakatut logitiedostot joiden prefix on idp_[edellisen kuukauden vuosi sekä kuukausi] # grep: Filtteröi pois kaikki rivit joilla ei ole kyseisen kuukauden aikaleimaa ja toinen grep ottaa huomioon vain POST rivit # cut: Tällä poistamme omassa ympäristössämme tulevat ylimääräiset aikaleimat joita kontitus aiheuttaa. LOCATION=/tmp;MONTHS=1;zgrep -a "Shibboleth-Audit" pod/logs/idp_$(date -d "$MONTHS month ago" "+%Y%m")*.tgz|grep $(date -d "$MONTHS month ago" "+%Y-%m")|grep "POST"|cut -b 119- > $LOCATION/tmp_audit.log # Tämä aloittaa logitiedoston tekemisen ja tuottaa kaksi ensimmäistä määrätyn muotoista riviä tiedostoon LOCATION=/tmp;MONTHS=1;echo -e "IdPEntityId | https://idp.csc.fi/idp/shibboleth\ndate | $(date -d "$MONTHS month ago" "+%Y-%m")" > $LOCATION/HakaStatistics_$(date -d "$MONTHS month ago" "+%Y-%m")_idp.csc.fi.txt; # Tämä ajaa loganalysis työkalun ensimmäisellä komennolla tuotettua tiedostoa vasten. LOCATION=/tmp;./loganalysisCSC.py -n $LOCATION/audit.log >> $LOCATION/HakaStatistics_$(date -d "$MONTHS month ago" "+%Y-%m")_idp.csc.fi.txt ## Huomaathan että jos scriptaat tai ajat tätä cronissa tulee sinun käyttää date komennossa \%Y- \%m muotoa (Escape).
Tarvitset siis absoluuttisen polun skriptille, idp-audit.logien sijainnille sekä tulosteelle. Huomaathan myös että tilastosiirtotiedoston tulee sijaita hakemistossa, josta tuo voidaan noutaa https-protokollaa käyttäen.
Lopuksi komento voidaan antaa vaikka cronin ajettavaksi kertaalleen jokaisen kuukauden ensimmäisenä päivänä.