Kategorien
Amazon AWS Elasticsearch

ELK Stack auf Amazon EC2 installieren

Um den ELK Stack, bestehend aus:

  • Logstash
  • Elasticsearch
  • Kibana

auf Amazon AWS zum Testen auf einer einzigen Amazon EC2 Instanz zu installieren, kann man wie folgt vorgehen:

Man fährt eine EC2 Instanz hoch, die nicht zu klein ist, was den Ram anbelangt, mindestens eine m4.large mit 8GB Ram und 2 Prozessoren, da Elasticsearch schon gehobene Ansprüche an die Speicher stellt und auch Logstash sehr ressourcenhungrig ist. Als Betriebsystem habe ich Ubuntu-16 gewählt (ami-1e339e71).

Dann kann man eine Elastic-IP auf die Instanz legen, damit man die Instanzen unkompliziert austauschen kann und man trotzdem die IP weiter behält.

Security Groups

Die Security Groups müssen noch angepasst werden:

Inbound:

SSH, Port 22, IP Range: 0.0.0.0/0 für die SSH Verbindung
Custom TCP Rule, Port 5601, IP Range: 0.0.0.0/0 für Kibana

Outbound:

All traffic, All, All, 0.0.0.0/0, alles kann, nichts muss :)

Mit Hilfe das Public-Keys kann man dann auf die Instanz per SSH  zugreifen auf der Konsole und mit der Administration fortfahren:

ssh -i /path/to/public/key.pem ubuntu@elastic_ip

Installierte Packete auf den neusten Stand bringen

sudo apt-get update
sudo apt-get upgrade

Java 8 installieren

sudo apt-get install openjdk-8-jre-headless

Die Installation kann überprüft werden mit dem Befehl:

java -version

Das Ergebnis sollte mindestens eine 1.8er Version enthalten

openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

Elasticsearch Installation mit Debian Packages

Elasticsearch Public Keys herunterladen

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Repository Definition herunterladen

/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Elasticsearch installieren:

sudo apt-get update && sudo apt-get install elasticsearch

Elasticsearch Daemon automatisch beim Reboot starten:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Service starten im laufenden Betrieb:

sudo systemctl start elasticsearch.service

Damit ist Elasticsearch erfolgreich installiert und ist defaultmäßig nur unter localhost ereichbar. Mit curl kann die Installation verifiziert werden:

curl -XGET 'localhost:9200/?pretty'

Ergebnis:

{
  "name" : "JIqSz-J",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "tRTvEU5iTFOtVe7asptmKg",
  "version" : {
    "number" : "5.6.1",
    "build_hash" : "667b497",
    "build_date" : "2017-09-14T19:22:05.189Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

Kibana Installation

Kibana kann ganz einfach installiert werden mit:

sudo apt-get install kibana

Autostart beim Rebooten:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service

Service starten:

sudo systemctl start kibana.service

Jetzt ist Kibana über localhost erreichbar:

curl -XGET 'localhost:5601/status'

Liefert eine lange HTML Ausgabe.

Dann muss Kibana nauf eine IP Adresse lauschen (die private IP Adresse der Instanz)

sudo vi /etc/kibana/kibana.yml

Dort den Eintrag auskommentieren und die private IP ergänzen:

server.host: "172.XX.XX.XXX"

Neustrarten des Daemons:

sudo systemctl restart kibana.service

Und jetzt sollte im Browser Kibana erreichbar sein:

http://elastic_ip:5601/

Bei erfolgreicher Installation kann man Kibana im Browser bewundern:

Kibana_hello_world

Logstash installieren

sudo apt-get install logstash

Startend es Daemons:

sudo systemctl start logstash.service

Securing ELK mit X-Pack

Um eine Authorizierung und ein User-Management für Kibana zu haben, muss X-Pack für Kibana installiert werden. Achtung, dafür fallen Lizensgebühren an nach 30Tagen bzw. wird dann ein Lite Version aus dem vorhanden X-Pack.

sudo /usr/share/kibana/bin/kibana-plugin install x-pack

und genauso für Elasticsearch nochmal:

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

und Logstash

sudo /usr/share/logstash/bin/logstash-plugin install x-pack

neustarten der Daemons:

 sudo systemctl restart kibana.service
 sudo systemctl restart elasticsearch.service
 sudo systemctl restart logstash.service