Elasticsearch
Men først skal du sikre dig at java er installeret og har en version der passer med din Elasticsearch version. Det kan du se i skemaet her: https://www.elastic.co/support/matrix#matrix_jvm
Hvis du ikke har java, kan du installere OpenJDK:
1 |
# apt install openjdk-11-jre-headless |
Tjek nu din version og at JAVA_HOME indeholder stien til java:
1 2 |
# java -version # echo $JAVA_HOME |
Hvis JAVA_HOME ikke er sat:
1 2 3 |
/etc/environment JAVA_HOME = "/usr/lib/jvm/java-11-openjdk-amd64" |
Derefter:
1 |
# source /etc/environment |
Hent og registrer Elasticsearch eget repository (bemærk 7.x
i stien. Erstat med 6.x eller 8.x alt efter hvilken version du ønsker)
1 2 |
# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - # add-apt-repository "deb https://artifacts.elastic.co/packages/7.x/apt stable main" |
Installer Elasticsearch:
1 |
# apt-get install elasticsearch |
Åben konfigurationsfilen og sæt den ip adresse som elasticsearch skal lytte på. Elasticsearch skal i mit tilfælde ikke kunne nås udefra og derfor lytter den på det interne netværk.
Derudover skal du fortælle ES om den skal køre som cluster eller single-node. Hvis du ikke får gjort det, får du denne fejl:
ERROR: [1] bootstrap checks failed
ERROR: [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_>
ERROR: Elasticsearch did not exit normally – check the logs at /var/log/elasticsearch/elasticsearch.log
1 2 3 4 5 6 7 |
/etc/elasticsearch/elasticsearch.yml: # Lyt kun på det interne netværk network.host: 10.0.0.51 # Kør i single-node mode, dvs. ikke som cluster discovery.type: single-node |
Fortæl systemet at Elasticsearch skal startes automatisk efter boot:
1 |
# systemctl enable elasticsearch.service |
Start Elasticsearch
1 |
# service elasticsearch start |
Tjek at den lytter på de porte og det interface, der er angivet i konfigurationsfilen:
1 |
# netstat -tulpn |
Du kan også tjekke status med:
1 |
# service elasticsearch status |
Se versionen med (erstat med den ip du angav i elasticsearch.yml):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# curl -XGET '10.0.0.51:9200' { "name" : "dev", "cluster_name" : "elasticsearch", "cluster_uuid" : "5inKzc03TAqUrhZ8gN8uFQ", "version" : { "number" : "7.9.3", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868", "build_date" : "2020-10-16T10:36:16.141335Z", "build_snapshot" : false, "lucene_version" : "8.6.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } |
Kibana
Kibana er en webbaseret grafisk brugerflade til administration af Elasticsearch. Det er vigtigt at Kibana har samme versionsnummer som den Elasticsearch den skal bruges til, men det sker helt automatisk når du henter fra samme repository.
1 |
# apt install kibana |
Konfigurer Kibana:
I elasticsearch.hosts
skal du angive den ip og port som Elasticsearch blev konfigureret med:
1 2 3 4 5 6 |
/etc/kibana/kibana.yml server.name: kibana.eksempel.com server.port: 5601 server.host: "localhost" elasticsearch.hosts: ["http://10.0.0.51:9200"] |
Herefter skal adgangen til Kibana konfigureres i din webserver. I dette tilfælde Apache 2.4 med SSL (Let’s Encrypt). Nedenstående forudsætter at både Kibana og Apache er på samme maskine. Alternativt skal du ændre “localhost” i Kibanas konfiguration til en ip adresse, og benytte denne adresse i nedenstående i stedet for 127.0.0.1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<VirtualHost *:443> Servername kibana.eksempel.com ErrorLog "|/usr/bin/rotatelogs -l /var/log/sti/til/kibana.eksempel.com/error.%Y.%m.%d 86400" CustomLog "|/usr/bin/rotatelogs -l /var/log/sti/til/kibana.eksempel.com/access.%Y.%m.%d 86400" combined <Proxy *> AuthType Basic AuthName "Kibana - autentification" AuthUserFile "/sti/til/.htpasswdAdmin" Require valid-user </Proxy> ProxyRequests Off ProxyPass / http://127.0.0.1:5601/ ProxyPassReverse / http://127.0.0.1:5601/ SSLEngine on SSLCertificateFile /etc/ssl/custom/kibana.eksempel.com/fullchain.pem SSLCertificateKeyFile /etc/ssl/custom/kibana.eksempel.com/privkey.pem Include /etc/ssl/custom/options-apache-ssl.conf </VirtualHost> |
Start Kibana automatisk efter boot af maskinen:
1 |
# systemctl enable kibana.service |
Derefter kan du starte Kibana:
1 |
# service kibana start |
Giv den lige et par sekunder, så burde du kunne se den lytte på 5601, eller en anden port du har valgt:
1 2 |
# netstat -tulpn tcp 0 0 127.0.0.1:5601 0.0.0.0:* LISTEN 142267/node |
Husk at åbne port 5601 i din firewall så Apache har lov til at tale med den port Kibana lytter på. Jeg benytter UFW (Uncomplicated FireWall). Den angivne ip adresse i nedenstående er den ip på det interne netværk Apache kommer fra. Det kan være anderledes i dit setup:
1 |
ufw allow from 10.0.0.51 to any port 5601 proto tcp |