Jeg har fået til opgave at tilføje geo tracking i en web app vi er igang med. Det involverer 2 opgaver:
- Indsamle brugernes position (længde- og breddegrad)
- Søgefunktion der viser en liste over brugere inden for en angiven radius
Den første er nem nok… vi har jo HTML5’s geolocation API.
Den tunge del er selve søgefunktionen. Her er der brug for software der er optimeret til opgaven, og jeg er i den forbindelse blevet anbefalet Elasticsearch, som jeg i første omgang eksperimenterer med, lokalt på min laptop sammen med Kibana og Sense:
Elasticsearch: Søge- og indekseringsmaskine baseret på Lucene
Kibana: Analysering- og visualiseringsplatform designet til Elasticsearch
Sense: En interaktiv konsol der installeres som plugin i Kibana og bruges til at sende forespørgsler til Elasticsearch fra en browser
Indholdsfortegnelse NoteJeg var uopmærksom, og fik installeret Elasticsearch version 2 i stedet for version 5. Følg disse guides for installation af version 5: Elasticsearch version 5 installation via rpm Kibana version 5 installation via rpm Bemærk også at Sense er inkluderet i Kibana version 5 og således ikke skal installeres separat. Du åbner konsollen ved at gå til “Dev Tools” i Kibanas hovedmenu. Lige bortset fra det, er vejledningen god nok 🙂 |
Installation på Fedora 23
Elasticsearch 2
1 |
# sudo su |
… ja, jeg er doven, jeg gider ikke skrive sudo foran hver eneste kommando, så jeg starter med en ‘sudo su’ 😉
Jeg installerede i første omgang Elasticsearch fra Fedoras eget pakkesystem, men den version der ligger her, viste sig at være for gammel til Kibana. Derfor er det bedre at hente den fra Elasticsearch:
1 |
# rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch |
Opret .repo filen /etc/yum.repos.d/elasticsearch.repo:
1 2 3 4 5 6 |
[elasticsearch] name=Elasticsearch repository baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1 |
Installer Elasticsearch… bemærk --enablerepo
parameteren der sikrer at vi henter fra Elasticsearch og ikke Fedoras eget pakkesystem:
1 |
# dnf --enablerepo=elasticsearch install elasticsearch |
Genstart systemd dæmonen og tilføj ES til autostart
1 2 |
# systemctl daemon-reload # systemctl enable elasticsearch.service |
Kibana 4
Kibana giver mulighed for visuel præsentation og realtidsanalyse af dine elastic data.
Hent og installer Kibana:
1 2 |
# dnf install https://downloads.ulyaoth.net/rpm/ulyaoth-latest.fedora.noarch.rpm # dnf install ulyaoth-kibana |
Tilføj Kibana til autostart
1 |
# systemctl enable kibana.service |
Sense
Bemærk: I version 5 af Kibana er Sense inkluderet og tilgås via “Dev Tools” i hovedmenuen, og nedenstående kan i så fald springes over.
Sense er en konsol hvor du manuelt kan hente, vise, tilføje og redigere data med ES kommandoer
1 |
# /opt/kibana/bin/kibana plugin --install elastic/sense |
Start Kibana og Elasticsearch
1 2 |
# systemctl start elasticsearch.service # systemctl start kibana.service |
Tjek evt. at der nu lyttes på port 9200/9300 (ES) og 5601 (Kibana)
1 |
# netstat -tnlp |
Nu kan du åbne er browser og gå til http://localhost:5601
For at bruge Sense, skal du gå til http://localhost:5601/app/sense