Zum Hauptinhalt springen

Blogs

LogStack-Installation auf CentOS7

  • CentOS 7 64 Bit mit 4 GB RAM
  • Elastic ist auf einer Maschine vorinstalliert
  • Schalten Sie die Ports für Elastic in der Firewall frei:
  1. sudo firewall-cmd --zone=public --add-port=9200/tcp -permanent
  2. sudo firewall-cmd --zone=public --add-port=9300/tcp --permanent
  3. sudo firewall-cmd -reload

Schlüssel

Bedeutung der Farben in diesem Leitfaden:

  1. elasticsearch.repo → Rot geschriebener Text ist eine Freiform-Namensgebung, während schwarz geschriebener Text keine Freiform ist.
  2. Code-Beispiele erscheinen in grauen Kästen
  3. ein http-Link mit curl-Befehl oder Import-Befehl in der VM/Moba ausgeführt werden soll. Ohne curl in einem beliebigen Webbrowser.
  4. In diesem Handbuch ist CentOS7 vorinstalliert. Die Verzeichnisse und Befehle können von Betriebssystem zu Betriebssystem variieren. Im Fall mit wird das Verzeichnis/der Befehl als blauer Text angezeigt, ansonsten als oranger Text.

Wenn es unter CentOS7 nicht funktioniert, werden diese Links helfen:

https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-elastic-stack.html#install-elasticsearch

https://www.elastic.co/guide/en/logstash/7.6/dir-layout.html

https://www.elastic.co/guide/en/logstash/7.6/running-logstash.html

 

Schritt 1 - Java/OpenJDK installieren

Für die Installation ist die Java-Version 8 oder 11 erforderlich:

yum install java-1.8.0-openjdk-devel -y

 

Schritt 2 - Überprüfen Sie, ob die Installation korrekt war

java -version

openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

Schritt 3 - Erstellen des LogStack-Repositoriums

Erstens:

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

und erstellen Sie das Repo

vi /etc/yum.repos.d/logstash.repo

Kopieren Sie dann den folgenden Text hinein:

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

 

Schritt 4 - Logstack installieren und starten

Der Befehl zur Installation lautet:

sudo yum install logstash -y

Starten Sie Logstack:

sudo systemctl enable logstash

sudo systemctl start logstash

 

Schritt 5 - Prüfen Sie, ob alles geklappt hat

journalctl –unit logstash

localhost.localdomain systemd[1]: Started logstash.

 

Beispiel - Einfache Ausgabe

Hinweis: Ab jetzt wird die IP 192.168.20.100 eingetragen, diese muss immer an die jeweilige eigene IP der VM angepasst werden, auf der Elasticsearch installiert ist.

Führen Sie den folgenden Befehl aus:

/usr/share/logstash/bin/logstash -e 'input { stdin { } } output {
elasticsearch { hosts => "192.168.20.100:9200" } }'

Warten Sie nun auf die folgende Ausgabe:

[Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600}

Danach können Sie einfach anfangen zu tippen. Die Ausgabe ist im Browser zu sehen unter  http://192.168.20.100:9200/_search?pretty.

{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 9,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "logstash-2020.05.11-000001",
        "_type" : "_doc",
        "_id" : "-hDWAnIB5PIPaJRIY6Ll",
        "_score" : 1.0,
        "_source" : {
          "message" : "Hallo",
          "@timestamp" : "2020-05-11T08:25:03.941Z",
          "host" : "localhost.localdomain",
          "@version" : "1"
        }
      },

Beispiel - Einfache Ausgabe in den Index

Nach der Erstellung eines Indexprotokolls in Elasticsearch können Sie die Ausgabe auch in den Index verschieben, indem Sie:

/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => "192.168.20.100:9200" index => "logs" } }'

Warten Sie nun auf die folgende Ausgabe:

[Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600}

Danach können Sie einfach anfangen zu tippen. Die Ausgabe ist dann im Browser zu sehen unter http://192.168.20.100:9200/logs/_search?pretty

{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 2,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "logs",
        "_type" : "_doc",
        "_id" : "4usEA3IBWUPpcn4FpXBV",
        "_score" : 1.0,
        "_source" : {
          "host" : "localhost.localdomain",
          "@timestamp" : "2020-05-11T09:15:35.106Z",
          "@version" : "1",
          "message" : "Hi"
        }
      },

Beispiel - Dateiänderung an den Index senden

Nach der Erstellung eines Indexprotokolls in Elasticsearch können Sie die Ausgabe auch in den Index verschieben, indem Sie:

/usr/share/logstash/bin/logstash -e 'input { file { path => "/etc/resolv.conf"
start_position => beginning } } output { elasticsearch { hosts =>
"192.168.20.100:9200" index => "logs" } }'

Warten Sie nun auf die folgende Ausgabe:

[Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600}

Jetzt können Sie etwas im Ordner /etc/resolv.conf ändern und die Änderung sehen
im Browser unter http://192.168.20.100:9200/logs/_search?pretty

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 16,
      "relation" : "eq"
    },
      {
        "_index" : "logs",
        "_type" : "_doc",
        "_id" : "VcKTA3IByzccBleDawQ9",
        "_score" : 1.0,
        "_source" : {
          "@version" : "1",
          "@timestamp" : "2020-05-11T11:51:32.291Z",
          "path" : "/etc/resolv.conf",
          "message" : "# Generated by NetworkManager Gentian Rrafshi",
          "host" : "localhost.localdomain"
        }

Beispiel - Senden von Datenänderungen über configfile im Index

Nach der Erstellung eines Indexprotokolls in Elasticsearch erstellen Sie eine Konfigurationsdatei elastic.conf im Unterordner /etc/logstash/conf.d/elastic.conf,
die wie folgt aussieht:

eht:

input {
    file {
        path => "/etc/resolv.conf" 
        start_position => beginning
    }
}
output {
    elasticsearch {
        hosts => ["192.168.20.100:9200"]
        index => "logs"
   }
}

Testen Sie, ob die Konfiguration passt:

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

 

Führen Sie nun den folgenden Befehl aus:

/usr/share/logstash/bin/logstash -f elastic.conf --path.settings=/etc/logstash/

 

Warten Sie nun auf die folgende Ausgabe:

[logstasg.agent] Successfully started Logstash API endpoint {:port=>9600}

Nun können Sie im Ordner /etc/resolv.conf etwas ändern und speichern.
Die Änderung ist dann im Browser unter http://192.168.20.100:9200/logs/_search?pretty zu sehen.

{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 3,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "logs",
        "_type" : "_doc",
        "_id" : "bsITBHIByzccBleDHATP",
        "_score" : 1.0,
        "_source" : {
          "@timestamp" : "2020-05-11T14:11:00.834Z",
          "path" : "/etc/resolv.conf",
          "host" : "localhost.localdomain",
          "message" : "# Generated by Networkmanager Gentian Rrafshi",
          "@version" : "1"
        }

Wichtig!

Nach jedem systemctl Lauf, den logstash vorher restarten!

Sie können eine Liste aller verfügbaren Indizes mit diesem Befehl anzeigen: http://192.168.20.100:9200/_cat/indices