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:
- sudo firewall-cmd --zone=public --add-port=9200/tcp -permanent
- sudo firewall-cmd --zone=public --add-port=9300/tcp --permanent
- sudo firewall-cmd -reload
Schlüssel
Bedeutung der Farben in diesem Leitfaden:
- elasticsearch.repo → Rot geschriebener Text ist eine Freiform-Namensgebung, während schwarz geschriebener Text keine Freiform ist.
- Code-Beispiele erscheinen in grauen Kästen
- ein http-Link mit curl-Befehl oder Import-Befehl in der VM/Moba ausgeführt werden soll. Ohne curl in einem beliebigen Webbrowser.
- 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/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