GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Elastic Stack auf Ubuntu 16.04

Elasticsearch ist eine Open-Source-Suchmaschine, die auf Lucene basiert und in Java entwickelt wurde. Es bietet eine verteilte und mandantenfähige Volltextsuchmaschine mit einer HTTP-Dashboard-Webschnittstelle (Kibana) und einem JSON-Dokumentenschema. Elasticsearch ist eine skalierbare Suchmaschine, mit der nach allen Arten von Dokumenten, einschließlich Protokolldateien, gesucht werden kann. Elasticsearch ist das Herzstück des „Elastic Stack“ oder ELK Stack.

Logstash ist ein Open-Source-Tool zum Verwalten von Systemereignissen und Protokollen. Es bietet Echtzeit-Pipelining zum Sammeln von Daten. Logstash sammelt das Protokoll oder die Daten, konvertiert alle Daten in JSON-Dokumente und speichert sie in Elasticsearch.

Kibana ist eine Datenvisualisierungsschnittstelle für Elasticsearch. Kibana bietet ein hübsches Dashboard (Weboberflächen), mit dem Sie alle Daten von Elasticsearch selbst verwalten und visualisieren können. Es ist nicht nur schön, sondern auch mächtig.

In diesem Tutorial zeige ich Ihnen, wie Sie Elastic Stack auf einem einzelnen Ubuntu 16.04-Server installieren und konfigurieren, um Serverprotokolle zu überwachen, und wie Sie „Elastic Beats“ auf Client-PCs mit Ubuntu 16.04 und dem Betriebssystem CentOS 7 installieren.

Voraussetzung

  • Ubuntu 16.04 64-Bit-Server mit 4 GB RAM, Hostname - elk-master
  • Ubuntu 16.04 64-Bit-Client mit 1 GB RAM, Hostname - elk-client1
  • CentOS 7 64-Bit-Client mit 1 GB RAM, Hostname - elk-client2

Schritt 1 – Java installieren

Java ist für die Bereitstellung des Elastic Stack erforderlich. Elasticsearch erfordert Java 8. Es wird empfohlen, das Oracle JDK 1.8 zu verwenden. Wir werden Java 8 aus einem PPA-Repository installieren.

Installieren Sie das neue Paket 'python-software-properties' so können wir einfach mit einem apt-Befehl ein neues Repository hinzufügen.

sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common apt-transport-https

Fügen Sie das neue Java 8 PPA-Repository mit dem Befehl „add-apt-repository“ hinzu und aktualisieren Sie dann das Repository.

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update

Installieren Sie Java 8 aus dem PPA webpub8-Repository.

sudo apt-get install -y oracle-java8-installer

Stellen Sie nach Abschluss der Installation sicher, dass Java ordnungsgemäß auf dem System installiert ist, indem Sie die Java-Version überprüfen.

java -version

Schritt 2 – Elasticsearch installieren und konfigurieren

In diesem Schritt werden wir Elasticsearch installieren und konfigurieren. Installieren Sie Elasticsearch aus dem Elastic-Repository und konfigurieren Sie es so, dass es auf der Localhost-IP ausgeführt wird.

Fügen Sie vor der Installation von Elasticsearch den elastischen Repository-Schlüssel zum Server hinzu.

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

Fügen Sie das Elastic 5.x-Repository zum Verzeichnis „sources.list.d“ hinzu.

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Aktualisieren Sie das Repository und installieren Sie Elasticsearch 5.1 mit dem apt-Befehl unten.

sudo apt-get update
sudo apt-get install -y elasticsearch

Elasticsearch ist installiert. Wechseln Sie nun in das Konfigurationsverzeichnis und bearbeiten Sie die Konfigurationsdatei elasticsaerch.yml.

cd /etc/elasticsearch/
vim elasticsearch.yml

Aktivieren Sie die Speichersperre für Elasticsearch, indem Sie den Kommentar in Zeile 43 entfernen. Wir tun dies, um das Auslagern von Speicher für Elasticsearch zu deaktivieren, um eine Überlastung des Servers zu vermeiden.

bootstrap.memory_lock: true

Kommentieren Sie im Block „Network“ die Zeilen network.host und http.port aus.

network.host: localhost
http.port: 9200

Speichern Sie die Datei und beenden Sie vim.

Bearbeiten Sie nun die Elasticsearch-Dienstdatei für die mlockall-Konfiguration der Speichersperre.

vim /usr/lib/systemd/system/elasticsearch.service

Entkommentieren Sie die LimitMEMLOCK-Zeile.

LimitMEMLOCK=infinity

Speichern Sie die Datei und beenden Sie sie.

Bearbeiten Sie die Standardkonfiguration für Elasticsearch im Verzeichnis /etc/default.

vim /etc/default/elasticsearch

Entkommentieren Sie Zeile 60 und vergewissern Sie sich, dass der Wert „unbegrenzt“ ist.

MAX_LOCKED_MEMORY=unlimited

Speichern und beenden.

Die Elasticsearch-Konfiguration ist abgeschlossen. Elasticsearch wird unter der Localhost-IP-Adresse mit Port 9200 ausgeführt und wir haben den Auslagerungsspeicher deaktiviert, indem wir mlockall auf dem Ubuntu-Server aktiviert haben.

Laden Sie die Elasticsearch-Dienstdatei neu und ermöglichen Sie ihr die Ausführung beim Booten, starten Sie dann den Dienst.

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Warten Sie eine Sekunde, bis Elasticsearch ausgeführt wird, und überprüfen Sie dann den offenen Port auf dem Server. Stellen Sie sicher, dass der „Status“ für Port 9200 „LISTEN“ lautet.

netstat -plntu

Überprüfen Sie dann die Speichersperre, um sicherzustellen, dass mlockall aktiviert ist. Überprüfen Sie auch, ob Elasticsearch mit den folgenden Befehlen ausgeführt wird.

curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
curl -XGET 'localhost:9200/?pretty'

Die Ergebnisse werden unten angezeigt.

Schritt 3 – Kibana mit Nginx installieren und konfigurieren

In diesem Schritt werden wir Kibana hinter einem Nginx-Webserver installieren und konfigurieren. Kibana überwacht nur die localhost-IP-Adresse und Nginx fungiert als Reverse-Proxy für die Kibana-Anwendung.

Installieren Sie Kibana mit diesem apt-Befehl:

sudo apt-get install -y kibana

Bearbeiten Sie nun die Konfigurationsdatei kibana.yml.

vim /etc/kibana/kibana.yml

Entkommentieren Sie die Zeilen server.port, server.hos und elasticsearch.url.

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

Speichern Sie die Datei und beenden Sie vim.

Fügen Sie Kibana hinzu, damit es beim Booten ausgeführt wird, und starten Sie es.

sudo systemctl enable kibana
sudo systemctl start kibana

Kibana wird auf Port 5601 als Knotenanwendung ausgeführt.

netstat -plntu

Die Kibana-Installation ist abgeschlossen, jetzt müssen wir Nginx installieren und als Reverse-Proxy konfigurieren, um von der öffentlichen IP-Adresse aus auf Kibana zugreifen zu können.

Installieren Sie als Nächstes die Pakete Nginx und apache2-utils.

sudo apt-get install -y nginx apache2-utils

Apache2-utils ist ein Paket, das Tools für den Webserver enthält, die auch mit Nginx funktionieren, wir werden die htpasswd-Basisauthentifizierung für Kibana verwenden.

Nginx wurde installiert. Jetzt müssen wir eine neue Konfigurationsdatei für virtuelle Hosts im Nginx-Sites-Available-Verzeichnis erstellen. Erstellen Sie eine neue Datei „kibana“ mit vim.

cd /etc/nginx/
vim sites-available/kibana

Konfiguration unten einfügen.

server {
    listen 80;

    server_name elk-stack.co;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Speichern Sie die Datei und beenden Sie vim

Erstellen Sie mit dem Befehl htpasswd eine neue Basisauthentifizierungsdatei.

sudo htpasswd -c /etc/nginx/.kibana-user admin
TYPE YOUR PASSWORD

Aktivieren Sie den virtuellen Kibana-Host, indem Sie einen symbolischen Link von der Kibana-Datei in „sites-available“ zum Verzeichnis „sites-enabled“ erstellen.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/

Testen Sie die nginx-Konfiguration und vergewissern Sie sich, dass kein Fehler vorliegt, fügen Sie dann nginx zur Ausführung beim Booten hinzu und starten Sie nginx neu.

nginx -t
systemctl enable nginx
systemctl restart nginx

Schritt 4 – Logstash installieren und konfigurieren

In diesem Schritt installieren und konfigurieren wir Logsatash, um Serverprotokolle aus Clientquellen mit Filebeat zu zentralisieren, filtern und transformieren dann alle Daten (Syslog) und transportieren sie in den Stash (Elasticsearch).

Installieren Sie Logstash 5 mit dem untenstehenden apt-Befehl.

sudo apt-get install -y logstash

Bearbeiten Sie die hosts-Datei mit vim.

vim /etc/hosts

Fügen Sie die IP-Adresse und den Hostnamen des Servers hinzu.

10.0.15.10    elk-master

Speichern Sie die Hosts-Datei und verlassen Sie den Editor.

Generieren Sie jetzt eine neue SSL-Zertifikatsdatei mit OpenSSL, damit die Client-Quellen den elastischen Server identifizieren können.

cd /etc/logstash/
openssl req -subj /CN=elk-master -x509 -days 3650 -batch -nodes -newkey rsa:4096 -keyout logstash.key -out logstash.crt

Ändern Sie die '/CN ' Wert zum Hostnamen des elastischen Servers.

Zertifikatsdateien werden im Verzeichnis „/etc/logstash/“ erstellt.

Als nächstes erstellen wir die Konfigurationsdateien für logstash. Wir erstellen eine Konfigurationsdatei ‚filebeat-input.conf‘ als Eingabedatei von filebeat, ‚syslog-filter.conf‘ für die Syslog-Verarbeitung und dann eine ‚output-elasticsearch.conf‘-Datei, um die Elasticsearch-Ausgabe zu definieren.

Wechseln Sie in das Logstash-Konfigurationsverzeichnis und erstellen Sie die neuen Konfigurationsdateien im Verzeichnis „conf.d“.

cd /etc/logstash/
vim conf.d/filebeat-input.conf

Konfiguration eingeben, Konfiguration unten einfügen.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/logstash.crt"
    ssl_key => "/etc/logstash/logstash.key"
  }
}

Speichern und beenden.

Erstellen Sie die Datei syslog-filter.conf.

vim conf.d/syslog-filter.conf

Fügen Sie die Konfiguration unten ein.

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Wir verwenden ein Filter-Plugin namens „grok ', um die syslog-Dateien zu analysieren.

Speichern und beenden.

Erstellen Sie die Ausgabekonfigurationsdatei ‚output-elasticsearch.conf‘.

vim conf.d/output-elasticsearch.conf

Fügen Sie die Konfiguration unten ein.

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Speichern und beenden.

Wenn dies erledigt ist, fügen Sie logstash hinzu, um beim Booten zu starten, und starten Sie den Dienst.

sudo systemctl enable logstash
sudo systemctl start logstash

Schritt 5 – Installieren und konfigurieren Sie Filebeat auf einem Ubuntu-Client

Verbinden Sie sich als root mit einem ssh-Konto mit dem Server.

ssh [email protected]

Kopieren Sie die Zertifikatsdatei mit dem scp-Befehl auf den Client.

scp [email protected]:/etc/logstash/logstash.crt .

Bearbeiten Sie die Hosts-Datei und fügen Sie die Elk-Master-IP-Adresse hinzu.

vim /etc/hosts

Fügen Sie die Konfiguration unten am Ende der Datei hinzu.

10.0.15.10    elk-master

Speichern und beenden.

Jetzt müssen wir den elastischen Schlüssel zum elk-client1-Server hinzufügen.

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

Wir werden das elastische Repository mit https-Download-Transport verwenden, daher müssen wir das Paket „apt-transport-https“ auf dem Server installieren.

sudo apt-get install -y apt-transport-https

Fügen Sie das elastische Repository hinzu und aktualisieren Sie alle Ubuntu-Repositorys.

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
sudo apt-get update

Installieren Sie nun 'filebeat' mit dem apt-Befehl.

sudo apt-get install -y filebeat

Gehen Sie als Nächstes in das Filebeat-Konfigurationsverzeichnis und bearbeiten Sie die Datei „filebeat.yml“ mit vim.

cd /etc/filebeat/
vim filebeat.yml

Fügen Sie unter Pfadkonfiguration neue Protokolldateien hinzu.

  paths:
    - /var/log/auth.log
    - /var/log/syslog

Legen Sie den Dokumenttyp auf „syslog“ fest.

  document-type: syslog

Deaktivieren Sie die Elasticsearch-Ausgabe, indem Sie den Zeilen Kommentare hinzufügen.

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
#  hosts: ["localhost:9200"]

Logstash-Ausgabe aktivieren, die Konfiguration auskommentieren und den Wert wie folgt ändern.

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  bulk_max_size: 2048
  ssl.certificate_authorities: ["/etc/filebeat/logstash.crt"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

Speichern und beenden.

Verschieben Sie die Zertifikatsdatei in das filebeat-Verzeichnis.

mv ~/logstash.crt /etc/filebeat/

Starten Sie Filebeat und fügen Sie es hinzu, damit es beim Booten ausgeführt wird.

sudo systemctl start filebeat
sudo systemctl enable filebeat

Überprüfen Sie den Dienststatus.

sudo systemctl status filebeat

Schritt 6 – Installieren und konfigurieren Sie Filebeat auf einem CentOS-Client

Beats sind Data Shippers, leichtgewichtige Agenten, die auf den Client-Knoten installiert werden können, um riesige Datenmengen vom Client-Rechner an den Logstash- oder Elasticsearch-Server zu senden. Es stehen 4 Beats zur Verfügung, 'Filebeat' für 'Log Files', 'Metricbeat' für 'Metrics', 'Packetbeat' für 'Network Data' und 'Winlogbeat' für den Windows-Client 'Event Log'.

In diesem Tutorial zeige ich Ihnen, wie Sie „Filebeat“ installieren und konfigurieren, um Protokolldaten über eine sichere SSL-Verbindung an den Logstash-Server zu senden.

Kopieren Sie die Zertifikatsdatei vom elastischen Server auf den Client1-Server. Melden Sie sich beim Client1-Server an.

ssh [email protected]

Kopieren Sie die Zertifikatsdatei mit dem scp-Befehl.

scp [email protected]:/etc/logstash/logstash.crt .
TYPE elk-server password

Bearbeiten Sie die Hosts-Datei und fügen Sie die Elk-Master-Serveradresse hinzu.

vim /etc/hosts

Elk-Master-Serveradresse hinzufügen.

10.0.15.10    elk-master

Speichern und beenden.

Als nächstes importieren Sie den elastischen Schlüssel auf den elk-client2-Server.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Elastisches Repository zum Server hinzufügen.

cd /etc/yum.repos.d/
vim elastic.repo

Fügen Sie die Konfiguration unten ein.

[elastic-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Speichern und beenden.

Installieren Sie Filebeat mit diesem Yum-Befehl.

sudo yum -y install filebeat

Filebeat wurde installiert, gehen Sie nun in das Konfigurationsverzeichnis und bearbeiten Sie die Datei ‚filebeat.yml‘.

cd /etc/filebeat/
vim filebeat.yml

Fügen Sie im Pfadabschnitt, Zeile 21, einige neue Protokolldateien hinzu. Wir werden hier zwei Dateien hinzufügen:„/var/log/secure“ für die SSH-Aktivität und „/var/log/messages“ für das Serverprotokoll.

  paths:
    - /var/log/secure
    - /var/log/messages

Fügen Sie in Zeile 26 eine neue Konfiguration hinzu, um den Dateityp auf „syslog“ zu definieren.

  document-type: syslog

Standardmäßig verwendet filebeat die elastische Suche als Ausgabe. In diesem Tutorial ändern wir es in logshtash. Deaktivieren Sie die Ausgabe von Elasticsearch, indem Sie Kommentare zu den Zeilen 83 und 85 hinzufügen.

Elasticsearch-Ausgabe deaktivieren.

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
#  hosts: ["localhost:9200"]

Fügen Sie nun die neue Logstash-Ausgabekonfiguration hinzu, kommentieren Sie die Logstash-Ausgabekonfiguration aus und ändern Sie alle Werte zu denen, die in der Konfiguration unten angezeigt werden.

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  bulk_max_size: 2048
  ssl.certificate_authorities: ["/etc/filebeat/logstash.crt"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

Speichern und beenden.

Fügen Sie filebeat hinzu, um beim Booten zu starten, und starten Sie es.

sudo systemctl enable filebeat
sudo systemctl start filebeat

Jetzt können Sie die Filebeat-Protokolldatei überprüfen und beobachten, um sicherzustellen, dass sie korrekt ausgeführt wird.

tail -f /var/log/filebeat/filebeat

Schritt 8 – Testen

Öffnen Sie Ihren Webbrowser und besuchen Sie die Elastic Stack-Domain, die Sie in der nginx-Konfiguration konfiguriert haben, meine ist „elk-stack.co“, geben Sie den Admin-Benutzernamen mit Ihrem Passwort ein und drücken Sie die Eingabetaste, um sich beim Kibana-Dashboard anzumelden.

Erstellen Sie einen neuen Standardindex „filebeat-* ' und klicken Sie auf 'Erstellen '.

Der Standardindex wurde erstellt. Wenn Sie mehrere Beats auf dem Elastic Stack haben, können Sie mit nur einem Klick auf den "Stern" einen Standard-Beat konfigurieren ' Schaltfläche.

Gehen Sie zu 'Entdecken ' und Sie sehen alle Protokolldateien von den Servern elk-client1 und elk-client2.

Ein Beispiel für die JSON-Ausgabe aus dem elk-client1-Serverprotokoll für eine ungültige SSH-Anmeldung.

Und es gibt noch viel mehr, was Sie mit dem Kibana-Dashboard machen können, probieren Sie es einfach aus!

Elastic Stack wurde auf einem Ubuntu 16.04-Server installiert, Filebeat wurde auf Ubuntu- und CentOS-Clientservern installiert.


Ubuntu
  1. So installieren Sie Elasticsearch unter Ubuntu 18.04

  2. So installieren Sie Graylog2 unter Ubuntu 14.04

  3. So installieren Sie Graylog2 unter Ubuntu 15.04 / 14.10

  4. So installieren Sie Elasticsearch unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie Elasticsearch unter Ubuntu 20.04

So installieren Sie Graylog 3.0 unter Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie ELK Stack auf Ubuntu 18.04

So installieren Sie qt unter Ubuntu 20.04

So installieren Sie den Graylog-Server unter Ubuntu 21

So installieren Sie Elasticsearch Logstash Kibana (Elastic Stack) unter Ubuntu 18.04