Direkt zum Hauptinhalt

Installation unter Debian Bullseye

Beschreibung:

Installations von Elkstack unter Debian Bullseye.
Dies sind 3 Komponenten

  • Elasticsearch
  • Kibana
  • Logstash
  • Optional Filebeat,
    (wird benötigt wenn nicht über ssh auf die server zugegriffen werden soll.
    Eigentlich ist filebeat die Standardvariante, aber in restrikten Netzen geht halt nur ssh.)

Installation

Java Installation

Elastisearch und Logstash benötigen Java

apt update
apt install default-jdk gnupgp gnupgp2

Elasticsearch installation

Elastisearch repo und Keys hinzufügen
Auf dieser Seite schauen ob es eine neue Version gibt.
zur Erstellungszeit des Artikels war es die Version 8

https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-8.x.list

Dann Paketdatenbank aktualisieren und Paket installieren

apt update
apt install elasticsearch

beim Systemstart aktivieren und starten

systemctl enable elasticsearch
systemctl start elasticsearch

Installation Kibana

Kibana wird aus dem gleichen Repository installiert.
Also direkt eingeben, installiereninstallieren.

und
apt beiminstall kibana

Nun die config bearbeiten, damit Kibana auf dem Interface lauscht.
Standard ist nämlich nur localhost

nano /etc/kibana/kibana.yml 

Dort die Zeile hinzufügen

server.host: ip_vom_elasticsearch

Beim Systemstart aktivieren und gleich starten

apt install kibana
systemctl enable kibana
systemctl start kibana

Installation Logstash

LogstashwirdLogstash wird aus dem gleichen Repository installiert.
Also direkt eingeben, installieren

apt install logstash

Nun die Konfig erstellen dazu öffnen wir

nano /etc/logstash/conf.d/logstash.conf

Folgender Inhalt:
password anpassen und den path anpassen wenn gewünscht wir lassen diesen path aber so.
in den Path werden alle Logdateioen gesammelt, ausreichend großes Volume oder ein cephfs was erweitert werden kann ;-)

input {
  file {
    path => "/var/log/syslog-copies/*"
    start_position => "beginning"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    user => "elastic"
    password => "1234567890"
    index => "syslog-%{+YYYY.MM.dd}"
  }
}

Nun noch das Verzeichnius unter path anlegen, hier bei uns

mkdir -p /var/log/syslog-copies/

beim Systemstart aktivieren und starten

systemctl enable logstash
systemctl start logstash

Ohne Filebeat Syslogs per SSH abholen, wenn Filebeat verwendet dann überspringen und bei Installation Filebeat weitermachen

ein sh Skript anlegen

nano /root/getsyslog.sh

Inhalt:
Diese Skript kopiert die Syslogs von den Servern in Unterverzeichnisse der mit den Namen der IPs in das Syslogserver Verzeichnis.

  #!/bin/bash
   TARGET_DIR="/var/log/syslog-copies"

   SERVERS=("192.168.178.101" "192.168.178.102")

   for server in ${SERVERS[@]}
   do
     scp root@$server:/var/log/syslog $TARGET_DIR/syslog-$server
   done

Damit das klappt muss der elkstack Server sich via Schlüsseldatei verbinden können.

Auf dem Elkstackserver ssh key erstellen, wenn nicht schon getan

ssh-keygen -t ecdsa

Nun per ssh-copy id die den Schlüssel auf die zu überwachenden Server kopieren.
Nun per crontab -e das skript hinzufügen damit es jede 5 Minuten läuft

*/5 * * * * /root/getsyslog.sh

Installation Filebeat, kann übersprungen werden, wenn SSH benutzt wurde.

 

Aufrufen der Oberfläche Kibana

Unter http://ip-hostname-elkstack:5601/ kann die Oberfläche aufgerufen werden, mit den Vergebenenen Zugangsdaten
Der Benutzername ist