![]() Gentian Rrafshi DevOps Engineer |
Vorbereitung
Legende
Falls nicht auf CentOS7 gearbeitet wird, helfen diese Links: |
Für die Installation wird Java Version 8 oder 11 benötigt:
yum install java-1.8.0-openjdk-devel -y
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)
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
Der Befehl zum Installieren lautet:
sudo yum install logstash -y
Starten von Logstack:
sudo systemctl enable logstash
sudo systemctl start logstash
journalctl –unit logstash
localhost.localdomain systemd[1]: Started logstash.
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"
}
},
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"
}
},
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"
}
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"
}
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 |
|
Telefon: |
+49 7433 2781296 |
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.