LogStack-Installation auf CentOS7


Gentian Rrafshi
DevOps Engineer
 

Vorbereitung

  • CentOS 7 64 Bit mit 4GB RAM
  • Elastic auf einer Maschine vorinstalliert
  • Freischalten der Ports für Elastic in der Firewall:
    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

Legende

  • Bedeutung der Farben in dieser Anleitung:
    1. elasticsearch.repo → In rot geschriebener Text ist eine frei wählbare Benennung, wogegen in schwarz geschriebener Text nicht frei wählbar ist.
    2. Codebeispiele erscheinen in grau hinterlegten Kästen
    3. Ein http-Link mit curl-Befehl oder –import-Befehl ist in der VM/Moba auszuführen. Ohne Curl in irgendeinem Webbrowser.
    4. Diese Anleitung hat CentOS7 vorinstalliert. Die Verzeichnisse und Befehle können von OS zu OS variieren. In dem Falle wird mit das Verzeichnis/der Befehl als blauer Text dargestellt, ansonsten als orangefarbener Text.

Falls nicht auf CentOS7 gearbeitet wird, helfen diese Links:
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 – Installieren von Java/OpenJDK

Für die Installation wird Java Version 8 oder 11 benötigt:

yum install java-1.8.0-openjdk-devel -y

 

Schritt 2 - Überprüfen, ob richtig installiert wurde

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 der LogStack-Repo

Zuerst:

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

und erstellen der Repo

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

Dort wird dann folgendes reinkopiert:

[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 - Installieren und starten von Logstack

Der Befehl zum Installieren lautet:

sudo yum install logstash -y

Starten von Logstack:

sudo systemctl enable logstash
sudo systemctl start logstash

 

Schritt 5 - Überprüfen, ob alles geklappt hat

journalctl –unit logstash

localhost.localdomain systemd[1]: Started logstash.

 

Beispiel - Einfacher Output

Anmerkung: Von nun an wird die IP 192.168.20.100 eingetragen, diese ist immer anzupassen an die jeweilige eigene IP der VM, auf der Elasticsearch installiert ist.

Führe den folgenden Befehl aus:

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

Jetzt folgenden Output abwarten:

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

Danach kann man einfach lostippen. Der Output ist dann 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 - Einfacher Output in Index

Nachdem man in Elasticsearch einen Index logs kreiert hat, kann man den Output auch auf den Index verlagern durch:

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

Jetzt folgenden Output abwarten:

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

Danach kann man einfach lostippen. Der Output 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 in Index schicken

Nachdem man in Elasticsearch einen Index logs kreiert hat, kann man den Output auch auf den Index verlagern durch:

/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" } }'

Jetzt folgenden Output abwarten:

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

Nun kann man in den Ordner /etc/resolv.conf etwas ändern und die Änderung im Browser zu sehen 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 - Datenveränderung verschicken über Configfile in Index

Nachdem man in Elasticsearch einen Index logs kreiert hat, erzeugt man eine Configfile elastic.conf in den Unterordner /etc/logstash/conf.d/elastic.conf, die wie folgt aussieht:

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

Testen, ob die Config passt:

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

Führt man nun folgenden Befehl aus:

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

Jetzt folgenden Output abwarten:

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

Nun kann man in den Ordner /etc/resolv.conf etwas ändern und abspeichern. Die Änderung 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" : 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 ausführen systemctl restart logstash davor!

Man kann sich mit diesem Befehl eine Liste aller verfügbaren Indizes anzeigen lassen: http://192.168.20.100:9200/_cat/indices

 


 


Kubernative GmbH
Ziegelei 9
72336 Balingen

Telefon:
Mail:
Internet:

+49 7433 2781296
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
www.kubernative.net

Ein Tochterunternehmen der
ARWINET GmbH besuchen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.