The KubeOps Team
Legende
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
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 |
KubeOps is certified as
We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.