|
|
|
## Sisällysluettelo
|
|
|
|
|
|
|
|
## Johdanto
|
|
|
|
Tässä raportissa esittelemme projektissa läpi käytyjä vaiheita, valittuja toteutuksia, opittuja asioita sekä lopputuloksen. Tässä projektissa olivat mukana Jani Purujoki ja Ella Viitasuo. Projektin tavoitteena oli tuottaa GitLab-palvelun aktiivisuuden seurantaan tuottava yhdistelmä, jota voitaisiin mahdollisesti ylläpitää itse JAMKissa GDPR mukaisesti. Raportissa esitellään valmiiksi saatu prototyyppi sekä sen tuotantovaiheet.
|
|
|
|
|
|
|
|
## Tiivistelmä
|
|
|
|
|
|
|
|
## Tehtävänanto
|
|
|
|
|
|
|
|
Projekti tehtiin JAMKin opettaja Marko Rintamäen pyynnöstä. Projektissa tavoitteena oli tutkia, voiko JAMKin kursseilla käytössä olevasta GitLab-palvelusta seurata käyttäjien aktiivisuutta ja soveltaa sitä oppimisanalytiikkaan.
|
|
|
|
|
|
|
|
Palvelusta halutaan saada dataa käyttäjien aktiivisuudesta, tiettyjen projektien tapahtumista, sekä niissä vietetystä ajasta. Näin esimerkiksi kurssi-sivujen ollessa GitLab-projektin wikissä-voitaisiin arvioida kurssin kiinnostusta, sekä oppilaiden viettämää aikaa kurssi-sivuilla. Myös kurssin mahdollista kiinnostusta koulun ulkopuolelle voitaisiin arvioida. Oppimisanalytiikan seuranta on JAMKille melko ajankohtaista, sillä ensi vuonna Tieto- ja viestintätekniikan opintoja voidaan suorittaa myö monimuoto-toteutuksena. Tällöin opettaja ei välttämättä nää opiskelijoita, eikä välttämättä huomaa yhtä helposti, jos joku opsikelija on jäämässä jälkeen opinnoistaan. Oppimisanalytiikan avulla voitaisiin “auttaa opettajia auttamaan oppilaita” ja huomaamaan ehkä jälkeen jääviä opsikelijoita ja potkia heitä liikkeelle. Toisaalta kurssien aktiivisuuden seuranta, voisi myös auttaa kurssin järjestämisen kehittämisessä, mikä herätti aktiivisuutta kurssilla ja mitä voitaisiin seuraavalla toteutukselle parantaa.
|
|
|
|
|
|
|
|
Projektin toimeksiantaja esitteli meille muutamia erilaisia työkaluja ja alustoja, joita projektissa voitaisiin testata. Tarkemmin aluksi ajatelluista toteutuksista voit lukea [vaatimusmäärittelyn Arkkitehtuuri ] (Vaatimusmäärittely git) -kohdasta. Projektin tehtävänannon takia tutuistumme myös molemmat oppimisanalytiikan periaatteisiin sekä miten oppimisympäristöistä saatua dataa voidaan soveltaa oppimisanalytiikkaan.
|
|
|
|
|
|
|
|
|
|
|
### Käytetyt alustat
|
|
### Käytetyt alustat
|
|
|
|
|
|
|
|
Projektissa käytettiin palveluiden alustana: Google Cloudia ja VirtualBox virtuaalikoneita.
|
|
Projektissa käytettiin palveluiden alustana: Google Cloudia ja VirtualBox virtuaalikoneita.
|
| ... | @@ -10,6 +26,79 @@ Projektissa käytettiin palveluiden alustana: Google Cloudia ja VirtualBox virtu |
... | @@ -10,6 +26,79 @@ Projektissa käytettiin palveluiden alustana: Google Cloudia ja VirtualBox virtu |
|
|
|COMP4|VirtualBox|1 CPU|8GB|Ubuntu Desktop 16.04|
|
|
|COMP4|VirtualBox|1 CPU|8GB|Ubuntu Desktop 16.04|
|
|
|
|COMP5|VirtualBox|1 CPU|8GB|Windows 10 Enterprise, Versio: 1803|
|
|
|COMP5|VirtualBox|1 CPU|8GB|Windows 10 Enterprise, Versio: 1803|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Käytetyt palvelut
|
|
|
|
|
|
|
|
#### Tutkitut palvelut
|
|
|
|
|
|
|
|
Tässä projektissa tutkimme useita erilaisia palveluita:
|
|
|
|
|
|
|
|
* Elasticsearch
|
|
|
|
* Filebeat
|
|
|
|
* GitLab
|
|
|
|
* Google Analytics
|
|
|
|
* Google Cloud hosted MySQL
|
|
|
|
* Graylog
|
|
|
|
* Kibana
|
|
|
|
* Logstash
|
|
|
|
* Matomo/Piwik
|
|
|
|
* Maria database/ MySQL
|
|
|
|
* Power BI
|
|
|
|
* PostgreSQL
|
|
|
|
* Prometheus
|
|
|
|
|
|
|
|
Sekä palveluiden ylläpitämiseen liittyviä palveluita:
|
|
|
|
|
|
|
|
* Apache2
|
|
|
|
* Docker
|
|
|
|
* Docker Compose
|
|
|
|
* Google Cloud
|
|
|
|
* Nginx
|
|
|
|
* MySQL Workbench
|
|
|
|
* PgAdmin
|
|
|
|
* Portainer
|
|
|
|
|
|
|
|
#### Toteutetut palvelu-yhdistelmät
|
|
|
|
|
|
|
|
Lopullisia toteutuksia meillä on 2 erilaista:
|
|
|
|
|
|
|
|
GitLab logien analysointi BELK-stackillä, joissa meillä oli asennettu seuraavat palvelut:
|
|
|
|
|
|
|
|
|
|
|
|
| Versio | Palvelu | tehtävä | Asennustapa | Kone ID |
|
|
|
|
|:-:|:-:|:-:|:-:|:-:|
|
|
|
|
| 6.2.4 | Filebeat | Logien lähettäminen | localhost | COMP4 |
|
|
|
|
| 10.8.4 -ee | GitLab | Oppimisympäristö |localhost/ Docker Compose | COMP4 |
|
|
|
|
| 6.2.4 | Elasticsearch| Logien varastointi | localhost | COMP4|
|
|
|
|
| 6.2.4 | Kibana | Logien visualisointi | localhost | COMP4 |
|
|
|
|
| 6.2.4 | Logstash | Logien analysointi | localhost | COMP4 |
|
|
|
|
|
|
|
|
Filebeat:
|
|
|
|
|
|
|
|
Filebeat on kevyt logien lähettämiseen tarkoitettu palvelu. Se on yhdistetty ELK-stackkiin ja on yksi monesta eri BEATS-vaihtoehdota. Käytimme tässä yhdistelmässä Filebeatia lähettämään tietystä logi-tiedostosta logidataa Logtashiin.
|
|
|
|
|
|
|
|
GitLab:
|
|
|
|
|
|
|
|
GitLab on projektissa tarkkailemamme oppimisympäristö. GitLab on suunniteltu pääasiassa ohjelmistokehitys-projekteihin. GitLab palvelussa voidaan visualisoida, priorisoida sekä hallinnoida projektia sekä seurata sen edistymistä. GitLab sisältää myös ylläpitäjällä erilaisia seuranta-mahdollisuuksia admin-arealla. GitLab on myös open-source, joten sitä voidaan muokata. Saimme asennettua GitLabin helposti myös kontista, mutta sen asentaminen konttiin ei ole pakollista ja testasimme molempia vaihtoehtoja, niin localhost kuin docker asennusta.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kibana:
|
|
|
|
|
|
|
|
Kibana on datan visualisointityökalu. Tässä projektissa käytimme Kibanaa visualisoiman Elasticsearchilta saamaansa dataa. Datan avulla pystyimme visualisoimaan erilaisia graafeja, joista data on helposti luettavissa. Kibanan graafejen piirtämisessä oli aluksi opettelemista, mutta osoittautui lopulta helpommaksi kuin muiden visualisointityökalujen käyttö, joita kokeilimme.
|
|
|
|
|
|
|
|
Logstash:
|
|
|
|
|
|
|
|
Logstash on logien parsimiseen tarkoitettu palvelu. Logstash toimii tässä tapauksessa logien parsimiseen sekä se lähettää logidataa elasticsearchille, joka varastoi sen. Logstashin konfiguroiminen tuotti eniten haasteita projektissa ja sen ajaminen kontista osoittautui yllättävän vaikeaksi.
|
|
|
|
|
|
|
|

|
|
|
|
Kuva: ELK-satck + BEATS havainnollistaminen Lähde: https://www.elastic.co/guide/en/beats/libbeat/current/beats-reference.html
|
|
|
|
|
|
|
|
##### Arkkitehtuurin rakenne
|
|
|
|
|
|
|
|

|
|
|
|
Kuva: ELK-stack rakenne
|
|
|
|
|
|
|
### Matomo + Google Cloud
|
|
### Matomo + Google Cloud
|
|
|
|
|
|
|
|
Matomo pystytettiin Google Cloudiin käyttäen konetta COMP3. Helpottaaksemme myöhemmin Power BI:n yhdistämistä Matomon databaseen pystytettiin pilveen erillinen Cloud SQL, jota Matomo käytti (COMP1).
|
|
Matomo pystytettiin Google Cloudiin käyttäen konetta COMP3. Helpottaaksemme myöhemmin Power BI:n yhdistämistä Matomon databaseen pystytettiin pilveen erillinen Cloud SQL, jota Matomo käytti (COMP1).
|
| ... | |
... | |
| ... | | ... | |